summaryrefslogtreecommitdiff
path: root/client/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/client.c')
-rw-r--r--client/client.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/client/client.c b/client/client.c
index 8711cf0a..d8f0060c 100644
--- a/client/client.c
+++ b/client/client.c
@@ -29,6 +29,7 @@ static char *opt_list = "s:vr";
static int verbose;
static char *init_cmd;
static int once;
+static int restricted;
static char *server_path = PATH_CONTROL_SOCKET;
static int server_fd;
@@ -70,7 +71,7 @@ parse_args(int argc, char **argv)
verbose++;
break;
case 'r':
- init_cmd = "restrict";
+ restricted = 1;
break;
default:
usage();
@@ -83,9 +84,6 @@ parse_args(int argc, char **argv)
int i;
int len = 0;
- if (init_cmd)
- usage();
-
for (i = optind; i < argc; i++)
len += strlen(argv[i]) + 1;
@@ -303,6 +301,13 @@ update_state(void)
if (nstate == cstate)
return;
+ if (restricted)
+ {
+ submit_server_command("restrict");
+ restricted = 0;
+ return;
+ }
+
if (init_cmd)
{
/* First transition - client received hello from BIRD