Date: Sat, 6 Oct 2018 07:25:21 +0000 (UTC) From: Olivier Cochard <olivier@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r481322 - in head/net/frr5: . files Message-ID: <201810060725.w967PLxx033367@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: olivier Date: Sat Oct 6 07:25:21 2018 New Revision: 481322 URL: https://svnweb.freebsd.org/changeset/ports/481322 Log: Fix 2 bugs into the RC script (restart and quietstart) and add ISIS patch. PR: 231984 Submitted by: pautina@kharkiv.net Added: head/net/frr5/files/patch-isisd_isis__circuit.c (contents, props changed) Modified: head/net/frr5/Makefile head/net/frr5/files/frr.in Modified: head/net/frr5/Makefile ============================================================================== --- head/net/frr5/Makefile Sat Oct 6 06:12:47 2018 (r481321) +++ head/net/frr5/Makefile Sat Oct 6 07:25:21 2018 (r481322) @@ -2,7 +2,7 @@ PORTNAME= frr PORTVERSION= 5.0.1 -PORTREVISION= 2 +PORTREVISION= 3 DISTVERSIONPREFIX= frr- CATEGORIES= net ipv6 PKGNAMESUFFIX= 5 Modified: head/net/frr5/files/frr.in ============================================================================== --- head/net/frr5/files/frr.in Sat Oct 6 06:12:47 2018 (r481321) +++ head/net/frr5/files/frr.in Sat Oct 6 07:25:21 2018 (r481322) @@ -89,6 +89,7 @@ do_cmd() { local ret ret=0 + frr_cmd=$1 for daemon in ${frr_daemons}; do command=%%PREFIX%%/sbin/${daemon} required_files=%%ETCDIR%%/${daemon}.conf @@ -118,11 +119,11 @@ frr_cmd=$1 case "$1" in force*) - frr_cmd=${frr_cmd#force} - ;; + frr_cmd=${frr_cmd#force} + ;; fast*) - frr_cmd=${frr_cmd#fast} - ;; + frr_cmd=${frr_cmd#fast} + ;; esac shift @@ -131,24 +132,24 @@ if [ $# -ge 1 ]; then fi case "${frr_cmd}" in - start) - if [ -n "${frr_extralibs_path}" ]; then - /sbin/ldconfig -m ${frr_extralibs_path} - fi - # Why should I need to add this check ? - checkyesno frr_enable && do_cmd "start" - ;; + start|quietstart) + if [ -n "${frr_extralibs_path}" ]; then + /sbin/ldconfig -m ${frr_extralibs_path} + fi + # Why should I need to add this check ? + checkyesno frr_enable && do_cmd "start" + ;; stop) - frr_daemons=$(reverse_list ${frr_daemons}) - do_cmd "stop" - ;; + frr_daemons=$(reverse_list ${frr_daemons}) + do_cmd "stop" + ;; restart) - frr_daemons=$(reverse_list ${frr_daemons}) - do_cmd "stop" - frr_daemons=$(reverse_list ${frr_daemons}) - checkyesno frr_enable && do_cmd "start" - ;; + frr_daemons=$(reverse_list ${frr_daemons}) + do_cmd "stop" + frr_daemons=$(reverse_list ${frr_daemons}) + checkyesno frr_enable && do_cmd "start" + ;; *) - do_cmd "${frr_cmd}" - ;; + do_cmd "${frr_cmd}" + ;; esac Added: head/net/frr5/files/patch-isisd_isis__circuit.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/net/frr5/files/patch-isisd_isis__circuit.c Sat Oct 6 07:25:21 2018 (r481322) @@ -0,0 +1,51 @@ +From d4670f515b7f62bfd8f9bdd750540245aab542c0 Mon Sep 17 00:00:00 2001 +From: Christian Franke <chris@opensourcerouting.org> +Date: Tue, 17 Jul 2018 15:14:54 -0400 +Subject: [PATCH] isisd: don't crash when isis_sock_init fails + +When isis_sock_init fails in isis_circuit_up, isis_circuit_down would +be called to cancel timers which were scheduled. However +isis_circuit_down would immediately return, since the state had not been +changed to 'UP' yet. + +Fix this by having isis_circuit_down always cancel all the timers. + +Signed-off-by: Christian Franke <chris@opensourcerouting.org> +--- isisd/isis_circuit.c.orig 2018-07-05 07:40:17 UTC ++++ isisd/isis_circuit.c +@@ -638,7 +638,7 @@ int isis_circuit_up(struct isis_circuit *circuit) + thread_add_timer(master, isis_run_dr_l2, circuit, + 2 * circuit->hello_interval[1], + &circuit->u.bc.t_run_dr[1]); +- } else { ++ } else if (circuit->circ_type == CIRCUIT_T_P2P) { + /* initializing the hello send threads + * for a ptp IF + */ +@@ -682,9 +682,6 @@ int isis_circuit_up(struct isis_circuit *circuit) + + void isis_circuit_down(struct isis_circuit *circuit) + { +- if (circuit->state != C_STATE_UP) +- return; +- + /* Clear the flags for all the lsps of the circuit. */ + isis_circuit_update_all_srmflags(circuit, 0); + +@@ -756,10 +753,12 @@ void isis_circuit_down(struct isis_circuit *circuit) + } + + /* send one gratuitous hello to spead up convergence */ +- if (circuit->is_type & IS_LEVEL_1) +- send_hello(circuit, IS_LEVEL_1); +- if (circuit->is_type & IS_LEVEL_2) +- send_hello(circuit, IS_LEVEL_2); ++ if (circuit->state == C_STATE_UP) { ++ if (circuit->is_type & IS_LEVEL_1) ++ send_hello(circuit, IS_LEVEL_1); ++ if (circuit->is_type & IS_LEVEL_2) ++ send_hello(circuit, IS_LEVEL_2); ++ } + + circuit->upadjcount[0] = 0; + circuit->upadjcount[1] = 0;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810060725.w967PLxx033367>