X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=main.c;h=599a91120662e5a93a87cda3a7bc62817cd994dc;hp=770ecb18864d6f7ec26776e0c7c3b737a51c9dcf;hb=5a22e57828617abc14e27814ee918cc63b96fd46;hpb=3754d8f73ff7cb55e204f7ede6569028407a00e5 diff --git a/main.c b/main.c index 770ecb1..599a911 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,12 @@ 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 */ GET_NOW(); @@ -221,7 +222,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; } @@ -458,7 +459,10 @@ int main(int argc, char *argv[]) created_signal = 1; /*** main loop ***/ - printf("%s %s started, waiting for calls...\n", NAME, VERSION_STRING); + SPRINT(tracetext, "%s %s started, waiting for calls...", NAME, VERSION_STRING); + start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext); + printf("%s\n", tracetext); + end_trace(); GET_NOW(); #ifdef DEBUG_DURATION start_d = now_d; @@ -523,23 +527,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 @@ -571,33 +575,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; @@ -661,15 +665,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(); @@ -682,7 +686,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 */ @@ -721,7 +730,7 @@ free: } epoint_first = NULL; debug_count++; - call_free(); + join_free(); /* free interfaces */ if (interface_first) @@ -782,15 +791,19 @@ free: #define MEMCHECK(a, b) \ if (b) \ { \ + SPRINT(tracetext, a, NAME); \ + start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext); \ + if (ret) add_trace("blocks", NULL, "%d", b); \ + end_trace(); \ printf("\n******************************\n\007"); \ printf("\nERROR: %d %s\n", b, a); \ printf("\n******************************\n"); \ 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) @@ -799,13 +812,7 @@ free: MEMCHECK("file handler(s) left",fhuse) /* take me out */ - if (ret) - printf("LCR: Exit (code %d)\n", ret); -#ifdef VOIP - return; -#else return(ret); -#endif }