X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=main.c;h=2f119380b0a6d48d13559196ca65a7ab247c8f07;hp=3d905d08f7b4859c5ddf8103dbc99a04b2cedbe5;hb=54d34cda7a6f0d9bd3ff22d529ce69ff2c004bd3;hpb=2746009aca7e00678ad6f5f64da8b208ab635d60 diff --git a/main.c b/main.c index 3d905d0..2f11938 100644 --- a/main.c +++ b/main.c @@ -185,7 +185,7 @@ int main(int argc, char *argv[]) struct message *message; class Port *port; class Endpoint *epoint; - class Call *call; + class Join *join; int i; int all_idle; char prefix_string[64]; @@ -195,11 +195,10 @@ int main(int argc, char *argv[]) created_lock = 0, created_signal = 0, created_debug = 0; #ifdef DEBUG_DURATION time_t durationupdate; - double idle_duration, isdn_duration, port_duration, epoint_duration, call_duration, message_duration, admin_duration; + double idle_duration, isdn_duration, port_duration, epoint_duration, join_duration, message_duration, admin_duration; double start_d; #endif int idletime = 0, idlecheck = 0; - char debug_log[128]; char tracetext[256]; /* current time */ @@ -222,7 +221,7 @@ int main(int argc, char *argv[]) printf("rules [action] = Get individual help for given action.\n"); // printf("route = Show current routing as it is parsed.\n"); printf("\n"); - ret = 0; + ret = 999; goto free; } @@ -287,22 +286,11 @@ int main(int argc, char *argv[]) if (read_options() == 0) goto free; - /* initialize stuff of the NT lib */ - if (options.deb & DEBUG_STACK) - { - global_debug = 0xffffffff & ~DBGM_MSG; -// global_debug = DBGM_L3DATA; - } else - global_debug = DBGM_MAN; - SPRINT(debug_log, "%s/debug.log", INSTALL_DATA); - if (options.deb & DEBUG_LOG) - debug_init(global_debug, debug_log, debug_log, debug_log); - else - debug_init(global_debug, NULL, NULL, NULL); + /* init mISDN */ + if (mISDN_initialize() < 0) + goto free; created_debug = 1; - msg_init(); - /* read ruleset(s) */ if (!(ruleset_first = ruleset_parse())) goto free; @@ -527,23 +515,23 @@ BUDETECT start_d = now_d; #endif - /* loop through all calls and call their handler */ - call_again: - call = call_first; - while(call) + /* loop through all joins and call their handler */ + join_again: + join = join_first; + while(join) { - debug_prefix = "call"; + debug_prefix = "join"; debug_count++; - ret = call->handler(); + ret = join->handler(); if (ret) all_idle = 0; - if (ret < 0) /* call has been destroyed */ - goto call_again; - call = call->next; + if (ret < 0) /* join has been destroyed */ + goto join_again; + join = join->next; } #ifdef DEBUG_DURATION GET_NOW(); - call_duration += (now_d - start_d); + join_duration += (now_d - start_d); start_d = now_d; #endif @@ -575,33 +563,33 @@ BUDETECT } break; - case EPOINT_TO_CALL: - debug_prefix = "msg epoint->call"; - call = find_call_id(message->id_to); - if (call) + case EPOINT_TO_JOIN: + debug_prefix = "msg epoint->join"; + join = find_join_id(message->id_to); + if (join) { - call->message_epoint(message->id_from, message->type, &message->param); + join->message_epoint(message->id_from, message->type, &message->param); } else { - PDEBUG(DEBUG_MSG, "Warning: message %s from endpoint %d to call %d. call doesn't exist anymore\n", messages_txt[message->type], message->id_from, message->id_to); + PDEBUG(DEBUG_MSG, "Warning: message %s from endpoint %d to join %d. join doesn't exist anymore\n", messages_txt[message->type], message->id_from, message->id_to); } break; - case CALL_TO_EPOINT: - debug_prefix = "msg call->epoint"; + case JOIN_TO_EPOINT: + debug_prefix = "msg join->epoint"; epoint = find_epoint_id(message->id_to); if (epoint) { if (epoint->ep_app) { - epoint->ep_app->ea_message_call(message->id_from, message->type, &message->param); + epoint->ep_app->ea_message_join(message->id_from, message->type, &message->param); } else { - PDEBUG(DEBUG_MSG, "Warning: message %s from call %d to endpoint %d. endpoint doesn't have an application.\n", messages_txt[message->type], message->id_from, message->id_to); + PDEBUG(DEBUG_MSG, "Warning: message %s from join %d to endpoint %d. endpoint doesn't have an application.\n", messages_txt[message->type], message->id_from, message->id_to); } } else { - PDEBUG(DEBUG_MSG, "Warning: message %s from call %d to endpoint %d. endpoint doesn't exist anymore.\n", messages_txt[message->type], message->id_from, message->id_to); + PDEBUG(DEBUG_MSG, "Warning: message %s from join %d to endpoint %d. endpoint doesn't exist anymore.\n", messages_txt[message->type], message->id_from, message->id_to); } break; @@ -665,15 +653,15 @@ BUDETECT if (durationupdate != now) { durationupdate = now; - printf("Idle:%3d ISDN:%3d Port:%3d Epoint:%3d Call:%3d Message:%3d Admin:%3d\n", + printf("Idle:%3d ISDN:%3d Port:%3d Epoint:%3d Join:%3d Message:%3d Admin:%3d\n", (int)(idle_duration*100), (int)(isdn_duration*100), (int)(port_duration*100), (int)(epoint_duration*100), - (int)(call_duration*100), + (int)(join_duration*100), (int)(message_duration*100), (int)(admin_duration*100)); - idle_duration = isdn_duration = port_duration = epoint_duration = call_duration = message_duration = admin_duration = 0; + idle_duration = isdn_duration = port_duration = epoint_duration = join_duration = message_duration = admin_duration = 0; } #else GET_NOW(); @@ -686,7 +674,12 @@ BUDETECT idletime += 4000; } } - printf("LCR terminated\n"); + SPRINT(tracetext, "%s terminated", NAME); + printf("%s\n", tracetext); + start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext); + if (ret) + add_trace("error", NULL, "%d", ret); + end_trace(); ret=0; /* free all */ @@ -725,7 +718,7 @@ free: } epoint_first = NULL; debug_count++; - call_free(); + join_free(); /* free interfaces */ if (interface_first) @@ -777,9 +770,8 @@ free: if (pthread_mutex_destroy(&mutexd)) fprintf(stderr, "cannot destroy 'PDEBUG' mutex\n"); - /* close debug */ - if (created_debug) - debug_close(); + /* deinitialize mISDN */ + mISDN_deinitialize(); global_debug = 0; /* display memory leak */ @@ -796,9 +788,9 @@ free: ret = -1; \ } MEMCHECK("",memuse) - MEMCHECK("memory block(s) left (port.cpp)",pmemuse) - MEMCHECK("memory block(s) left (epoint.cpp)",ememuse) - MEMCHECK("memory block(s) left (call.cpp)",cmemuse) + MEMCHECK("memory block(s) left (port.cpp ...)",pmemuse) + MEMCHECK("memory block(s) left (epoint*.cpp ...)",ememuse) + MEMCHECK("memory block(s) left (join*.cpp)",cmemuse) MEMCHECK("memory block(s) left (message.c)",mmemuse) MEMCHECK("memory block(s) left (route.c)",rmemuse) MEMCHECK("memory block(s) left (args)",amemuse) @@ -807,12 +799,6 @@ free: MEMCHECK("file handler(s) left",fhuse) /* take me out */ - SPRINT(tracetext, "%s exit", NAME); - printf("%s\n", tracetext); - start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext); - if (ret) - add_trace("error", NULL, "%d", ret); - end_trace(); return(ret); }