remove 'nac' option from VPN, always return IP immediately, always build mesh tunnel...
[oweals/gnunet.git] / src / vpn / gnunet-vpn.c
index 74975d3d687f259f966d39d9a59141b11ffbbd18..4c8dc43c01307098af70a1ada7cda482815d4ad6 100644 (file)
@@ -79,11 +79,6 @@ static int udp;
  */
 static int verbosity;
 
-/**
- * Option '-a':  Notify only once the tunnel is connected?
- */
-static int nac;
-
 /**
  * Global return value.
  */
@@ -92,7 +87,7 @@ static int ret;
 /**
  * Option '-d': duration of the mapping
  */
-static unsigned long long duration = 5 * 60;
+static struct GNUNET_TIME_Relative duration = { 5 * 60 * 1000} ;
 
 
 /**
@@ -173,15 +168,14 @@ run (void *cls, char *const *args, const char *cfgfile,
   int dst_af;
   int req_af;
   struct GNUNET_PeerIdentity peer; 
-  GNUNET_HashCode sd;
+  struct GNUNET_HashCode sd;
   const void *addr;
   struct in_addr v4;
   struct in6_addr v6;
   uint8_t protocol;
   struct GNUNET_TIME_Absolute etime;
 
-  etime = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,
-                                                                          (unsigned int) duration));
+  etime = GNUNET_TIME_relative_to_absolute (duration);
   GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
                                &do_disconnect, NULL);
   handle = GNUNET_VPN_connect (cfg);
@@ -247,7 +241,6 @@ run (void *cls, char *const *args, const char *cfgfile,
                                           protocol,
                                           &peer,
                                           &sd,
-                                          nac,
                                           etime,
                                           &allocation_cb, NULL);
   }
@@ -276,7 +269,6 @@ run (void *cls, char *const *args, const char *cfgfile,
                                         req_af,
                                         dst_af,
                                         addr,
-                                        nac,
                                         etime,
                                         &allocation_cb, NULL);
   }
@@ -298,12 +290,9 @@ main (int argc, char *const *argv)
     {'6', "ipv6", NULL,
      gettext_noop ("request that result should be an IPv6 address"),
      0, &GNUNET_GETOPT_set_one, &ipv6},
-    {'a', "after-connect", NULL,
-     gettext_noop ("print IP address only after mesh tunnel has been created"),
-     0, &GNUNET_GETOPT_set_one, &ipv6},
-    {'d', "duration", "SECONDS",
+    {'d', "duration", "TIME",
      gettext_noop ("how long should the mapping be valid for new tunnels?"),
-     1, &GNUNET_GETOPT_set_ulong, &duration},
+     1, &GNUNET_GETOPT_set_relative_time, &duration},
     {'i', "ip", "IP",
      gettext_noop ("destination IP for the tunnel"),
      1, &GNUNET_GETOPT_set_string, &target_ip},
@@ -312,7 +301,7 @@ main (int argc, char *const *argv)
      1, &GNUNET_GETOPT_set_string, &peer_id},
     {'s', "service", "NAME",
      gettext_noop ("name of the service we would like to access"),
-     1, &GNUNET_GETOPT_set_string, &peer_id},
+     1, &GNUNET_GETOPT_set_string, &service_name},
     {'t', "tcp", NULL,
      gettext_noop ("service is offered via TCP"),
      0, &GNUNET_GETOPT_set_one, &tcp},
@@ -323,11 +312,16 @@ main (int argc, char *const *argv)
     GNUNET_GETOPT_OPTION_VERBOSE (&verbosity),
     GNUNET_GETOPT_OPTION_END
   };
-  return (GNUNET_OK ==
-          GNUNET_PROGRAM_run (argc, argv, "gnunet-vpn",
-                              gettext_noop
-                              ("Setup tunnels via VPN."), options,
+  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+    return 2;
+
+  ret = (GNUNET_OK ==
+        GNUNET_PROGRAM_run (argc, argv, "gnunet-vpn",
+                            gettext_noop
+                            ("Setup tunnels via VPN."), options,
                               &run, NULL)) ? ret : 1;
+  GNUNET_free ((void *) argv);
+  return ret;
 }