[Freeswitch-svn] [commit] r5244 - freeswitch/branches/anthonyl/fs-branch/src/mod/loggers/mod_log2file

Freeswitch SVN anthonyl at freeswitch.org
Fri Jun 1 17:20:24 EDT 2007


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;



More information about the Freeswitch-svn mailing list