]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
Applied Michal's fixes
authorMartin Molnar <molnar@sum.(none)>
Mon, 23 Jun 2008 15:35:43 +0000 (17:35 +0200)
committerMartin Molnar <molnar@sum.(none)>
Mon, 23 Jun 2008 15:35:43 +0000 (17:35 +0200)
fwp/lib/core/fwp_endpoint.c
fwp/lib/mngt/fwp_contract.c
fwp/mngr/fwp_mngr.c

index f61f3d06a047ad51e21357ab521305168bc10ae9..15d9ef013950c93e7ee983013e756a6a9b8230ab 100644 (file)
@@ -420,7 +420,8 @@ ssize_t fwp_recv(fwp_endpoint_d_t epointd, void *buffer, size_t buffer_size,
                        peer->addr, &peer->addrlen);
                return len;
        }
-next_recv:
+       
+       while (1) {
        /* FIXME: What about using a loop here and continue instead of goto???? */
        /* FWP_EPOINT_RELIABLE */
        fdset = epoint->fdset;
@@ -435,7 +436,7 @@ next_recv:
        
        if (FD_ISSET(epoint->sockd, &fdset)) { /* is it listen socket? */ 
                if (epoint->nr_connections == epoint->attr.max_connections)
-                       goto next_recv;
+                       continue;
 
                csockd = accept(epoint->sockd, (struct sockaddr*)peer->addr,
                                 &peer->addrlen);
@@ -451,8 +452,7 @@ next_recv:
                epoint->nr_connections++;
                
                FD_SET(csockd, &epoint->fdset);
-
-               goto next_recv;
+               continue;
        }
 
        /* Check client TCP sockets */
@@ -470,11 +470,11 @@ next_recv:
                        memcpy(epoint->c_sockd+i, epoint->c_sockd+i+1, 
                                sizeof(int)*(epoint->nr_connections -i-1));
                        epoint->nr_connections--;
-                       goto next_recv;
+                       continue;
                }
        }
-
-       return -EPERM;
+       
+       }
 }
 
 /**
index 3d6954e4c503c9afc4e4753d5b9dfa34630fc6ff..b59f9a32c14ecf2bf03b89a93a9a65181250ad5b 100644 (file)
@@ -2,6 +2,7 @@
 #include "fwp_contract.h"
 #include "fwp_contract_table.h"
 #include "fwp_mngt.h"
+#include <pthread.h>
 
 static int fwp_contract_is_reserved(fwp_contract_d_t contract)
 {
index 8e9baa8dc88781b14fc59b6438e04d25d8f21236..acb1ea71a898adb830e689ffb863028dce4b3ce0 100644 (file)
 #define FWP_MTU        2346  
 #define BUFFSIZE       FWP_MTU 
 
-/* buffer and socket for incomming message */
-static unsigned char   buffer[FWP_MTU];
-/* FIXME: This could be moved to local static variable in
- * fwp_mngt_input() */
-
 /* Admission control test */
 fwp_admctrl_test_t fwp_admctrl_test = &fwp_admctrl_stupid;
 
@@ -33,6 +28,8 @@ fwp_admctrl_test_t fwp_admctrl_test = &fwp_admctrl_stupid;
  */
 int fwp_mngr_input(struct fwp_msgb **pmsgb)
 {
+       /* buffer and socket for incomming message */
+       static unsigned char    buffer[FWP_MTU];
        struct fwp_msgb *msgb;
        ssize_t size;