]> rtime.felk.cvut.cz Git - frescor/fwp.git/commitdiff
Compilation fixes, added fwp_mngrtest as fwp demo
authorMartin Molnar <molnam1@fel.cvut.cz>
Wed, 23 Jan 2008 00:00:56 +0000 (01:00 +0100)
committerMartin Molnar <molnam1@fel.cvut.cz>
Wed, 23 Jan 2008 00:00:56 +0000 (01:00 +0100)
fwp/config.omk
fwp/fwp_manager/fwpmgr.c
fwp/libfwp/include/fwp_proto.h
fwp/libfwp/include/fwp_util.h
fwp/libfwp/src/fwp_proto.c
fwp/libfwp/src/fwp_util.c
fwp/tests/fwp_msgtest/Makefile.omk
fwp/tests/fwp_prototest/Makefile.omk

index 69959d44b135888ed8e661ad6b1206a7e804a821..9e05cf2523128585b942dcc7b7144601ecb0ab47 100644 (file)
@@ -1 +1 @@
-CFLAGS+= -Wall -Wextra
+CFLAGS+= -Wall -Wextra -D_REENTRANT
index 3dcb1b57570eef1936fd6091aa5c69746f805326..e4d64d4edc14306bf3db7476dae29880f5769b7b 100644 (file)
@@ -1,5 +1,6 @@
 #include "fwp_ctable.h"
 #include "fwp_msg.h"
+#include "fwp_util.h"
 #include "fwp_msgq.h"
 #include "fwp_vres.h"
 #include "fwp_proto.h"
 #include <semaphore.h>
 #include <stdlib.h>
 
-#define UN_MNGT_SOCKET "/var/run/fwpsock" 
-
-#define FWP_CONN_MAX 10 
 #define FWP_MTU 2346  
 
-#define FWP_DATAMSG_SIZE_MAX FWP_MTU
-#define FWP_MNGTMSG_SIZE_MAX 128 
+#define FWP_MNGR_UDP_PORT       3000
+#define FWP_AGENT_UDP_PORT      3001
 
-#define MNGT_CLIENT_UDP_PORT 3333
-#define MNGT_SERVER_UDP_PORT 3334
+enum fwp_opmode_t{
+       FWP_AGENT = 0,
+       FWP_MANAGER = 1,
+};
 
 /*
  * Global variables 
 
 /* Global addresses and sockfds */
 
-struct sockaddr_in fwp_mngr_addr;
-struct sockaddr_un fwp_agent_addr;
-struct sockaddr_un fwp_laddr;
-struct sockaddr_in fwp_raddr;
-int    fwp_lsockfd;
-int    fwp_rsockfd;
-fd_set fwp_input_fdset;
-
-
+struct sockaddr_in fwp_mngr_addr;      /**< FWP mngr (AP) address */
+struct sockaddr_un fwp_laddr;          /**< FWP local address */
+struct sockaddr_in fwp_raddr;          /**< FWP remote address */
+int    fwp_lsockfd;                    /**< FWP local sockfd */
+int    fwp_rsockfd;                    /**< FWP remote sockfd */
+fd_set fwp_input_fdset;        
 
 struct fwp_msgq msgq_negt_in;
 struct fwp_msgq msgq_negt_out;
@@ -209,44 +206,43 @@ void fwp_agent_msg_handler()
 
 int fwp_mngt_init(enum fwp_opmode_t opmode, char *fwp_mngr_addr_s)
 {
-       fwp_init();
 
        switch (opmode) {
        case FWP_AGENT:
-               fwp_lsockfd = fwp_open_unix_socket(FWP_AGENT_UNIXPATH, &fwp_laddr);
+               fwp_lsockfd = fwp_create_unix_socket(FWP_AGENT_UNIXPATH, 
+                                                    &fwp_laddr);
                
                fwp_mngr_addr.sin_family = AF_INET;
                fwp_mngr_addr.sin_addr.s_addr = inet_addr(fwp_mngr_addr_s);
                fwp_mngr_addr.sin_port = htons(FWP_MNGR_UDP_PORT);
 
-               fwp_rsockfd = fwp_open_inet_socket(FWP_AGENT_UDP_PORT, &fwp_raddr);
+               fwp_rsockfd = fwp_create_inet_socket(FWP_AGENT_UDP_PORT, 
+                                                    &fwp_raddr);
                
                FD_ZERO(&fwp_input_fdset);
                FD_SET(fwp_lsockfd, &fwp_input_fdset);
                FD_SET(fwp_rsockfd, &fwp_input_fdset);
 
+               break;
+
        case FWP_MANAGER:
-               fwp_lsockfd = fwp_open_unix_socket(FWP_AGENT_UNIXPATH, &fwp_laddr);
+               fwp_lsockfd = fwp_create_unix_socket(FWP_AGENT_UNIXPATH,
+                                                    &fwp_laddr);
                
                /*fwp_agent_addr_in.sin_family = AF_INET;
                fwp_agent_addr.sin_addr.s_addr = inet_addr(fwp_mngr_addr_s);
                fwp_agent_addr.sin_port = htons(FWP_AGENT_UDP_PORT);*/
                
-               fwp_rsockfd = fwp_open_inet_socket(FWP_MNGR_UDP_PORT, &fwp_raddr);
+               fwp_rsockfd = fwp_create_inet_socket(FWP_MNGR_UDP_PORT, 
+                                                    &fwp_raddr);
                
                FD_ZERO(&fwp_input_fdset);
                FD_SET(fwp_lsockfd, &fwp_input_fdset);
                FD_SET(fwp_rsockfd, &fwp_input_fdset);
-
-       case FWP_APP:
-               /* temporarily */
-               fwp_lsockfd = fwp_open_unix_socket(FWP_CLIENT_UNIXPATH, &fwp_laddr);
-               
-               bzero(&fwp_agent_addr, sizeof(fwp_agent_addr));
-               fwp_agent_addr.sun_family = AF_UNIX;
-               strcpy(fwp_agent_addr.sun_path, FWP_AGENT_UNIXPATH);
-       }
-       
+               break;
+       case default:
+               break;
+       }       
                                        
        return 0;
 }
@@ -336,7 +332,8 @@ int main(int argc, char* argv[])
                }
        }
        
-       fwp_init(mode, ap);
+       fwp_init();
+       fwp_mngt_init(mode, ap);
 
        if (mode == FWP_MANAGER){
                if ((service_vres_id = fwp_vres_open(&cnt) < 0)) {
index 6b37b87b5602c2b620440d21e110e21b05cef0e9..5d40d478fcd90a87d0fac00e8fc4a08f7e7e0858 100644 (file)
@@ -4,23 +4,8 @@
 #define FWP_AGENT_UNIXPATH  "/tmp/fwp-agent"
 #define FWP_CLIENT_UNIXPATH "/tmp/fwp-client" /*temporarily*/
 
-#define FWP_MNGR_UDP_PORT       3000
-#define FWP_AGENT_UDP_PORT      3001
-
-enum fwp_opmode_t{
-       FWP_APP = 0,
-       FWP_AGENT = 1,
-       FWP_MANAGER = 2,
-};
-
-extern struct sockaddr_in fwp_mngr_addr;       /**< FWP mngr (AP) address */
-extern struct sockaddr_un fwp_laddr;           /**< FWP local address */
-extern struct sockaddr_in fwp_raddr;           /**< FWP remote address */
-extern int    fwp_lsockfd;                     /**< FWP local sockfd */
-extern int    fwp_rsockfd;                     /**< FWP remote sockfd */
-extern fd_set fwp_input_fdset; 
-
-int fwp_init(enum fwp_opmode_t opmode, char *fwp_mngr_addr_s);
+
+int fwp_init();
 
 ssize_t fwp_recv(int sockfd, void *buffer, size_t buffer_size, int flags, 
                 struct sockaddr *from, socklen_t *fromlen);
index 1e9b00bd781dca9a0ee7dc0ac26878be9f1fbfcb..1581d88231f4cc2649f9b5e37a8765b62c70ea8f 100644 (file)
@@ -4,6 +4,7 @@
 #include <time.h>
 #include <stdio.h>
 #include <errno.h>
+#include <unistd.h>
 /*#include <signal.h>*/
 
 #include <sys/socket.h>
@@ -31,8 +32,8 @@ inline void fwp_timespec_sub (struct timespec *diff, const struct timespec *left
 
 int fwp_set_rt_prio(int priority);
 
-int fwp_open_unix_socket(char *path, struct sockaddr_un *addr)
+int fwp_create_unix_socket(char *path, struct sockaddr_un *addr);
 
-int fwp_open_inet_socket(unsigned int port, struct sockaddr_in *addr)
+int fwp_create_inet_socket(unsigned int port, struct sockaddr_in *addr);
 
 #endif /* _FWP_UTIL_H */
index 4ee4b9e51efd2eeac5069e72af2528df97bbd6a1..fe78268f2282fa08deee4eac64c13dfd991b3b10 100644 (file)
@@ -3,9 +3,13 @@
 #include "fwp_msgq.h"
 #include "fwp_msg.h"
 #include "fwp_proto.h"
+#include "fwp_util.h"
 
 #include <string.h>
 
+struct sockaddr_un fwp_agent_addr;
+struct sockaddr_un fwp_client_addr;
+int    fwp_client_sockfd;
 
 /*
  *TODO: return values other than -1
@@ -17,6 +21,14 @@ int fwp_init()
        fwp_vres_table_init();
        fwp_ac_table_init();
 
+       /* temporarily */
+       fwp_client_sockfd = fwp_create_unix_socket(FWP_CLIENT_UNIXPATH, 
+                                                  &fwp_client_addr);
+               
+       bzero(&fwp_agent_addr, sizeof(fwp_agent_addr));
+       fwp_agent_addr.sun_family = AF_UNIX;
+       strcpy(fwp_agent_addr.sun_path, FWP_AGENT_UNIXPATH);
+       
        return 0;
 }
 
@@ -71,6 +83,7 @@ int fwp_contract_negotiate(struct fwp_contract *contract)
 {
        struct fwp_msgb *msgb;
        unsigned int code, hid;
+       struct sockaddr_un from;
        socklen_t fromlen;
 
        msgb = fwp_msgb_alloc(sizeof(struct fwp_msg_header) + 
@@ -86,11 +99,11 @@ int fwp_contract_negotiate(struct fwp_contract *contract)
         * and wait for reply
         */
        fromlen = sizeof(fwp_agent_addr);
-       sendto(fwp_lsockfd, msgb->start, msgb->len, 0, 
+       sendto(fwp_client_sockfd, msgb->start, msgb->len, 0, 
               (struct sockaddr*)&fwp_agent_addr, fromlen); 
        
-       recvfrom(fwp_lsockfd, msgb->start, msgb->buf_size, 0,
-               (struct sockaddr*)&fwp_agent_addr, &fromlen); 
+       recvfrom(fwp_client_sockfd, msgb->start, msgb->buf_size, 0,
+               (struct sockaddr*)&from, &fromlen); 
        
        fwp_msg_header_pull(msgb, &code, &hid);
        fwp_msg_contract_pull(msgb, contract);
index 6d46fc0295980580a735145fc605afa7d5b36153..30eeb87cb1df2e8f8d7633abd9ddb1f82895672b 100644 (file)
@@ -73,7 +73,7 @@ int fwp_set_rt_prio(int priority)
        return 0;
 }
 
-int fwp_open_unix_socket(char *path, struct sockaddr_un *addr)
+int fwp_create_unix_socket(char *path, struct sockaddr_un *addr)
 {
        int sockfd;
 
@@ -97,7 +97,7 @@ int fwp_open_unix_socket(char *path, struct sockaddr_un *addr)
        return sockfd;  
 }
 
-int fwp_open_inet_socket(unsigned int port, struct sockaddr_in *addr)
+int fwp_create_inet_socket(unsigned int port, struct sockaddr_in *addr)
 {
        int sockfd;
 
index 0fd47e7a4898820e5bb04463ffe18f2b4f8f93de..8ea6a19d5e16f21f818a4733c32497c044314162 100644 (file)
@@ -1,4 +1,4 @@
-CFLAGS = -Wall -D_REENTRANT -g
+CFLAGS = -g
 
 test_PROGRAMS = fwp_msgtest
 fwp_msgtest_SOURCES+= fwp_msgtest.c
index e82b76962a81a2af638f164c9ab6cb01462bc35f..0aa0a9ba56f171fbe557fbaccb61c15093d523c5 100644 (file)
@@ -1,4 +1,3 @@
-#CFLAGS+= -Wall -Wextra
 test_PROGRAMS = fwp_sendrecv_test
 fwp_sendrecv_test_SOURCES+= fwp_sendrecv_test.c
 lib_LOADLIBES += fwp pthread rt