]> rtime.felk.cvut.cz Git - frescor/forb.git/commitdiff
Fix error reporting in protocols
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 27 May 2009 17:01:21 +0000 (19:01 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 27 May 2009 20:30:09 +0000 (22:30 +0200)
Error is reported by returning -1, but size_t is unsigned type. All the
needed prototypes were changed to return signed ssize_t.

src/iop.c
src/proto.c
src/proto.h
src/proto_inet.c
src/proto_unix.c

index 90c6e9d533e1badb32745f62302cd913d78bc2c6..f743a17baaa79bf6718f878229acca0a565f6283 100644 (file)
--- a/src/iop.c
+++ b/src/iop.c
@@ -503,7 +503,8 @@ void *forb_iop_receiver_thread(void *arg)
        forb_port_t *port = arg;
        const forb_proto_t *proto = port->desc.proto;
        FORB_CDR_Codec *c = &port->codec;
-       size_t rcvd, len;
+       ssize_t rcvd;
+       size_t len;
        forb_iop_message_header mh;
        bool header_received = false;
 
index b22b682cbb5c40e7f31ba8622ab9c448c1f7af0f..ed4e60b53606678e615b357f6a088a35a1fd9c20 100644 (file)
@@ -62,7 +62,7 @@
 
 extern UL_LOG_CUST(ulogd_forb_proto);
 
-size_t forb_proto_send(forb_peer_t *peer, FORB_CDR_Codec *codec)
+ssize_t forb_proto_send(forb_peer_t *peer, FORB_CDR_Codec *codec)
 {
        
 #if 0
index 140e0c7145377ae759187e6febf7dc61c3df75c3..1fb9d4ee46416c0859bf9984aa1887ad6aead46b 100644 (file)
@@ -96,7 +96,7 @@ struct forb_proto {
         * @return Length of the sent data (should be equal to @a len on
         * success) or negative error code on error.
         */
-       size_t (*send)(forb_peer_t *peer, const void *buf, size_t len);
+       ssize_t (*send)(forb_peer_t *peer, const void *buf, size_t len);
 
        /** 
         * Called to free any protocol resources associated with the
@@ -118,7 +118,7 @@ struct forb_proto {
         * @return Length of the received data or negative error code
         * on error.
         */
-       size_t (*recv)(forb_port_t *port, void *buf, size_t len);
+       ssize_t (*recv)(forb_port_t *port, void *buf, size_t len);
 
        /** 
         * Broadcasts/multicasts a message. All FORBs connected the
@@ -134,7 +134,7 @@ struct forb_proto {
         * @return Zero or positive number on success, negative error
         * code on error.
         */
-       size_t (*broadcast)(forb_port_t *port, const void *buf, size_t len);
+       ssize_t (*broadcast)(forb_port_t *port, const void *buf, size_t len);
 
        /** Serializes the protocol specific address */
        CORBA_boolean (*serialize_addr)(FORB_CDR_Codec *codec, const void *addr);
@@ -153,7 +153,7 @@ struct forb_proto {
        void (*register_cb)(forb_port_t *port);
 };
 
-size_t forb_proto_send(forb_peer_t *peer, FORB_CDR_Codec *codec);
+ssize_t forb_proto_send(forb_peer_t *peer, FORB_CDR_Codec *codec);
 
 forb_peer_t *
 forb_get_next_hop(forb_t *forb, forb_server_id *server, fosa_abs_time_t *timeout);
index e2ef958572f8976d0c49cf08ee5054593dff26ea..771e371c3c172c0147890350e117023765e8a27d 100644 (file)
@@ -197,11 +197,11 @@ err:
        
 }
 
-static size_t
+static ssize_t
 inet_send(forb_peer_t *peer, const void *buf, size_t len)
 {
        struct inet_peer *ipeer = peer->proto_priv;
-       size_t ret, sent;
+       ssize_t ret, sent;
 
        if (!ipeer) {
                ipeer = inet_connect(peer);
@@ -299,13 +299,14 @@ inet_accept_connection(forb_port_t *port)
        return epoll_ctl(p->epoll_fd, EPOLL_CTL_ADD, client, &ev);
 }
 
-static size_t
+static ssize_t
 inet_recv(forb_port_t *port, void *buf, size_t len)
 {
        struct inet_port *iport = port->desc.proto_priv;
 #if 1
        struct epoll_event ev;
-       int ret, nfds;
+       ssize_t ret;
+       int nfds;
        forb_peer_t *peer;
        bool exported_new_peer = false;
        
@@ -381,12 +382,12 @@ inet_port_destroy(forb_port_t * port)
        return 0;
 }
 
-static size_t
+static ssize_t
 inet_broadcast(forb_port_t *port, const void *buf, size_t len)
 {
        struct inet_port *p = port->desc.proto_priv;
        struct sockaddr_in addr;
-       int ret;
+       ssize_t ret;
        
        addr.sin_family = AF_INET;
        addr.sin_port = htons(MCAST_PORT);
index edf8fbb9b36b3b1963a9cabe830646a54d42753f..a49a9a670aa8b277e9ebeb4e94ce926826ae3086 100644 (file)
@@ -84,7 +84,7 @@ unix_server_to_addr(unix_addr_t *addr, const forb_server_id *server)
                forb_uuid_to_string(str, (forb_uuid_t*)server->uuid, sizeof(str)));
 }
 
-static size_t
+static ssize_t
 unix_send(forb_peer_t *peer, const void *buf, size_t len)
 {
        unix_addr_t addr;
@@ -95,7 +95,7 @@ unix_send(forb_peer_t *peer, const void *buf, size_t len)
                      (struct sockaddr*)&addr, sizeof(addr));
 }
 
-static size_t
+static ssize_t
 unix_recv(forb_port_t *port, void *buf, size_t len)
 {
        struct unix_port *p = port->desc.proto_priv;
@@ -116,7 +116,7 @@ unix_port_destroy(forb_port_t * port)
        return 0;
 }
 
-static size_t
+static ssize_t
 unix_broadcast(forb_port_t *port, const void *buf, size_t len)
 {
        struct unix_port *p = port->desc.proto_priv;