summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_main.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index bf60f9c11..5158717b5 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -337,7 +337,7 @@ int main(int argc, char **argv)
frr_preinit(&bgpd_di, argc, argv);
frr_opt_add(
"p:l:rSne:", longopts,
- " -p, --bgp_port Set bgp protocol's port number\n"
+ " -p, --bgp_port Set BGP listen port number (0 means do not listen).\n"
" -l, --listenon Listen on specified address (implies -n)\n"
" -r, --retain When program terminates, retain added route by bgpd.\n"
" -n, --no_kernel Do not install route to kernel.\n"
@@ -356,7 +356,7 @@ int main(int argc, char **argv)
break;
case 'p':
tmp_port = atoi(optarg);
- if (tmp_port <= 0 || tmp_port > 0xffff)
+ if (tmp_port < 0 || tmp_port > 0xffff)
bgp_port = BGP_PORT_DEFAULT;
else
bgp_port = tmp_port;
@@ -395,6 +395,8 @@ int main(int argc, char **argv)
/* BGP master init. */
bgp_master_init(frr_init());
bm->port = bgp_port;
+ if (bgp_port == 0)
+ bgp_option_set(BGP_OPT_NO_LISTEN);
bm->address = bgp_address;
if (no_fib_flag)
bgp_option_set(BGP_OPT_NO_FIB);