]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
drobne zmeny v fwp_manager
authorMartin Molnar <molnam1@fel.cvut.cz>
Thu, 10 Jan 2008 00:29:20 +0000 (01:29 +0100)
committerMartin Molnar <molnam1@fel.cvut.cz>
Thu, 10 Jan 2008 00:29:20 +0000 (01:29 +0100)
fwp/fwp_manager/src/core.c
fwp/libfwp/src/fwp_msgq.c

index 4aaa5c22fc74af20a076275710ab51e9f75c8d62..167cc928808f2bb2d6fcf7b29e3f3af543e3d696 100644 (file)
 #define MNGT_CLIENT_UDP_PORT 33333
 #define MNGT_SERVER_UDP_PORT 33334
 
+enum manager_mode_t{
+       FWP_CLIENT = 0,
+       FWP_SERVER = 1,
+};
+
 /*
  * Global variables 
  * */
+enum manager_mode_t mode;
 
 struct fwp_msgq        msgq_negotiate;
 struct fwp_ctable      ctable_negotiate;
@@ -33,6 +39,7 @@ void* recv_thread(void*udp_port)
        int lsockfd_un, lsockfd_in;
        int psockfd_un;
        fdset fset;
+       undigned int code, hid;
 
        fwp_negotiate_msg_t msg;
 
@@ -69,7 +76,8 @@ void* recv_thread(void*udp_port)
        }
 
 
-        if (bind(lsockfd_in, (struct sockaddr *)&laddr_in, sizeof(laddr_in)) == -1) {
+        if (bind(lsockfd_in, (struct sockaddr *)&laddr_in, 
+                sizeof(laddr_in)) == -1) {
                /*perror("Chyba v bind");*/
                goto out;
        }
@@ -116,13 +124,16 @@ void* recv_thread(void*udp_port)
                        }
                }       
                
-               code = *buff;
-               if (!code_valid(code))
-                               continue;
+               msgb = fwp_msgb_alloc(len);
+               memcpy(msgb->addr, (struct sockaddr*)&peer_addr, peer_addrlen);
+               msgb->addrlen = peer_addrlen;
+               memcpy(msgb->buf_start, buffer, len);
+               msgb->len = len;
+
+               fwp_msg_header_pull(msgb, &code, &hid);
+
                if ((code == NEGOTIATE_REQUEST)||(code == NEGOTIATE_RESPONSE))
-                       /*producent-consument*/
-                       fwp_msgq_enqueue(negotiate_msgq, &peer_addr, 
-                                        peer_addrlen, (void*)buffer, len);
+                       fwp_msgq_enqueue(&msgq_negotiate,msgb);
                else 
                        printf("Error: not valid negotiate frame\n");
 /*                     fwp_msgq_enqueue(mngt_msgq, &peer_addr, 
@@ -219,10 +230,9 @@ void* admctrl_client_thread(void* ap_address)
        }
 }
 
-/* Handles non-negotiate cotrol messages */
-/*void ctrl_thread()
+int main(char* argv[], int argc)
 {
-       
-}
-*/
+       mode =  argv[1];
+
 
+}
index 4e6bb43534a70f6b221bc0dcf7f5f232afa06b14..b92f01fc5cc27004203b3a44a73025fcb795dd1c 100644 (file)
@@ -24,7 +24,8 @@ int fwp_msgq_enqueue(struct fwp_msgq *msgq, struct fwp_msgb* msgb)
 
        /* depends on queuing policy specifies in endpoint */
        msgq->last = (msgq->last++) % FWP_MSGQ_SIZE;
-       
+       /* osetrit preteceni*/
+
        msgq->queue[msgq->last] = msgb;
        msgq->nr_pending++;
        /* release queue mutex */
@@ -36,8 +37,9 @@ struct fwp_msgb* fwp_msgq_dequeue(struct fwp_msgq *msgq)
 {
        struct fwp_msgb* msgb;
 
-       msgb = msgq->queue[msgq->first];
        /* acquire queue mutex */
+       /*setrit podpteceni*/   
+       msgb = msgq->queue[msgq->first];
        msgq->first++;
        msgq->nr_pending--;
        /* release queue mutex */