--- suX/src/sux.c 2011/05/20 16:26:53 1.1.1.1.2.2 +++ suX/src/sux.c 2011/05/20 16:38:53 1.1.1.1.2.3 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ - * $Id: sux.c,v 1.1.1.1.2.2 2011/05/20 16:26:53 misho Exp $ + * $Id: sux.c,v 1.1.1.1.2.3 2011/05/20 16:38:53 misho Exp $ * *************************************************************************/ #include "global.h" @@ -23,6 +23,7 @@ Log(int lvl, const char *fmt, ...) if (lvl <= Verbose) { va_start(lst, fmt); vfprintf(lf, fmt, lst); + fprintf(lf, "\n"); vsyslog(LOG_WARNING, fmt, lst); va_end(lst); } @@ -35,6 +36,7 @@ Err(const char *fmt, ...) va_start(lst, fmt); vfprintf(lf, fmt, lst); + fprintf(lf, "\n"); vsyslog(LOG_ERR, fmt, lst); va_end(lst); } @@ -47,7 +49,9 @@ initProg() proc.proc_prio = getpriority(PRIO_PROCESS, 0); getcwd(proc.proc_dir, sizeof proc.proc_dir); - lf = stdout; + lf = fopen(DEFAULT_LOG, "a"); + if (!lf) + lf = stdout; openlog(PACKAGE_NAME, LOG_CONS | LOG_PID | LOG_NDELAY | LOG_PERROR, LOG_USER); } @@ -257,28 +261,25 @@ Run(char **argv) int main(int argc, char **argv) { - char ch, *str, szCfg[MAXPATHLEN], szLog[MAXPATHLEN], flg = 0; + char ch, *str, szCfg[MAXPATHLEN], flg = 0; struct passwd *pass; struct group *grp; FILE *f; initProg(); strlcpy(szCfg, DEFAULT_CONFIG, sizeof szCfg); - strlcpy(szLog, DEFAULT_LOG, sizeof szLog); while ((ch = getopt(argc, argv, "hvc:u:g:p:d:l:")) != -1) switch (ch) { case 'l': - strlcpy(szLog, optarg, sizeof szLog); - f = fopen(szLog, "a+"); + f = fopen(optarg, "a"); if (!f) { Err("Error:: logfile #%d - %s", errno, strerror(errno)); return 1; } else - if (flg & 16 && fileno(lf) > 2) + if (fileno(lf) > 2) fclose(lf); lf = f; - flg |= 16; break; case 'd': strlcpy(proc.proc_dir, optarg, sizeof proc.proc_dir); @@ -317,7 +318,7 @@ main(int argc, char **argv) case 'h': default: Usage(); - if (flg & 16) + if (fileno(lf) > 2) fclose(lf); return 1; } @@ -326,7 +327,7 @@ main(int argc, char **argv) if (!argc) { if (!(str = getenv("PATH_TRANSLATED"))) { Usage(); - if (flg & 16) + if (fileno(lf) > 2) fclose(lf); return 1; } else @@ -336,13 +337,13 @@ main(int argc, char **argv) Log(2, "Try to load config %s", szCfg); if (LoadConfig(szCfg, &cfg)) { Err("Error:: can`t load config #%d - %s\n", cfg_GetErrno(), cfg_GetError()); - if (flg & 16) + if (fileno(lf) > 2) fclose(lf); return 2; } else if (LoadCfgData(flg) == -1) { UnloadConfig(&cfg); - if (flg & 16) + if (fileno(lf) > 2) fclose(lf); closelog(); return 3; @@ -350,13 +351,13 @@ main(int argc, char **argv) UnloadConfig(&cfg); if (Run(argv) == -1) { - if (flg & 16) + if (fileno(lf) > 2) fclose(lf); closelog(); return 4; } - if (flg & 16) + if (fileno(lf) > 2) fclose(lf); closelog(); return 0;