summaryrefslogtreecommitdiff
path: root/packages/avahi/avahi-0.1/dbus-warn.patch
blob: b3fd8bd1394a9c05af2f73b771f41a4c5a193c45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
diff -Nur avahi-0.1/avahi-daemon/avahi-daemon.conf avahi-0.1.new/avahi-daemon/avahi-daemon.conf
--- avahi-0.1/avahi-daemon/avahi-daemon.conf	2005-08-22 05:27:09.000000000 +0800
+++ avahi-0.1.new/avahi-daemon/avahi-daemon.conf	2005-08-23 04:46:04.000000000 +0800
@@ -5,7 +5,7 @@
 use-ipv6=no
 check-response-ttl=no
 use-iff-running=no
-enable-dbus=yes
+enable-dbus=warn
 
 [publish]
 publish-addresses=yes
diff -Nur avahi-0.1/avahi-daemon/main.c avahi-0.1.new/avahi-daemon/main.c
--- avahi-0.1/avahi-daemon/main.c	2005-08-22 05:27:09.000000000 +0800
+++ avahi-0.1.new/avahi-daemon/main.c	2005-08-23 04:45:45.000000000 +0800
@@ -78,7 +78,10 @@
     int daemonize;
     int use_syslog;
     char *config_file;
+#ifdef HAVE_DBUS
     int enable_dbus;
+    int fail_on_missing_dbus;
+#endif
     int drop_root;
     int publish_resolv_conf;
     char ** publish_dns_servers;
@@ -380,8 +383,20 @@
                     c->server_config.check_response_ttl = is_yes(p->value);
                 else if (strcasecmp(p->key, "use-iff-running") == 0)
                     c->server_config.use_iff_running = is_yes(p->value);
-                else if (strcasecmp(p->key, "enable-dbus") == 0)
-                    c->enable_dbus = is_yes(p->value);
+#ifdef HAVE_DBUS                
+                else if (strcasecmp(p->key, "enable-dbus") == 0) {
+
+                    if (*(p->value) == 'w' || *(p->value) == 'W') {
+                        c->fail_on_missing_dbus = 0;
+                        c->enable_dbus = 1;
+                    } else if (*(p->value) == 'y' || *(p->value) == 'Y') {
+                        c->fail_on_missing_dbus = 1;
+                        c->enable_dbus = 1;
+                    } else
+                        c->enable_dbus = 0;
+                    
+                }
+#endif
                 else if (strcasecmp(p->key, "drop-root") == 0)
                     c->drop_root = is_yes(p->value);
                 else {
@@ -587,8 +602,14 @@
     
 #ifdef HAVE_DBUS
     if (c->enable_dbus)
-        if (dbus_protocol_setup(poll_api) < 0)
-            goto finish;
+        if (dbus_protocol_setup(poll_api) < 0) {
+
+            if (c->fail_on_missing_dbus)
+                goto finish;
+
+            avahi_log_warn("WARNING: Failed to contact D-BUS daemon, disabling D-BUS support.");
+            c->enable_dbus = 0;
+        }
 #endif
     
     load_resolv_conf(c);
@@ -825,7 +846,10 @@
     config.command = DAEMON_RUN;
     config.daemonize = 0;
     config.config_file = NULL;
+#ifdef HAVE_DBUS
     config.enable_dbus = 1;
+    config.fail_on_missing_dbus = 1;
+#endif
     config.drop_root = 1;
     config.publish_dns_servers = NULL;
     config.publish_resolv_conf = 0;
diff -Nur avahi-0.1/man/avahi-daemon.conf.5.xml.in avahi-0.1.new/man/avahi-daemon.conf.5.xml.in
--- avahi-0.1/man/avahi-daemon.conf.5.xml.in	2005-08-22 05:27:10.000000000 +0800
+++ avahi-0.1.new/man/avahi-daemon.conf.5.xml.in	2005-08-23 04:45:45.000000000 +0800
@@ -83,11 +83,13 @@
       </option>
 
       <option>
-        <p><opt>enable-dbus=</opt> Takes a boolean value ("yes" or
-        "no"). If set to "yes" avahi-daemon connects to DBUS, to offer
-        an object oriented client API. Only available if avahi has
-        been compiled with <opt>--enable-dbus</opt> in which case it
-        defaults to "yes".</p>
+        <p><opt>enable-dbus=</opt> Takes either "yes", "no" or
+        "warn". If set to "yes" avahi-daemon connects to D-BUS,
+        offering an object oriented client API. It is only available
+        if avahi has been compiled with <opt>--enable-dbus</opt> in
+        which case it defaults to "yes". "warn" behaves like "yes",
+        but the daemon starts up even when it fails to connect to a
+        D-BUS daemon.</p>
       </option>
 
 	</section>