mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Main: Add local option
Add option that changes default paths for config file and control socket to the current working directory.
This commit is contained in:
@@ -617,7 +617,7 @@ signal_init(void)
|
||||
* Parsing of command-line arguments
|
||||
*/
|
||||
|
||||
static char *opt_list = "c:dD:ps:P:u:g:fR";
|
||||
static char *opt_list = "c:dD:ps:P:u:g:flR";
|
||||
static int parse_and_exit;
|
||||
char *bird_name;
|
||||
static char *use_user;
|
||||
@@ -627,7 +627,7 @@ static int run_in_foreground = 0;
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s [-c <config-file>] [-d] [-D <debug-file>] [-p] [-s <control-socket>] [-P <pid-file>] [-u <user>] [-g <group>] [-f] [-R]\n", bird_name);
|
||||
fprintf(stderr, "Usage: %s [-c <config-file>] [-d] [-D <debug-file>] [-p] [-s <control-socket>] [-P <pid-file>] [-u <user>] [-g <group>] [-f] [-l] [-R]\n", bird_name);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -677,7 +677,7 @@ get_gid(const char *s)
|
||||
|
||||
if (!s)
|
||||
return 0;
|
||||
|
||||
|
||||
errno = 0;
|
||||
rv = strtol(s, &endptr, 10);
|
||||
|
||||
@@ -694,6 +694,8 @@ get_gid(const char *s)
|
||||
static void
|
||||
parse_args(int argc, char **argv)
|
||||
{
|
||||
int config_changed = 0;
|
||||
int socket_changed = 0;
|
||||
int c;
|
||||
|
||||
bird_name = get_bird_name(argv[0], "bird");
|
||||
@@ -712,6 +714,7 @@ parse_args(int argc, char **argv)
|
||||
{
|
||||
case 'c':
|
||||
config_name = optarg;
|
||||
config_changed = 1;
|
||||
break;
|
||||
case 'd':
|
||||
debug_flag |= 1;
|
||||
@@ -725,6 +728,7 @@ parse_args(int argc, char **argv)
|
||||
break;
|
||||
case 's':
|
||||
path_control_socket = optarg;
|
||||
socket_changed = 1;
|
||||
break;
|
||||
case 'P':
|
||||
pid_file = optarg;
|
||||
@@ -738,6 +742,12 @@ parse_args(int argc, char **argv)
|
||||
case 'f':
|
||||
run_in_foreground = 1;
|
||||
break;
|
||||
case 'l':
|
||||
if (!config_changed)
|
||||
config_name = xbasename(config_name);
|
||||
if (!socket_changed)
|
||||
path_control_socket = xbasename(path_control_socket);
|
||||
break;
|
||||
case 'R':
|
||||
graceful_restart_recovery();
|
||||
break;
|
||||
|
Reference in New Issue
Block a user