#endif
char tracetext[256], lock[128];
char options_error[256];
- int polling = 0;
#if 0
/* init fdset */
crc_init();
#endif
+#ifdef WITH_VOOTP
+ /* init VoOTP */
+ vootp_init(stderr);
+ vootp_loglevel(VOOTP_LOGL_INFO);
+#endif
+
/* the mutex init */
if (pthread_mutex_init(&mutexd, NULL)) {
fprintf(stderr, "cannot create 'PDEBUG' mutex\n");
/* query available isdn ports */
if (!(strcasecmp(argv[1],"query"))) {
- int rc;
+ int __attribute__((__unused__)) rc;
fprintf(stderr, "-> Using 'misdn_info'\n");
rc = system("misdn_info");
ret = 0;
PERROR("%s", options_error);
goto free;
}
- polling = options.polling;
#ifdef WITH_MISDN
/* init mISDN */
#ifdef WITH_SIP
/* init SIP globals */
sip_init();
- polling = 1; /* must poll, because of SIP events */
#endif
#ifdef WITH_SS5
goto free;
}
#endif
-#if 0
-init is done when interface is up
#ifdef WITH_GSM_BS
if (gsm_bs_init()) {
fprintf(stderr, "GSM BS initialization failed.\n");
goto free;
}
#endif
-#endif
#ifdef WITH_GSM_MS
if (gsm_ms_init()) {
fprintf(stderr, "GSM MS initialization failed.\n");
usleep(10000);
}
#else
+#ifdef WITH_SIP
+ if (options.polling || any_sip_interface) {
+#else
if (options.polling) {
+#endif
if (!select_main(1, NULL, NULL, NULL)) {
#ifdef WITH_SIP
/* FIXME: check if work was done */
debug_count++;
join_free();
- /* free interfaces */
- if (interface_first)
- free_interfaces(interface_first);
- interface_first = NULL;
-
#ifdef WITH_MISDN
/* close isdn ports */
mISDNport_close_all();
#endif
+ /* free interfaces */
+ if (interface_first)
+ free_interfaces(interface_first);
+ interface_first = NULL;
+
/* flush messages */
debug_count++;
i = 0;
if (created_lock)
flock(lockfd, LOCK_UN);
if (lockfd >= 0) {
- chmod(lock, 0700);
- unlink(lock);
+ if (created_lock) {
+ chmod(lock, 0700);
+ unlink(lock);
+ }
close(lockfd);
}
#endif
/* free gsm */
-#if 0
-exit is done when interface is down
#ifdef WITH_GSM_BS
gsm_bs_exit(0);
#endif
-#endif
#ifdef WITH_GSM_MS
gsm_ms_exit(0);
#endif
sip_exit();
#endif
-#ifdef WITH_MISDN
- /* close loopback, if used by GSM or remote */
- if (mISDNloop.sock > -1)
- mISDNloop_close();
-#endif
-
/* display memory leak */
#define MEMCHECK(a, b) \
if (b) { \