Simplify UDP vs. TCP handling in service_announce_services
[project/mdnsd.git] / main.c
diff --git a/main.c b/main.c
index 93db2e5..02d13f5 100644 (file)
--- a/main.c
+++ b/main.c
@@ -37,6 +37,9 @@
 #include "announce.h"
 #include "interface.h"
 
+int cfg_proto = 0;
+int cfg_no_subnet = 0;
+
 static void
 signal_shutdown(int signal)
 {
@@ -50,7 +53,7 @@ main(int argc, char **argv)
 
        uloop_init();
 
-       while ((ch = getopt(argc, argv, "t:i:d")) != -1) {
+       while ((ch = getopt(argc, argv, "t:i:d46n")) != -1) {
                switch (ch) {
                case 't':
                        ttl = atoi(optarg);
@@ -65,6 +68,16 @@ main(int argc, char **argv)
                case 'i':
                        interface_add(optarg);
                        break;
+               case '4':
+                       cfg_proto = 4;
+                       break;
+               case '6':
+                       cfg_proto = 6;
+                       break;
+               case 'n':
+                       cfg_no_subnet = 1;
+                       break;
+
                default:
                        return -1;
                }
@@ -77,13 +90,15 @@ main(int argc, char **argv)
        if (cache_init())
                return -1;
 
+       ubus_startup();
+
        service_init(0);
 
-       ubus_startup();
        uloop_run();
        uloop_done();
 
-       cache_cleanup();
+       interface_shutdown();
+       cache_cleanup(NULL);
        service_cleanup();
        vlist_flush(&interfaces);