2 * Network Configuration Module
4 * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
29 #define LOG_FILE_PATH "/opt/usr/data/network/netconfig.log"
30 #define MAX_LOG_SIZE 1 * 1024 * 1024
31 #define MAX_LOG_COUNT 1
33 static FILE *log_file = NULL;
35 static inline void __netconfig_log_update_file_revision(int rev)
38 char *log_file = NULL;
39 char *next_log_file = NULL;
41 next_log_rev = rev + 1;
43 log_file = g_strdup_printf("%s.%d", LOG_FILE_PATH, rev);
44 next_log_file = g_strdup_printf("%s.%d", LOG_FILE_PATH, next_log_rev);
46 if (next_log_rev >= MAX_LOG_COUNT)
47 remove(next_log_file);
49 if (access(next_log_file, F_OK) == 0)
50 __netconfig_log_update_file_revision(next_log_rev);
52 if (rename(log_file, next_log_file) != 0)
56 g_free(next_log_file);
59 static inline void __netconfig_log_make_backup(void)
64 backup = g_strdup_printf("%s.%d", LOG_FILE_PATH, rev);
66 if (access(backup, F_OK) == 0)
67 __netconfig_log_update_file_revision(rev);
69 if (rename(LOG_FILE_PATH, backup) != 0)
70 remove(LOG_FILE_PATH);
75 static inline void __netconfig_log_get_local_time(char *strtime, const int size)
82 local_ptm = localtime(&buf);
85 strftime(strtime, size, "%m/%d %H:%M:%S", local_ptm);
88 void __netconfig_debug(const char *format, ...)
97 log_file = (FILE *)fopen(LOG_FILE_PATH, "a+");
102 va_start(ap, format);
104 if (fstat(fileno(log_file), &buf) == 0)
105 log_size = buf.st_size;
107 if (log_size >= MAX_LOG_SIZE) {
111 __netconfig_log_make_backup();
113 log_file = (FILE *)fopen(LOG_FILE_PATH, "a+");
115 if (log_file == NULL) {
121 __netconfig_log_get_local_time(strtime, sizeof(strtime));
123 if (vsnprintf(str, sizeof(str), format, ap) > 0)
124 fprintf(log_file, "%s %s", strtime, str);