X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=main.c;h=5c13f178009dd1fcdcc9ff08774cc2a02ebbb7bf;hp=95388a0dae9a2e64777338e2a40e2b6bb1c5d382;hb=79bd731c0db3e3202cfeed2af3fb217ae744b70f;hpb=b0764b4677c9434b8722cd4084075b6dfc73d0d7 diff --git a/main.c b/main.c index 95388a0..5c13f17 100644 --- a/main.c +++ b/main.c @@ -187,7 +187,6 @@ int main(int argc, char *argv[]) #endif char tracetext[256], lock[128]; char options_error[256]; - int polling = 0; #if 0 /* init fdset */ @@ -222,6 +221,12 @@ int main(int argc, char *argv[]) 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"); @@ -258,7 +263,7 @@ int main(int argc, char *argv[]) /* 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; @@ -270,7 +275,6 @@ int main(int argc, char *argv[]) PERROR("%s", options_error); goto free; } - polling = options.polling; #ifdef WITH_MISDN /* init mISDN */ @@ -372,7 +376,6 @@ int main(int argc, char *argv[]) #ifdef WITH_SIP /* init SIP globals */ sip_init(); - polling = 1; /* must poll, because of SIP events */ #endif #ifdef WITH_SS5 @@ -394,15 +397,12 @@ int main(int argc, char *argv[]) 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"); @@ -492,7 +492,11 @@ init is done when interface is up 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 */ @@ -545,16 +549,16 @@ free: 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; @@ -581,8 +585,10 @@ free: 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); } @@ -609,12 +615,9 @@ free: #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 @@ -627,12 +630,6 @@ exit is done when interface is down 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) { \