aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/zeroconf.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/src/zeroconf.c b/src/zeroconf.c
index 0fa8d7398..cd54d9669 100644
--- a/src/zeroconf.c
+++ b/src/zeroconf.c
@@ -372,8 +372,9 @@ static int avahiFdset( fd_set* rfds, fd_set* wfds, fd_set* efds )
static int avahiFdconsume( int fdCount, fd_set* rfds, fd_set* wfds, fd_set* efds )
{
int retval = fdCount;
-
+ AvahiTimeout* t;
AvahiWatch* w = avahiWatchList;
+
while( w != NULL && retval > 0 ) {
AvahiWatch* current = w;
current->observedEvent = 0;
@@ -404,7 +405,7 @@ static int avahiFdconsume( int fdCount, fd_set* rfds, fd_set* wfds, fd_set* efds
}
}
- AvahiTimeout* t = avahiTimeoutList;
+ t = avahiTimeoutList;
while( t != NULL && avahiRunning ) {
AvahiTimeout* current = t;
@@ -418,19 +419,8 @@ static int avahiFdconsume( int fdCount, fd_set* rfds, fd_set* wfds, fd_set* efds
return retval;
}
-#endif // HAVE_AVAHI
-
-void initZeroconf(void)
+static void init_avahi(const char *serviceName)
{
- const char* serviceName = SERVICE_NAME;
- ConfigParam *param;
-
- param = getConfigParam(CONF_ZEROCONF_NAME);
-
- if (param && strlen(param->value) > 0)
- serviceName = param->value;
-
-#if HAVE_AVAHI
int error;
DEBUG( "Avahi: Initializing interface\n" );
@@ -468,7 +458,21 @@ void initZeroconf(void)
fail:
finishZeroconf();
-#endif // HAVE_AVAHI
+}
+#else /* !HAVE_AVAHI */
+static void init_avahi(const char *serviceName) { }
+#endif /* HAVE_AVAHI */
+
+void initZeroconf(void)
+{
+ const char* serviceName = SERVICE_NAME;
+ ConfigParam *param;
+
+ param = getConfigParam(CONF_ZEROCONF_NAME);
+
+ if (param && strlen(param->value) > 0)
+ serviceName = param->value;
+ init_avahi(serviceName);
}
void finishZeroconf(void)