]> git.sur5r.net Git - ngadmin/blobdiff - spy/src/spy.c
Move basic networking code to raw library
[ngadmin] / spy / src / spy.c
index df374eee4de3613076a171dd94fa0a8e801e90d3..a2c686eef700ae184fee77c299498b1d1178abf8 100644 (file)
@@ -3,22 +3,19 @@
 #include <unistd.h>
 #include <arpa/inet.h>
 
-#include <protocol.h>
-#include <attr.h>
+#include <nsdp/protocol.h>
+#include <nsdp/attr.h>
+#include <nsdp/net.h>
 
 
 int main (void)
 {
-       char buffer[1500];
-       struct ng_packet np;
-       int err = 0, s, len;
-       struct sockaddr_in local, remote;
-       socklen_t slen = sizeof(struct sockaddr_in);
-       unsigned char error;
-       unsigned short attr_error;
+       int err = 0, s;
        List *attr;
        ListNode *ln;
        struct attr *at;
+       struct nsdp_cmd nc;
+       struct sockaddr_in local;
        
        
        s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
@@ -29,6 +26,10 @@ int main (void)
        };
        
        
+       memset(&nc, 0, sizeof(struct nsdp_cmd));
+       nc.remote_addr.sin_family = AF_INET;
+       nc.remote_addr.sin_port = htons(CLIENT_PORT);
+       
        memset(&local, 0, sizeof(struct sockaddr_in));
        local.sin_family = AF_INET;
        local.sin_addr.s_addr = htonl(INADDR_ANY);
@@ -41,29 +42,10 @@ int main (void)
        }
        
        while (1) {
-               
-               len = recvfrom(s, buffer, sizeof(buffer), 0, (struct sockaddr*)&remote, &slen);
-               if (len < 0) {
-                       perror("recvfrom");
-                       err = 3;
-                       goto end;
-               }
-               
-               printf("---------------------------------\n");
-               
-               np.buffer = buffer;
-               np.maxlen = len;
-               initNgPacket(&np);
-               
                attr = createEmptyList();
+               recvNsdpPacket(s, &nc, attr, NULL);
                
-               if (ntohs(remote.sin_port) != CLIENT_PORT ||
-                   len < (int)sizeof(struct ng_header) ||
-                   !validateNgHeader(np.nh, 0, NULL, NULL, 0) ||
-                   extractPacketAttributes(&np, attr, 0) < 0) {
-                       printf("wrong packet\n");
-                       goto end;
-               }
+               printf("---------------------------------\n");
                
                printf("received %d attribute(s)\n", attr->count);