[Freeswitch-svn] [commit] r5244 - freeswitch/branches/anthonyl/fs-branch/src/mod/loggers/mod_log2file
Author: anthonyl Date: Fri Jun 1 17:20:24 2007 New Revision: 5244 Modified: freeswitch/branches/anthonyl/fs-branch/src/mod/loggers/mod_log2file/mod_log2file.c Log: update. converted all of the calls to switch_file_write that we need. Modified: freeswitch/branches/anthonyl/fs-branch/src/mod/loggers/mod_log2file/mod_log2file.c ============================================================================== --- freeswitch/branches/anthonyl/fs-branch/src/mod/loggers/mod_log2file/mod_log2file.c (original) +++ freeswitch/branches/anthonyl/fs-branch/src/mod/loggers/mod_log2file/mod_log2file.c Fri Jun 1 17:20:24 2007 @@ -55,7 +55,7 @@ unsigned int roll_size; /* the size that we want to rotate the file at */ unsigned char *logfile; unsigned char *format; - apr_file_t *log_afd; + switch_file_t *log_afd; } globals; SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_logfile, globals.logfile) @@ -79,15 +79,15 @@ }; static switch_loadable_module_interface_t log2file_module_interface = { /*.module_name */ modname, - /*.endpoint_interface */ NULL, - /*.timer_interface */ NULL, - /*.dialplan_interface */ NULL, - /*.codec_interface */ NULL, + /*.endpoint_interface */ NULL, + /*.timer_interface */ NULL, + /*.dialplan_interface */ NULL, + /*.codec_interface */ NULL, /*.application_interface */ NULL, - /*.api_interface */ NULL, - /*.file_interface */ NULL, - /*.speech_interface */ NULL, - /*.directory_interface */ NULL + /*.api_interface */ NULL, + /*.file_interface */ NULL, + /*.speech_interface */ NULL, + /*.directory_interface */ NULL }; /* this may exist somewhere else in the code? */ @@ -164,13 +164,13 @@ static switch_status_t mod_log2file_openlogfile(void) { int fd; - apr_file_t *afd; - apr_status_t stat; + switch_file_t *afd; + switch_status_t stat; - stat = apr_file_open(&afd, globals.logfile, + stat = switch_file_open(&afd, globals.logfile, APR_CREATE| APR_READ | APR_WRITE | APR_APPEND, NULL, NULL); - if (stat != APR_SUCCESS) { + if (stat != SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_FALSE; } globals.log_afd = afd; @@ -186,13 +186,14 @@ unsigned int i; unsigned char *p; unsigned char *q; - apr_status_t stat; - apr_file_t *l_afd; + switch_status_t stat; + switch_size_t nbytes; + switch_file_t *l_afd; globals.log_size = 0; - stat = apr_file_seek(globals.log_afd, APR_SET, 0); + stat = switch_file_seek(globals.log_afd, APR_SET, 0); - if (stat != APR_SUCCESS) + if (stat != SWITCH_STATUS_SUCCESS) return SWITCH_STATUS_FALSE; p = malloc(strlen(globals.logfile)+WARM_FUZZY_OFFSET); @@ -207,23 +208,21 @@ memset(p, '\0', strlen(globals.logfile)+WARM_FUZZY_OFFSET); for (i=1;i<MAX_ROT; i++) { sprintf(p, "%s.%i", globals.logfile, i); - stat = apr_file_open(l_afd, p, APR_READ, NULL, NULL); - if (stat == APR_SUCCESS) { - apr_file_close(l_afd); + stat = switch_file_open(l_afd, p, APR_READ, NULL, NULL); + if (stat == SWITCH_STATUS_SUCCESS) { + switch_file_close(l_afd); continue; } - stat = apr_file_open(l_afd, p, APR_READ | APR_WRITE | APR_CREATE , NULL, NULL); - if (stat == APR_SUCCESS) + stat = switch_file_open(l_afd, p, APR_READ | APR_WRITE | APR_CREATE , NULL, NULL); + if (stat == SWITCH_STATUS_SUCCESS) break; } - while( ret = fread(q, 1024, 1, globals.log_fd)) { - fwrite(q, 1024, 1, fd); - memset(q, '\0', 1024); + nbytes = 1024; + while ((stat = switch_file_read(&globals.log_afd, q, &nbytes)) == SWITCH_STATUS_SUCCESS) { + switch_file_write(l_afd, q, &nbytes); + memset(q, '\0', 1024); } - /* now we need to resize the original file to 0 */ - /* or just remove it */ ret = fseek(globals.log_fd, 0, SEEK_SET); - fclose(fd); free(p); free(q); return SWITCH_STATUS_SUCCESS; @@ -232,16 +231,14 @@ /* check the size of the file for rotation */ static switch_status_t mod_log2file_check(void) { - apr_status_t stat; - apr_finfo_t finfo; - off_t off; - - stat = apr_file_info_get(&finfo, APR_FINFO_SIZE, &globals.log_afd); - - if (stat != APR_SUCCESS) + switch_status_t stat; + switch_size_t fsize; + fsize = switch_file_get_size(&globals.log_afd); + + if (stat != SWITCH_STATUS_SUCCESS) return SWITCH_STATUS_FALSE; - if (finfo.size >= globals.roll_size) { + if (fsize >= globals.roll_size) { return mod_log2file_rotate(); } @@ -251,21 +248,23 @@ /* write to the actual logfile */ static switch_status_t mod_log2file_write(char *fmt, ...) { - int ret; unsigned int len; - char log_data[MAX_LENGTH]; /* seems like a waste of stack space no ;), i'll fix this later */ + char *log_data; + switch_status_t stat; va_list args; va_start(args, fmt); #ifdef WIN32 - _vsnprintf(&log_data, sizeof(log_data), fmt, args); + len = _vasprintf(&log_data, fmt, args); #else - vsnprintf((char *)&log_data, sizeof(log_data), fmt, args); + len = vasprintf(&log_data, fmt, args); #endif - if ((ret = fprintf(globals.log_fd, "%s" , log_data))<0) { + if (len <= 0) return SWITCH_STATUS_FALSE; - } - globals.log_size += ret; + stat = switch_file_write(&globals.log_afd, log_data, len); + if (stat != SWITCH_STATUS_SUCCESS) + return SWITCH_STATUS_FALSE; + globals.log_size += len; /* we may want to hold back on this for preformance reasons */ mod_log2file_check(); return SWITCH_STATUS_SUCCESS;
participants (1)
-
Freeswitch SVN