create mandatory directories
This commit is contained in:
parent
fbd899145f
commit
ad9c4d7021
|
@ -14,8 +14,10 @@ use strict;
|
||||||
use IO::File;
|
use IO::File;
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
|
|
||||||
my $CFILE = $ENV{'HOME'} . '/.bip/bip.conf.autogen';
|
my $bipdir = $ENV{'HOME'} . '/.bip';
|
||||||
my $sfile = $ENV{'HOME'} . '/.bip/bipgenconfig.store';
|
my $CFILE = $bipdir . '/bip.conf.autogen';
|
||||||
|
my $sfile = $bipdir . '/bipgenconfig.store';
|
||||||
|
my $certout = $bipdir . '/bip.pem.autogen';
|
||||||
my $SERIALIZE_DBG = 1;
|
my $SERIALIZE_DBG = 1;
|
||||||
my %cf;
|
my %cf;
|
||||||
my $DEBUG = 0;
|
my $DEBUG = 0;
|
||||||
|
@ -26,7 +28,6 @@ my $mode = 'normal';
|
||||||
my $maxlevel = 5;
|
my $maxlevel = 5;
|
||||||
my $bipmkpw;
|
my $bipmkpw;
|
||||||
my $tmpcrt = "/tmp/bip-cert.cnf";
|
my $tmpcrt = "/tmp/bip-cert.cnf";
|
||||||
my $certout = $ENV{'HOME'} . '/.bip/bip.pem.autogen';
|
|
||||||
my %optdesc = (
|
my %optdesc = (
|
||||||
'global' => {
|
'global' => {
|
||||||
'ip' => { 'type' => 's', 'adv' => 1, 'default' => '0.0.0.0',
|
'ip' => { 'type' => 's', 'adv' => 1, 'default' => '0.0.0.0',
|
||||||
|
@ -39,7 +40,7 @@ my %optdesc = (
|
||||||
'optional' => 1,
|
'optional' => 1,
|
||||||
'desc' => 'Do you want to enable client side SSL ?' },
|
'desc' => 'Do you want to enable client side SSL ?' },
|
||||||
'pid_file' => { 'type' => 's', 'adv' => 1, 'optional' => 1,
|
'pid_file' => { 'type' => 's', 'adv' => 1, 'optional' => 1,
|
||||||
'default' => $ENV{'HOME'} . '/.bip/bip.pid',
|
'default' => $bipdir . '/bip.pid',
|
||||||
'desc' => 'Where do you want the pidfile to be stored ?' },
|
'desc' => 'Where do you want the pidfile to be stored ?' },
|
||||||
'log' => { 'type' => 'b', 'adv' => 0, 'default' => 'true',
|
'log' => { 'type' => 'b', 'adv' => 0, 'default' => 'true',
|
||||||
'optional' => 1,
|
'optional' => 1,
|
||||||
|
@ -54,7 +55,7 @@ my %optdesc = (
|
||||||
'desc' => 'Define bip\'s system logs verbosity level {less 0 - 7 tremendous}:' },
|
'desc' => 'Define bip\'s system logs verbosity level {less 0 - 7 tremendous}:' },
|
||||||
'log_root' => { 'type' => 's', 'adv' => 0,
|
'log_root' => { 'type' => 's', 'adv' => 0,
|
||||||
'optional' => 1,
|
'optional' => 1,
|
||||||
'default' => $ENV{'HOME'} . '/.bip/logs',
|
'default' => $bipdir . '/logs',
|
||||||
'depends' => 'log', 'depval' => 'true',
|
'depends' => 'log', 'depval' => 'true',
|
||||||
'desc' => 'In which directory do you want logs to be stored ?' },
|
'desc' => 'In which directory do you want logs to be stored ?' },
|
||||||
'log_format' => { 'type' => 's', 'adv' => 1, 'default' => '%n/%Y-%m/%c.%d.log',
|
'log_format' => { 'type' => 's', 'adv' => 1, 'default' => '%n/%Y-%m/%c.%d.log',
|
||||||
|
@ -1271,6 +1272,14 @@ sub invMode {
|
||||||
return ($mode eq 'advanced' ? 'normal' : 'advanced');
|
return ($mode eq 'advanced' ? 'normal' : 'advanced');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! -e $bipdir) {
|
||||||
|
mkdir($bipdir) || fatal("Unable to create bip's dir `$bipdir'");
|
||||||
|
} elsif (! -d $bipdir) {
|
||||||
|
fatal("Bip's dir `$bipdir' already exists and is not a directory");
|
||||||
|
} elsif (! -w $bipdir) {
|
||||||
|
fatal("Bip's dir `$bipdir' already exists and is not writable");
|
||||||
|
}
|
||||||
|
|
||||||
main_menu();
|
main_menu();
|
||||||
#sets config backlog
|
#sets config backlog
|
||||||
#different user/nick/real ?
|
#different user/nick/real ?
|
||||||
|
|
|
@ -985,6 +985,7 @@ int main(int argc, char **argv)
|
||||||
exit(28);
|
exit(28);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_dir(conf_log_root, 1);
|
||||||
fd = do_pid_stuff();
|
fd = do_pid_stuff();
|
||||||
pid_t pid = 0;
|
pid_t pid = 0;
|
||||||
if (conf_daemonize)
|
if (conf_daemonize)
|
||||||
|
|
11
src/log.c
11
src/log.c
|
@ -38,7 +38,7 @@ static char *_log_wrap(char *dest, char *line);
|
||||||
|
|
||||||
/* TODO: change fatal("out of memory") to cleanup & return NULL */
|
/* TODO: change fatal("out of memory") to cleanup & return NULL */
|
||||||
|
|
||||||
int check_dir(char *filename)
|
int check_dir(char *filename, int is_fatal)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
|
@ -47,15 +47,22 @@ int check_dir(char *filename)
|
||||||
if (err && errno == ENOENT) {
|
if (err && errno == ENOENT) {
|
||||||
err = mkdir(filename, 0750);
|
err = mkdir(filename, 0750);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
if (is_fatal)
|
||||||
|
fatal("mkdir(%s) %s", filename,
|
||||||
|
strerror(errno));
|
||||||
mylog(LOG_ERROR, "mkdir(%s) %s", filename,
|
mylog(LOG_ERROR, "mkdir(%s) %s", filename,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
} else if (err) {
|
} else if (err) {
|
||||||
|
if (is_fatal)
|
||||||
|
fatal("stat(%s) %s", filename, strerror(errno));
|
||||||
mylog(LOG_ERROR, "stat(%s) %s", filename,
|
mylog(LOG_ERROR, "stat(%s) %s", filename,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
} else if (!(statbuf.st_mode & S_IFDIR)) {
|
} else if (!(statbuf.st_mode & S_IFDIR)) {
|
||||||
|
if (is_fatal)
|
||||||
|
fatal("%s is not a directory", filename);
|
||||||
mylog(LOG_ERROR, "%s is not a directory", filename);
|
mylog(LOG_ERROR, "%s is not a directory", filename);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -88,7 +95,7 @@ int check_dir_r(char *dirname)
|
||||||
count += pos;
|
count += pos;
|
||||||
*(dir + count) = '\0';
|
*(dir + count) = '\0';
|
||||||
mylog(LOG_DEBUGVERB,"check_dir_r: %s", dir);
|
mylog(LOG_DEBUGVERB,"check_dir_r: %s", dir);
|
||||||
if (check_dir(dir)) {
|
if (check_dir(dir, 0)) {
|
||||||
free(dir);
|
free(dir);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,4 +93,5 @@ int log_has_backlog(log_t *logdata, char *destination);
|
||||||
void log_flush_all(void);
|
void log_flush_all(void);
|
||||||
void log_client_none_connected(log_t *logdata);
|
void log_client_none_connected(log_t *logdata);
|
||||||
void log_reset(logfilegroup_t *);
|
void log_reset(logfilegroup_t *);
|
||||||
|
int check_dir(char *filename, int is_fatal);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue