Moved logging to a dedicated function
This commit is contained in:
parent
fa5108f7a0
commit
9a3aa78036
@ -210,20 +210,19 @@ static void _hayes_set_mode(Hayes * hayes, HayesChannel * channel,
|
|||||||
HayesChannelMode mode);
|
HayesChannelMode mode);
|
||||||
|
|
||||||
/* useful */
|
/* useful */
|
||||||
static int _hayes_request_channel(Hayes * hayes, HayesChannel * channel,
|
/* conversions */
|
||||||
ModemRequest * request, void * data);
|
static unsigned char _hayes_convert_char_to_iso(unsigned char c);
|
||||||
static int _hayes_request_type(Hayes * hayes, HayesChannel * channel,
|
static char * _hayes_convert_number_to_address(char const * number);
|
||||||
ModemRequestType type);
|
static void _hayes_convert_string_to_iso(char * str);
|
||||||
|
|
||||||
/* messages */
|
/* messages */
|
||||||
static char * _hayes_message_to_pdu(Hayes * hayes, HayesChannel * channel,
|
static char * _hayes_message_to_pdu(Hayes * hayes, HayesChannel * channel,
|
||||||
char const * number, ModemMessageEncoding encoding,
|
char const * number, ModemMessageEncoding encoding,
|
||||||
size_t length, char const * content);
|
size_t length, char const * content);
|
||||||
|
|
||||||
/* conversions */
|
/* logging */
|
||||||
static unsigned char _hayes_convert_char_to_iso(unsigned char c);
|
static void _hayes_log(Hayes * hayes, HayesChannel * channel,
|
||||||
static char * _hayes_convert_number_to_address(char const * number);
|
char const * prefix, char const * buf, size_t cnt);
|
||||||
static void _hayes_convert_string_to_iso(char * str);
|
|
||||||
|
|
||||||
/* parser */
|
/* parser */
|
||||||
static int _hayes_parse(Hayes * hayes, HayesChannel * channel);
|
static int _hayes_parse(Hayes * hayes, HayesChannel * channel);
|
||||||
@ -241,6 +240,13 @@ static void _hayes_queue_flush(Hayes * hayes, HayesChannel * channel);
|
|||||||
static int _hayes_queue_pop(Hayes * hayes, HayesChannel * channel);
|
static int _hayes_queue_pop(Hayes * hayes, HayesChannel * channel);
|
||||||
static int _hayes_queue_push(Hayes * hayes, HayesChannel * channel);
|
static int _hayes_queue_push(Hayes * hayes, HayesChannel * channel);
|
||||||
|
|
||||||
|
/* requests */
|
||||||
|
static int _hayes_request_channel(Hayes * hayes, HayesChannel * channel,
|
||||||
|
ModemRequest * request, void * data);
|
||||||
|
static int _hayes_request_type(Hayes * hayes, HayesChannel * channel,
|
||||||
|
ModemRequestType type);
|
||||||
|
|
||||||
|
/* reset */
|
||||||
static void _hayes_reset(Hayes * hayes);
|
static void _hayes_reset(Hayes * hayes);
|
||||||
|
|
||||||
/* callbacks */
|
/* callbacks */
|
||||||
@ -1015,6 +1021,25 @@ static void _hayes_convert_string_to_iso(char * str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* logging */
|
||||||
|
/* hayes_log */
|
||||||
|
static void _hayes_log(Hayes * hayes, HayesChannel * channel,
|
||||||
|
char const * prefix, char const * buf, size_t cnt)
|
||||||
|
{
|
||||||
|
ModemPluginHelper * helper = hayes->helper;
|
||||||
|
|
||||||
|
if(channel->fp == NULL)
|
||||||
|
return;
|
||||||
|
if(fprintf(channel->fp, "\n%s: ", prefix) == EOF
|
||||||
|
|| fwrite(buf, sizeof(*buf), cnt, channel->fp) < cnt)
|
||||||
|
{
|
||||||
|
helper->error(NULL, strerror(errno), 1);
|
||||||
|
fclose(channel->fp);
|
||||||
|
channel->fp = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* parser */
|
/* parser */
|
||||||
/* hayes_parse */
|
/* hayes_parse */
|
||||||
static int _parse_do(Hayes * hayes, HayesChannel * channel);
|
static int _parse_do(Hayes * hayes, HayesChannel * channel);
|
||||||
@ -2255,15 +2280,8 @@ static gboolean _on_watch_can_read(GIOChannel * source, GIOCondition condition,
|
|||||||
status = g_io_channel_read_chars(source,
|
status = g_io_channel_read_chars(source,
|
||||||
&channel->rd_buf[channel->rd_buf_cnt], inc, &cnt,
|
&channel->rd_buf[channel->rd_buf_cnt], inc, &cnt,
|
||||||
&error);
|
&error);
|
||||||
/* logging */
|
_hayes_log(hayes, channel, "MODEM",
|
||||||
if(channel->fp != NULL && (fputs("\nMODEM: ", channel->fp) == EOF
|
&channel->rd_buf[channel->rd_buf_cnt], cnt);
|
||||||
|| fwrite(&channel->rd_buf[channel->rd_buf_cnt],
|
|
||||||
sizeof(*p), cnt, channel->fp) < cnt))
|
|
||||||
{
|
|
||||||
helper->error(NULL, strerror(errno), 1);
|
|
||||||
fclose(channel->fp);
|
|
||||||
channel->fp = NULL;
|
|
||||||
}
|
|
||||||
channel->rd_buf_cnt += cnt;
|
channel->rd_buf_cnt += cnt;
|
||||||
switch(status)
|
switch(status)
|
||||||
{
|
{
|
||||||
@ -2364,15 +2382,7 @@ static gboolean _on_watch_can_write(GIOChannel * source, GIOCondition condition,
|
|||||||
return FALSE; /* should not happen */
|
return FALSE; /* should not happen */
|
||||||
status = g_io_channel_write_chars(source, channel->wr_buf,
|
status = g_io_channel_write_chars(source, channel->wr_buf,
|
||||||
channel->wr_buf_cnt, &cnt, &error);
|
channel->wr_buf_cnt, &cnt, &error);
|
||||||
/* logging */
|
_hayes_log(hayes, channel, "PHONE", channel->wr_buf, cnt);
|
||||||
if(channel->fp != NULL && (fputs("\nPHONE: ", channel->fp) == EOF
|
|
||||||
|| fwrite(channel->wr_buf, sizeof(*p), cnt,
|
|
||||||
channel->fp) < cnt))
|
|
||||||
{
|
|
||||||
hayes->helper->error(NULL, strerror(errno), 1);
|
|
||||||
fclose(channel->fp);
|
|
||||||
channel->fp = NULL;
|
|
||||||
}
|
|
||||||
if(cnt != 0) /* some data may have been written anyway */
|
if(cnt != 0) /* some data may have been written anyway */
|
||||||
{
|
{
|
||||||
channel->wr_buf_cnt -= cnt;
|
channel->wr_buf_cnt -= cnt;
|
||||||
|
Loading…
Reference in New Issue
Block a user