]> rtime.felk.cvut.cz Git - frescor/fwp.git/blobdiff - fwp/lib/fwp/fwp_endpoint.c
Remove unused flags parameter of fwp_send()
[frescor/fwp.git] / fwp / lib / fwp / fwp_endpoint.c
index ebadbba4be7af184579554206cb956355f808099..8418b5388bb755570be893660c21e6422db13d70 100644 (file)
 #include "fwp_endpoint.h"
 #include "fwp_msgb.h"
 #include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <netinet/in.h>
+#include "fwp_utils.h"
 
 #include <pthread.h>
+#include "fwp_debug.h"
 
 typedef unsigned int fwp_endpoint_id_t;
 
@@ -252,7 +257,7 @@ int fwp_send_endpoint_create(unsigned int node,
 #endif
        
        *epointd = fwp_epoint;
-       return 0;               
+       return fwp_epoint->sockd;               
 err:
        fwp_endpoint_destroy(fwp_epoint);
        return -1;      
@@ -317,7 +322,7 @@ int fwp_receive_endpoint_create(unsigned int port,
                }
                
                if (listen(fwp_epoint->sockd, fwp_epoint->attr.max_connections)){
-                       perror("Error on listen call\n");
+                       FWP_ERROR("Error on listen call: %s\n", strerror(errno));
                        goto err;
                }
                
@@ -363,6 +368,7 @@ int fwp_receive_endpoint_create(unsigned int port,
                        &fwp_epoint->peer.addrlen);
 
        addr = (struct sockaddr_in*) fwp_epoint->peer.addr;
+       fwp_epoint->port = ntohs(addr->sin_port);
        FWP_DEBUG("Recv port= %d\n",ntohs(addr->sin_port));     
        *epointd = fwp_epoint;  
        return 0;
@@ -437,7 +443,7 @@ static int fwp_receive_endpoint_accept(fwp_endpoint_t *fwp_epoint)
                        &peer.addrlen);
        
        if (csockd < 0) {
-               perror("Error on accept\n");
+               FWP_ERROR("Error on accept: %s\n", strerror(errno));
                return errno;   
        }               
 
@@ -466,7 +472,7 @@ static int fwp_receive_endpoint_accept(fwp_endpoint_t *fwp_epoint)
  *
  */
 int fwp_recv_conn(fwp_endpoint_d_t epointd, void *buffer, 
-                               size_t buffer_size)
+                       size_t buffer_size)
 {
        fwp_endpoint_t *fwp_epoint = epointd;
        fwp_sockaddr_t *peer = &fwp_epoint->peer;
@@ -521,6 +527,7 @@ ssize_t fwp_recv(fwp_endpoint_d_t epointd,
 {
        fwp_endpoint_t *fwp_epoint = epointd;
        fwp_sockaddr_t *peer = &fwp_epoint->peer;
+       struct sockaddr_in *addr = (struct sockaddr_in*) fwp_epoint->peer.addr;
        ssize_t len;
        fd_set fdset;
        
@@ -532,11 +539,12 @@ ssize_t fwp_recv(fwp_endpoint_d_t epointd,
        if (fwp_epoint->attr.reliability == FWP_EPOINT_BESTEFFORT) {    
                len = _fwp_recvfrom(fwp_epoint->sockd, buffer, 
                                        buffer_size, 0, peer);
+               
+               *from = addr->sin_addr.s_addr;
                return len;
        }
        
        while (1){
-       /* FIXME: What about using a loop here and continue instead of goto???? */
                /* FWP_EPOINT_RELIABLE */
                fdset = fwp_epoint->fdset;
                if (select(FD_SETSIZE, &fdset, (fd_set *)0, 
@@ -553,8 +561,10 @@ ssize_t fwp_recv(fwp_endpoint_d_t epointd,
 
                /* Check client TCP sockets */
                len = fwp_recv_conn(fwp_epoint, buffer, buffer_size);
-               if (len)
+               if (len) {
+                       *from = addr->sin_addr.s_addr;
                        return len;
+               }
        }
 }
 
@@ -570,8 +580,7 @@ ssize_t fwp_recv(fwp_endpoint_d_t epointd,
  * On error, -1 is returned and errno is set appropriately.
  *
  */
-int fwp_send(fwp_endpoint_d_t epointd,const void *msg, const size_t size, 
-               int flags)
+int fwp_send(fwp_endpoint_d_t epointd,const void *msg, const size_t size)
 {
        fwp_endpoint_t *fwp_epoint = epointd;
        struct fwp_msgb *msgb;