From fb0a00c4feb58ea845981164fcb583b7c3fa5812 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 10 Jan 2004 16:48:49 +0000 Subject: fixed loggin git-svn-id: file:///home/lennart/svn/public/ivam2/trunk@32 dbf6933d-3bce-0310-9bcc-ed052ba35b35 --- src/main.c | 4 ++- src/modem.c | 79 +++++++++++++++++++++++++++++++--------------------------- src/modem.h | 1 + src/modemman.c | 2 ++ 4 files changed, 48 insertions(+), 38 deletions(-) diff --git a/src/main.c b/src/main.c index bc96fb5..4e28329 100644 --- a/src/main.c +++ b/src/main.c @@ -143,13 +143,15 @@ int main_loop(void) { int r = -1, retval_sent = 0; oop_source_sys *sys = NULL; - daemon_log(LOG_INFO, "Starting up."); + daemon_log(LOG_INFO, "Starting up "PACKAGE" version "VERSION" <"PACKAGE_BUGREPORT">."); if (get_target_uid_gid() < 0) goto finish; setenv("PATH", BINDIR":/usr/sbin:/usr/bin:/sbin:/bin/:/usr/local/sbin:/usr/local/bin", 1); + daemon_log(LOG_INFO, "Path set to '%s'.", getenv("PATH")); + if (!(sys = oop_sys_new())) { daemon_log(LOG_ERR, "Failed to create system source."); goto finish; diff --git a/src/modem.c b/src/modem.c index 260e07f..0336af2 100644 --- a/src/modem.c +++ b/src/modem.c @@ -153,6 +153,11 @@ struct modem *modem_open(const char *dev) { m->dev = strdup(dev); assert(m->dev); + + if ((m->name = strrchr(m->dev, '/'))) + m->name++; + else + m->name = m->dev; m->child_pid = -1; m->child_buffio = NULL; @@ -176,7 +181,7 @@ fail: void modem_close(struct modem *m) { assert(m); - daemon_log(LOG_INFO, "Closing modem on TTY device '%s'", m->dev); + daemon_log(LOG_INFO, "[%s] Closing modem.", m->name); modem_timeout(m, 0); @@ -207,7 +212,7 @@ static int error_cb(struct buffio *b, void *user) { struct modem *m = user; assert(m && (m->buffio == b || m->child_buffio == b)); - daemon_log(LOG_ERR, "Buffio (%s) failure, exiting...", m->buffio == b ? "modem" : "child"); + daemon_log(LOG_ERR, "[%s] Buffio (%s) failure, exiting...", m->name, m->buffio == b ? "modem" : "child"); return -1; } @@ -238,7 +243,7 @@ static void modem_next_command(struct modem *m) { buffio_command(m->buffio, hup_sequence); else if (m->command_index == 15) { char *l = args.listen_arg ? args.listen_arg : "*"; - daemon_log(LOG_INFO, "Listening on '%s'.", l); + daemon_log(LOG_INFO, "[%s] Listening on '%s'.", m->name, l); snprintf(tmp, sizeof(tmp), p, l); p = tmp; } @@ -249,7 +254,7 @@ static void modem_next_command(struct modem *m) { static void modem_init_cycle(struct modem *m) { assert(m); - daemon_log(LOG_INFO, "Initializing modem."); + daemon_log(LOG_INFO, "[%s] Initializing modem.", m->name); m->state = MODEM_STATE_INIT; m->command_index = 0; modem_timeout(m, INIT_TIMEOUT); @@ -257,7 +262,7 @@ static void modem_init_cycle(struct modem *m) { } static void modem_sched_reset(struct modem *m) { - daemon_log(LOG_INFO, "Reinitializing in %i seconds.", RESET_IDLE_TIME); + daemon_log(LOG_INFO, "[%s] Reinitializing in %i seconds.", m->name, RESET_IDLE_TIME); m->state = MODEM_STATE_IDLE; modem_timeout(m, RESET_IDLE_TIME); } @@ -293,20 +298,20 @@ static void modem_hangup_seq(struct modem *m) { if (m->child_buffio && m->child_buffio->ofd != -1) { /* Draining output is required */ - daemon_log(LOG_INFO, "Waiting for child drain."); + daemon_log(LOG_INFO, "[%s] Waiting for child drain.", m->name); m->state = MODEM_STATE_CHILD_DRAIN; modem_timeout(m, CHILD_TIMEOUT); } else if (m->child_buffio) { /* Draining input is required */ - daemon_log(LOG_INFO, "Waiting for child EOF."); + daemon_log(LOG_INFO, "[%s] Waiting for child EOF.", m->name); m->state = MODEM_STATE_CHILD_WAIT_EOF; buffio_close_output_fd(m->child_buffio); buffio_flush_input(m->child_buffio); modem_timeout(m, CHILD_TIMEOUT); } else if (m->child_pid != (pid_t) -1) { - daemon_log(LOG_INFO, "Killing child."); + daemon_log(LOG_INFO, "[%s] Killing child.", m->name); m->state = MODEM_STATE_CHILD_KILL; child_process_kill(m->child_pid); modem_timeout(m, CHILD_TIMEOUT); @@ -318,7 +323,7 @@ static void modem_hangup_seq(struct modem *m) { static void modem_hangup(struct modem *m, int b) { size_t l; assert(m); - daemon_log(LOG_INFO, "Hanging up."); + daemon_log(LOG_INFO, "[%s] Hanging up.", m->name); buffio_set_input_range(m->buffio, INPUT_RANGE_DEFAULT); buffio_set_output_range(m->buffio, OUTPUT_RANGE_DEFAULT); @@ -343,7 +348,7 @@ static void modem_hangup(struct modem *m, int b) { static void modem_accept(struct modem *m) { assert(m); - daemon_log(LOG_INFO, "Accepting call."); + daemon_log(LOG_INFO, "[%s] Accepting call.", m->name); m->state = MODEM_STATE_ATA; modem_timeout(m, ACCEPT_TIMEOUT); @@ -358,9 +363,9 @@ static void child_exit_cb(pid_t t, int status, void *user) { if (WIFEXITED(status)) daemon_log(WEXITSTATUS(status) == 0 ? LOG_INFO : LOG_WARNING, "Child exited with return code %i.", WEXITSTATUS(status)); else if (WIFSIGNALED(status)) - daemon_log(LOG_WARNING, "Child exited by signal %i.", WTERMSIG(status)); + daemon_log(LOG_WARNING, "[%s] Child exited by signal %i.", m->name, WTERMSIG(status)); else - daemon_log(LOG_ERR, "Child exited due to unknown cause."); + daemon_log(LOG_ERR, "[%s] Child exited due to unknown cause.", m->name); m->child_pid = (pid_t) -1; if (m->dtmf_fifo) { @@ -419,7 +424,7 @@ static int child_epipe_cb(struct buffio *b, void *user) { struct modem *m = user; assert(m && m->child_buffio == b); - daemon_log(LOG_INFO, "Got child EPIPE."); + daemon_log(LOG_INFO, "[%s] Got child EPIPE.", m->name); assert(m->child_buffio); buffio_flush_output(m->child_buffio); @@ -513,7 +518,7 @@ static void* oop_timeout_cb(oop_source *source, struct timeval tv, void *user) { case MODEM_STATE_PRE_HANGUP_ATHSEQ: case MODEM_STATE_HANGUP: - daemon_log(LOG_ERR, "Timeout reached for device <%s>", m->dev); + daemon_log(LOG_ERR, "[%s] Timeout reached.", m->name); return OOP_HALT; case MODEM_STATE_RINGING: @@ -523,7 +528,7 @@ static void* oop_timeout_cb(oop_source *source, struct timeval tv, void *user) { case MODEM_STATE_ATA: case MODEM_STATE_VTXVRX: - daemon_log(LOG_ERR, "Connection not established for device <%s>", m->dev); + daemon_log(LOG_ERR, "[%s] Connection not established.", m->name); m->state = MODEM_STATE_IDLE; modem_timeout(m, RESET_IDLE_TIME); return OOP_CONTINUE; @@ -534,7 +539,7 @@ static void* oop_timeout_cb(oop_source *source, struct timeval tv, void *user) { return OOP_CONTINUE; case MODEM_STATE_CHILD_DRAIN: - daemon_log(LOG_INFO, "Child output buffer did not drain, flushing."); + daemon_log(LOG_INFO, "[%s] Child output buffer did not drain, flushing.", m->name); assert(m->child_buffio); buffio_flush_output(m->child_buffio); @@ -543,7 +548,7 @@ static void* oop_timeout_cb(oop_source *source, struct timeval tv, void *user) { case MODEM_STATE_CHILD_WAIT_EOF: - daemon_log(LOG_INFO, "Child did not EOF, closing child pipes."); + daemon_log(LOG_INFO, "[%s] Child did not EOF, closing child pipes.", m->name); assert(m->child_buffio); buffio_free(m->child_buffio); m->child_buffio = NULL; @@ -553,7 +558,7 @@ static void* oop_timeout_cb(oop_source *source, struct timeval tv, void *user) { return OOP_CONTINUE; case MODEM_STATE_CHILD_KILL: - daemon_log(LOG_INFO, "Child did not react on killing, exiting."); + daemon_log(LOG_INFO, "[%s] Child did not react on killing, exiting.", m->name); return OOP_HALT; default: @@ -577,7 +582,7 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { m->command_index++; if (m->command_index >= INIT_AT_COMMANDS) { - daemon_log(LOG_INFO, "Modem successfully initialised, waiting for calls."); + daemon_log(LOG_INFO, "[%s] Modem successfully initialised, waiting for calls.", m->name); m->state = MODEM_STATE_CALLER_NUMBER_EXPECT; modem_timeout(m, 0); modem_input_ready_cb(b, user); @@ -642,7 +647,7 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { assert(m->ring_number); modem_timeout(m, 0); - daemon_log(LOG_INFO, "Incoming call from [%s] to [%s]", m->caller_number, m->ring_number); + daemon_log(LOG_INFO, "[%s] Incoming call from [%s] to [%s]", m->name, m->caller_number, m->ring_number); if ((t = msntab_check_call(m->ring_number, m->caller_number)) && (t->action == CALL_ACTION_ACCEPT || t->action == CALL_ACTION_HANGUP)) { @@ -653,7 +658,7 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { if (t->rings <= 0) modem_accept(m); else { - daemon_log(LOG_INFO, "Will accept call after %u rings (%u seconds).", t->rings, t->rings*RING_TIME); + daemon_log(LOG_INFO, "[%s] Will accept call after %u rings (%u seconds).", m->name, t->rings, t->rings*RING_TIME); m->state = MODEM_STATE_RINGING; modem_timeout(m, RING_TIME*t->rings); } @@ -661,7 +666,7 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { break; } - daemon_log(LOG_INFO, "Ignoring call."); + daemon_log(LOG_INFO, "[%s] Ignoring call.", m->name); if (t) msntab_unref(t); @@ -676,7 +681,7 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { case MODEM_STATE_RINGING: if (buffio_find_input(m->buffio, "RUNG\r\n")) { - daemon_log(LOG_INFO, "Peer hung up prematurely."); + daemon_log(LOG_INFO, "[%s] Peer hung up prematurely.", m->name); m->state = MODEM_STATE_CALLER_NUMBER_EXPECT; modem_timeout(m, 0); modem_input_ready_cb(b, user); @@ -691,18 +696,18 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { assert(m->tabentry); if (m->tabentry->action == CALL_ACTION_ACCEPT) { - daemon_log(LOG_INFO, "Call accepted, changing to voice mode."); + daemon_log(LOG_INFO, "[%s] Call accepted, changing to voice mode.", m->name); buffio_command(m->buffio, "AT+VTX+VRX\n"); m->state = MODEM_STATE_VTXVRX; } else if (m->tabentry->action == CALL_ACTION_HANGUP) { modem_timeout(m, 0); - daemon_log(LOG_INFO, "Call accepted for hang up."); + daemon_log(LOG_INFO, "[%s] Call accepted for hang up.", m->name); modem_hangup(m, 0); } else assert(0); } else if (buffio_find_input(m->buffio, "NO CARRIER\r\n")) { - daemon_log(LOG_INFO, "Failed to accept call, carrier lost"); + daemon_log(LOG_INFO, "[%s] Failed to accept call, carrier lost", m->name); modem_sched_reset(m); } else buffio_dump_lines(m->buffio); @@ -715,10 +720,10 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { modem_timeout(m, 0); m->state = MODEM_STATE_CONNECTION; - daemon_log(LOG_INFO, "Voice connection established."); + daemon_log(LOG_INFO, "[%s] Voice connection established.", m->name); if (modem_start_child(m) < 0) { - daemon_log(LOG_ERR, "Failed to start child process"); + daemon_log(LOG_ERR, "[%s] Failed to start child process", m->name); modem_hangup(m, 1); } else { m->dle_flag = 0; @@ -733,7 +738,7 @@ static int modem_input_ready_cb(struct buffio *b, void *user) { } } else if (buffio_find_input(m->buffio, "NO CARRIER\r\n")) { - daemon_log(LOG_INFO, "Failed to accept call, carrier lost"); + daemon_log(LOG_INFO, "[%s] Failed to accept call, carrier lost", m->name); modem_sched_reset(m); } @@ -806,7 +811,7 @@ static int modem_dle_cb(uint8_t c, void *user) { switch (c) { case ETX : case DC4 : - daemon_log(LOG_INFO, "Recieved hangup sequence from peer."); + daemon_log(LOG_INFO, "[%s] Recieved hangup sequence from peer.", m->name); assert(m->state == MODEM_STATE_CONNECTION); @@ -834,7 +839,7 @@ static void copy_modem_to_child(struct modem *m) { if (sp && sl && (!dp || !dl)) { if (!m->flush_msg) { - daemon_log(LOG_INFO, "Child too slow, output buffer overflow, flushing."); + daemon_log(LOG_INFO, "[%s] Child too slow, output buffer overflow, flushing.", m->name); m->flush_msg = 1; } @@ -885,22 +890,22 @@ static int modem_reopen(struct modem *m) { assert(m && m->dev); if (m->buffio) { - daemon_log(LOG_INFO, "Closing TTY device '%s'."); + daemon_log(LOG_INFO, "[%s] Closing TTY device.", m->name); buffio_close_output_fd(m->buffio); buffio_close_input_fd(m->buffio); } - daemon_log(LOG_INFO, "Trying to open modem on TTY device '%s' ...", m->dev); + daemon_log(LOG_INFO, "[%s] Trying to open modem on TTY device ...", m->name); if ((fd = open(m->dev, O_RDWR|O_NDELAY)) < 0) { - daemon_log(LOG_ERR, "Failed to open device '%s': %s", m->dev, strerror(errno)); + daemon_log(LOG_ERR, "[%s] Failed to open device: %s", m->name, strerror(errno)); goto fail; } - daemon_log(LOG_INFO, "TTY device '%s' successfully opened.", m->dev); + daemon_log(LOG_INFO, "[%s] TTY device successfully opened.", m->name); if (tcgetattr(fd, &ts) < 0) { - daemon_log(LOG_ERR, "Failed to get TTY attributes: %s", strerror(errno)); + daemon_log(LOG_ERR, "[%s] Failed to get TTY attributes: %s", m->name, strerror(errno)); goto fail; } @@ -918,7 +923,7 @@ static int modem_reopen(struct modem *m) { tcflush(fd, TCIOFLUSH); if (tcsetattr(fd, TCSANOW, &ts) < 0) { - daemon_log(LOG_ERR, "Failed to set TTY attributes: %s", strerror(errno)); + daemon_log(LOG_ERR, "[%s] Failed to set TTY attributes: %s", m->name, strerror(errno)); goto fail; } diff --git a/src/modem.h b/src/modem.h index 5b216ca..d6c71fc 100644 --- a/src/modem.h +++ b/src/modem.h @@ -48,6 +48,7 @@ enum modem_state { struct modem { char *dev; + char *name; struct buffio *buffio; diff --git a/src/modemman.c b/src/modemman.c index ab0dd6e..a2fbf12 100644 --- a/src/modemman.c +++ b/src/modemman.c @@ -64,6 +64,8 @@ int modem_manager_init(int channels) { assert(channels <= MAX_CHANNELS && channels > 0); assert(n_llist == 0); + daemon_log(LOG_INFO, "Allocating %i channels.", channels); + for (i = TTY_START; i < TTY_START+MAX_CHANNELS && n_llist < channels; i++) { char d[PATH_MAX]; snprintf(d, sizeof(d), "/dev/ttyI%i", i); -- cgit