diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c index c65d00e1c..063bc1032 100644 --- a/src/main.c +++ b/src/main.c @@ -124,10 +124,12 @@ void parseOptions(int argc, char ** argv, Options * options) { argcLeft--; } else if(strcmp(argv[i],"--create-db")==0) { + options->stdOutput = 1; options->createDB = 1; argcLeft--; } else if(strcmp(argv[i],"--update-db")==0) { + options->stdOutput = 1; options->updateDB = 1; argcLeft--; } @@ -289,11 +291,16 @@ void changeToUser(Options * options) { } void openLogFiles(Options * options, FILE ** out, FILE ** err) { + mode_t prev; + if(options->stdOutput) { flushWarningLog(); return; } + /* be sure to create log files w/ rw permissions*/ + prev = umask(0066); + if(NULL==(*out=fopen(options->logFile,"a"))) { ERROR("problem opening file \"%s\" for writing\n", options->logFile); @@ -305,6 +312,8 @@ void openLogFiles(Options * options, FILE ** out, FILE ** err) { options->errorFile); exit(EXIT_FAILURE); } + + umask(prev); } void openDB(Options * options, char * argv0) { @@ -477,4 +486,3 @@ int main(int argc, char * argv[]) { return EXIT_SUCCESS; } -/* vim:set shiftwidth=8 tabstop=8 expandtab: */ |