- if (strlen(global_log_data.log_file_directory)>0)
- {
- lastchar[0] = global_log_data.
- log_file_directory[strlen(global_log_data.log_file_directory)-1];
-
- if (lastchar[0] == '/' || lastchar[0] == '\\' || lastchar[0] == ':')
- lastchar[0] = 0;
- else
- /* this should probably be a platform specific path separator */
- lastchar[0] = '/';
-
- lastchar[1] = 0;
- }
- else
- lastchar[0] = 0;
-
-#ifdef DEBUG_OUTPUT_TO_SCREEN
- printf("filename is %s stored at location %p\n", (*logs)[1].log_filename,
- (*logs)[1].log_filename);
-#endif /* DEBUG_OUTPUT_TO_SCREEN */
- if (filename == NULL)
- {
- strncpy((*logs)[1].log_filename,
- (*(log_file_arr[0]))[1].log_filename, PATH_MAX);
- }
- else
- {
- sprintf((*logs)[1].log_filename, "%s%s%s",
- global_log_data.log_file_directory,
- lastchar, filename);
- }
- (*logs)[1].log_level = loglevel;
- (*logs)[1].display_options = display_options;
-
-#ifdef DEBUG_OUTPUT_TO_SCREEN
- printf("filename is %s stored at location %p\n", (*logs)[1].log_filename,
- (*logs)[1].log_filename);
-#endif /* DEBUG_OUTPUT_TO_SCREEN */
-
-#ifdef CHECK_STAT_ON_NEW_FILES
- uid = geteuid();
- gid = getegid();
-
-#ifdef DEBUG_OUTPUT_TO_SCREEN
- printf("about to stat file %s\n", (*logs)[1].log_filename);
-#endif
- firstattempt = stat((*logs)[1].log_filename, &statbuf);
-
- if (firstattempt == -1)
- {
-#ifdef DEBUG_OUTPUT_TO_SCREEN
- printf("about to call Log with %d, %d, %s, %s\n",
- log_note, logtype_logger,
- "can't stat Logfile",
- (*logs)[1].log_filename
- );
-#endif
-
- /* syslog(LOG_INFO, "stat failed"); */
- LOG(log_warning, logtype_logger, "stat fails on file %s",
- (*logs)[1].log_filename);
-
- if (strlen(global_log_data.log_file_directory)>0)
- {
- retval = stat(global_log_data.log_file_directory, &statbuf);
- if (retval == -1)
- {
-#ifdef DEBUG_OUTPUT_TO_SCREEN
- printf("can't stat dir either so I'm giving up\n");
-#endif
- LOG(log_severe, logtype_logger, "can't stat directory %s either",
- global_log_data.log_file_directory);
- return false;
- }