Complete sw_sock_addr in swift_raw_simple_test
authorBogdan Drutu <bogdandrutu@gmail.com>
Mon, 21 Mar 2011 02:23:54 +0000 (04:23 +0200)
committerBogdan Drutu <bogdandrutu@gmail.com>
Mon, 21 Mar 2011 02:23:54 +0000 (04:23 +0200)
src/raw/swift_raw_simple_test.c

index ba8f8af..97b24ef 100644 (file)
@@ -16,7 +16,7 @@
 /*
  * Create a socket, bind it and send data.
  */
-int main(void)
+int main(int argc, char *argv[])
 {
        int sockfd;
        struct sockaddr_sw local_addr;
@@ -25,18 +25,29 @@ int main(void)
        ssize_t bytes_sent;
        int rc;
 
+       if (argc < 3)
+       {
+               fprintf(stderr,"Usage \"./client ip_local hash ip_dest?\" .");
+       }
+
        sockfd = sw_socket(PF_INET, SOCK_DGRAM, IPPROTO_SWIFT);
        DIE(sockfd < 0, "sw_socket");
 
        /* TODO: init_addr */
-
+       local_addr.sin_addr.s_addr = htonl(argv[1]);
+       memcpy(&local_addr.sw_hash, argv[2], sizeof(struct sw_hash));
        rc = sw_bind(sockfd, (struct sockaddr *) &local_addr, sizeof(local_addr));
        DIE(rc < 0, "sw_bind");
 
        /* TODO: init remote_addr */
-       bytes_sent = sw_sendto(sockfd, buffer, BUFSIZ, 0,
-                       (struct sockaddr *) &remote_addr, sizeof(remote_addr));
-       DIE(bytes_sent < 0, "sw_sendto");
+       if (argv > 3)
+       {
+               remote_addr.sin_addr.s_addr = htonl(argv[1]);
+               memcpy(&remote_addr.sw_hash, argv[3], sizeof(struct sw_hash));
+               bytes_sent = sw_sendto(sockfd, buffer, BUFSIZ, 0,
+                                       (struct sockaddr *) &remote_addr, sizeof(remote_addr));
+               DIE(bytes_sent < 0, "sw_sendto");
+       }
 
        return 0;
 }