X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=main.c;h=140fc508374b6e273fe46f3cbfcdae89af555a11;hp=1f5872a12491597ee93e1d031e4e7309fac1e6b4;hb=c33007184de93d4a36bc16461964753946437916;hpb=877a2dfd52782f72ba2d28483212166f2326b1fa diff --git a/main.c b/main.c index 1f5872a..140fc50 100644 --- a/main.c +++ b/main.c @@ -181,8 +181,10 @@ int main(int argc, char *argv[]) int i; struct sched_param schedp; int created_mutexd = 0,/* created_mutext = 0,*/ created_mutexe = 0, - created_lock = 0, created_signal = 0, created_debug = 0, - created_misdn = 0, created_message = 0; + created_lock = 0, created_signal = 0, created_message = 0; +#ifdef WITH_MISDN + int created_misdn = 0; +#endif char tracetext[256], lock[128]; char options_error[256]; int polling = 0; @@ -215,8 +217,10 @@ int main(int argc, char *argv[]) goto free; } +#ifdef WITH_CRYPT /* init crc */ crc_init(); +#endif /* the mutex init */ if (pthread_mutex_init(&mutexd, NULL)) { @@ -268,11 +272,12 @@ int main(int argc, char *argv[]) } polling = options.polling; +#ifdef WITH_MISDN /* init mISDN */ if (mISDN_initialize() < 0) goto free; created_misdn = 1; - created_debug = 1; +#endif /* read ruleset(s) */ if (!(ruleset_first = ruleset_parse())) @@ -327,11 +332,13 @@ int main(int argc, char *argv[]) nooutput = 1; /* write pid file */ - pidfile = fopen("/var/run/lcr.pid","w"); + SPRINT(lock, "%s/lcr.pid", options.lock); + pidfile = fopen(lock,"w"); if (pidfile) { fprintf(pidfile, "%d\n", getpid()); fclose(pidfile); - } + } else + fprintf(stderr, "Failed to create PID file: %s\n", lock); } else /* if not start */ if (!!strcasecmp(argv[1],"start")) { @@ -543,8 +550,10 @@ free: free_interfaces(interface_first); interface_first = NULL; +#ifdef WITH_MISDN /* close isdn ports */ mISDNport_close_all(); +#endif /* flush messages */ debug_count++; @@ -572,8 +581,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); } @@ -593,9 +604,11 @@ free: if (pthread_mutex_destroy(&mutexd)) fprintf(stderr, "cannot destroy 'PDEBUG' mutex\n"); +#ifdef WITH_MISDN /* deinitialize mISDN */ if (created_misdn) mISDN_deinitialize(); +#endif /* free gsm */ #if 0 @@ -616,10 +629,6 @@ exit is done when interface is down sip_exit(); #endif - /* close loopback, if used by GSM or remote */ - if (mISDNloop.sock > -1) - mISDNloop_close(); - /* display memory leak */ #define MEMCHECK(a, b) \ if (b) { \