16202
|
1 |
--- /usr/tmp/clean/avahi-0.6.25/avahi-daemon/main.c 2008-12-12 21:36:15.000000000 +0000
|
|
2 |
+++ avahi-0.6.25/avahi-daemon/main.c 2009-08-04 08:17:02.469032000 +0100
|
|
3 |
@@ -75,7 +75,9 @@
|
10044
|
4 |
|
|
5 |
#include "setproctitle.h"
|
|
6 |
#include "main.h"
|
|
7 |
+#ifndef HAVE_BONJOUR
|
|
8 |
#include "simple-protocol.h"
|
|
9 |
+#endif
|
|
10 |
#include "static-services.h"
|
|
11 |
#include "static-hosts.h"
|
|
12 |
#include "ini-file-parser.h"
|
16202
|
13 |
@@ -132,11 +134,13 @@
|
10044
|
14 |
#define RESOLV_CONF "/etc/resolv.conf"
|
10307
|
15 |
#define BROWSE_DOMAINS_MAX 16
|
10044
|
16 |
|
|
17 |
+#ifndef HAVE_BONJOUR
|
|
18 |
static AvahiSEntryGroup *dns_servers_entry_group = NULL;
|
|
19 |
static AvahiSEntryGroup *resolv_conf_entry_group = NULL;
|
|
20 |
|
10307
|
21 |
static char **resolv_conf_name_servers = NULL;
|
|
22 |
static char **resolv_conf_search_domains = NULL;
|
10044
|
23 |
+#endif
|
|
24 |
|
|
25 |
static DaemonConfig config;
|
|
26 |
|
16202
|
27 |
@@ -148,6 +152,7 @@
|
10044
|
28 |
return strlen(s) >= l && strncmp(s, prefix, l) == 0;
|
|
29 |
}
|
|
30 |
|
|
31 |
+#ifndef HAVE_BONJOUR
|
|
32 |
static int load_resolv_conf(void) {
|
|
33 |
int ret = -1;
|
|
34 |
FILE *f;
|
16202
|
35 |
@@ -331,6 +336,7 @@
|
|
36 |
|
10307
|
37 |
avahi_server_set_browse_domains(avahi_server, l);
|
10044
|
38 |
}
|
|
39 |
+#endif
|
|
40 |
|
|
41 |
static void server_callback(AvahiServer *s, AvahiServerState state, void *userdata) {
|
|
42 |
DaemonConfig *c = userdata;
|
16202
|
43 |
@@ -356,7 +362,7 @@
|
|
44 |
|
10044
|
45 |
static_service_add_to_server();
|
|
46 |
static_hosts_add_to_server();
|
16202
|
47 |
-
|
10044
|
48 |
+#ifndef HAVE_BONJOUR
|
|
49 |
remove_dns_server_entry_groups();
|
16202
|
50 |
|
10307
|
51 |
if (c->publish_resolv_conf && resolv_conf_name_servers && resolv_conf_name_servers[0])
|
16202
|
52 |
@@ -366,6 +372,7 @@
|
10044
|
53 |
dns_servers_entry_group = add_dns_servers(s, dns_servers_entry_group, c->publish_dns_servers);
|
16202
|
54 |
|
10044
|
55 |
simple_protocol_restart_queries();
|
|
56 |
+#endif
|
|
57 |
break;
|
16202
|
58 |
|
10044
|
59 |
case AVAHI_SERVER_COLLISION: {
|
16202
|
60 |
@@ -375,7 +382,9 @@
|
|
61 |
|
10044
|
62 |
static_service_remove_from_server();
|
|
63 |
static_hosts_remove_from_server();
|
|
64 |
+#ifndef HAVE_BONJOUR
|
|
65 |
remove_dns_server_entry_groups();
|
|
66 |
+#endif
|
|
67 |
|
|
68 |
n = avahi_alternative_host_name(avahi_server_get_host_name(s));
|
|
69 |
avahi_log_warn("Host name conflict, retrying with <%s>", n);
|
16202
|
70 |
@@ -397,7 +406,9 @@
|
|
71 |
|
10044
|
72 |
static_service_remove_from_server();
|
|
73 |
static_hosts_remove_from_server();
|
|
74 |
+#ifndef HAVE_BONJOUR
|
|
75 |
remove_dns_server_entry_groups();
|
|
76 |
+#endif
|
16202
|
77 |
|
10044
|
78 |
break;
|
|
79 |
|
16202
|
80 |
@@ -417,9 +428,11 @@
|
10044
|
81 |
" -r --reload Request a running daemon to reload static services\n"
|
|
82 |
" -c --check Return 0 if a daemon is already running\n"
|
|
83 |
" -V --version Show version\n"
|
|
84 |
+#ifndef HAVE_BONJOUR
|
|
85 |
" -f --file=FILE Load the specified configuration file instead of\n"
|
|
86 |
" "AVAHI_CONFIG_FILE"\n"
|
|
87 |
" --no-rlimits Don't enforce resource limits\n"
|
|
88 |
+#endif
|
|
89 |
" --no-drop-root Don't drop privileges\n"
|
16202
|
90 |
#ifdef ENABLE_CHROOT
|
10044
|
91 |
" --no-chroot Don't chroot()\n"
|
16202
|
92 |
@@ -448,11 +461,15 @@
|
10044
|
93 |
{ "daemonize", no_argument, NULL, 'D' },
|
|
94 |
{ "kill", no_argument, NULL, 'k' },
|
|
95 |
{ "version", no_argument, NULL, 'V' },
|
|
96 |
+#ifndef HAVE_BONJOUR
|
|
97 |
{ "file", required_argument, NULL, 'f' },
|
|
98 |
+#endif
|
|
99 |
{ "reload", no_argument, NULL, 'r' },
|
|
100 |
{ "check", no_argument, NULL, 'c' },
|
|
101 |
{ "syslog", no_argument, NULL, 's' },
|
|
102 |
+#ifndef HAVE_BONJOUR
|
|
103 |
{ "no-rlimits", no_argument, NULL, OPTION_NO_RLIMITS },
|
|
104 |
+#endif
|
|
105 |
{ "no-drop-root", no_argument, NULL, OPTION_NO_DROP_ROOT },
|
|
106 |
#ifdef ENABLE_CHROOT
|
|
107 |
{ "no-chroot", no_argument, NULL, OPTION_NO_CHROOT },
|
16202
|
108 |
@@ -464,7 +481,11 @@
|
10044
|
109 |
|
|
110 |
assert(c);
|
|
111 |
|
|
112 |
+#ifdef HAVE_BONJOUR
|
|
113 |
+ while ((o = getopt_long(argc, argv, "hDkVrcs", long_options, NULL)) >= 0) {
|
|
114 |
+#else
|
|
115 |
while ((o = getopt_long(argc, argv, "hDkVf:rcs", long_options, NULL)) >= 0) {
|
|
116 |
+#endif
|
|
117 |
|
|
118 |
switch(o) {
|
|
119 |
case 's':
|
16202
|
120 |
@@ -482,6 +503,7 @@
|
10044
|
121 |
case 'V':
|
|
122 |
c->command = DAEMON_VERSION;
|
|
123 |
break;
|
|
124 |
+#ifndef HAVE_BONJOUR
|
|
125 |
case 'f':
|
|
126 |
avahi_free(c->config_file);
|
|
127 |
c->config_file = avahi_strdup(optarg);
|
16202
|
128 |
@@ -489,12 +511,15 @@
|
10044
|
129 |
case 'r':
|
|
130 |
c->command = DAEMON_RELOAD;
|
|
131 |
break;
|
|
132 |
+#endif
|
|
133 |
case 'c':
|
|
134 |
c->command = DAEMON_CHECK;
|
|
135 |
break;
|
|
136 |
+#ifndef HAVE_BONJOUR
|
|
137 |
case OPTION_NO_RLIMITS:
|
|
138 |
c->set_rlimits = 0;
|
|
139 |
break;
|
|
140 |
+#endif
|
|
141 |
case OPTION_NO_DROP_ROOT:
|
|
142 |
c->drop_root = 0;
|
|
143 |
break;
|
16202
|
144 |
@@ -528,6 +553,7 @@
|
10044
|
145 |
return *s == 'y' || *s == 'Y' || *s == '1' || *s == 't' || *s == 'T';
|
|
146 |
}
|
|
147 |
|
12636
|
148 |
+#ifndef HAVE_BONJOUR
|
10044
|
149 |
static int load_config_file(DaemonConfig *c) {
|
|
150 |
int r = -1;
|
|
151 |
AvahiIniFile *f;
|
16202
|
152 |
@@ -739,6 +765,7 @@
|
|
153 |
|
10044
|
154 |
return r;
|
|
155 |
}
|
|
156 |
+#endif
|
|
157 |
|
|
158 |
static void log_function(AvahiLogLevel level, const char *txt) {
|
|
159 |
|
16202
|
160 |
@@ -859,6 +886,7 @@
|
10044
|
161 |
static_service_add_to_server();
|
|
162 |
static_hosts_add_to_server();
|
16202
|
163 |
|
10044
|
164 |
+#ifndef HAVE_BONJOUR
|
|
165 |
if (resolv_conf_entry_group)
|
|
166 |
avahi_s_entry_group_reset(resolv_conf_entry_group);
|
16202
|
167 |
|
|
168 |
@@ -869,6 +897,7 @@
|
|
169 |
|
10307
|
170 |
if (config.publish_resolv_conf && resolv_conf_name_servers && resolv_conf_name_servers[0])
|
|
171 |
resolv_conf_entry_group = add_dns_servers(avahi_server, resolv_conf_entry_group, resolv_conf_name_servers);
|
10044
|
172 |
+#endif
|
|
173 |
}
|
|
174 |
|
|
175 |
#ifdef HAVE_INOTIFY
|
16202
|
176 |
@@ -956,8 +985,12 @@
|
10044
|
177 |
break;
|
|
178 |
|
|
179 |
case SIGUSR1:
|
|
180 |
+#ifdef HAVE_BONJOUR
|
|
181 |
+ avahi_log_info("Got SIGUSR1, ignoring recor.");
|
|
182 |
+#else
|
|
183 |
avahi_log_info("Got SIGUSR1, dumping record data.");
|
|
184 |
avahi_server_dump(avahi_server, dump, NULL);
|
|
185 |
+#endif
|
|
186 |
break;
|
|
187 |
|
|
188 |
default:
|
16202
|
189 |
@@ -985,8 +1018,10 @@
|
10044
|
190 |
|
|
191 |
assert(c);
|
|
192 |
|
|
193 |
+#ifndef HAVE_BONJOUR
|
|
194 |
if (!(nss_support = avahi_nss_support()))
|
|
195 |
avahi_log_warn("WARNING: No NSS support for mDNS detected, consider installing nss-mdns!");
|
|
196 |
+#endif
|
|
197 |
|
|
198 |
if (!(simple_poll_api = avahi_simple_poll_new())) {
|
|
199 |
avahi_log_error("Failed to create main loop object.");
|
16202
|
200 |
@@ -1005,8 +1040,10 @@
|
10044
|
201 |
goto finish;
|
|
202 |
}
|
|
203 |
|
|
204 |
+#ifndef HAVE_BONJOUR
|
|
205 |
if (simple_protocol_setup(poll_api) < 0)
|
|
206 |
goto finish;
|
|
207 |
+#endif
|
|
208 |
|
|
209 |
#ifdef HAVE_DBUS
|
|
210 |
if (c->enable_dbus) {
|
16202
|
211 |
@@ -1070,7 +1107,9 @@
|
10044
|
212 |
}
|
|
213 |
#endif
|
|
214 |
|
|
215 |
+#ifndef HAVE_BONJOUR
|
|
216 |
load_resolv_conf();
|
|
217 |
+#endif
|
|
218 |
#ifdef ENABLE_CHROOT
|
|
219 |
static_service_load(config.use_chroot);
|
|
220 |
static_hosts_load(config.use_chroot);
|
16202
|
221 |
@@ -1084,8 +1123,10 @@
|
10044
|
222 |
goto finish;
|
|
223 |
}
|
|
224 |
|
|
225 |
+#ifndef HAVE_BONJOUR
|
|
226 |
update_wide_area_servers();
|
10307
|
227 |
update_browse_domains();
|
10044
|
228 |
+#endif
|
|
229 |
|
|
230 |
if (c->daemonize) {
|
|
231 |
daemon_retval_send(0);
|
16202
|
232 |
@@ -1114,10 +1155,12 @@
|
|
233 |
|
10044
|
234 |
static_hosts_remove_from_server();
|
|
235 |
static_hosts_free_all();
|
16202
|
236 |
+#ifndef HAVE_BONJOUR
|
10044
|
237 |
|
|
238 |
remove_dns_server_entry_groups();
|
16202
|
239 |
|
10044
|
240 |
simple_protocol_shutdown();
|
|
241 |
+#endif
|
|
242 |
|
|
243 |
#ifdef HAVE_DBUS
|
|
244 |
if (c->enable_dbus)
|
16202
|
245 |
@@ -1428,8 +1471,10 @@
|
10044
|
246 |
goto finish;
|
|
247 |
}
|
|
248 |
|
|
249 |
+#ifndef HAVE_BONJOUR
|
|
250 |
if (load_config_file(&config) < 0)
|
|
251 |
goto finish;
|
|
252 |
+#endif
|
16202
|
253 |
|
10044
|
254 |
if (config.daemonize) {
|
|
255 |
daemon_retval_init();
|
16202
|
256 |
@@ -1516,9 +1561,13 @@
|
10044
|
257 |
|
|
258 |
avahi_server_config_free(&config.server_config);
|
|
259 |
avahi_free(config.config_file);
|
|
260 |
+#ifdef HAVE_BONJOUR
|
10307
|
261 |
+ assert(config.publish_dns_servers == NULL);
|
10044
|
262 |
+#else
|
|
263 |
avahi_strfreev(config.publish_dns_servers);
|
10307
|
264 |
avahi_strfreev(resolv_conf_name_servers);
|
|
265 |
avahi_strfreev(resolv_conf_search_domains);
|
10044
|
266 |
+#endif
|
|
267 |
|
|
268 |
if (wrote_pid_file) {
|
|
269 |
#ifdef ENABLE_CHROOT
|