<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Joe,</p>
<p> Can you open a Pull Request at
<a class="moz-txt-link-freetext" href="https://github.com/FRRouting/frr/pulls">https://github.com/FRRouting/frr/pulls</a> for this ? If not, I will
take care of it.</p>
<p>Thanks,</p>
<p>Jafar<br>
</p>
<div class="moz-cite-prefix">On 2/28/21 1:57 AM, Joe Maimon wrote:<br>
</div>
<blockquote type="cite" cite="mid:603B4D04.3070505@jmaimon.com">This
is still broken, the patch is quite simple.
<br>
<br>
I do have an upgraded script which is pretty nice.
<br>
<br>
Joe Maimon wrote:
<br>
<blockquote type="cite">Fix is pretty straightforward.
<br>
<br>
--- a/nhrpd/nhrp_event.c
<br>
+++ b/nhrpd/nhrp_event.c
<br>
@@ -59,9 +59,9 @@
<br>
buf[len] = 0;
<br>
<br>
debugf(NHRP_DEBUG_EVENT, "evmgr: msg: %s", buf);
<br>
- if (sscanf(buf, "eventid=%" SCNu32,
&eventid) != 1)
<br>
+ if (sscanf(buf, "eventid=%" SCNu32,
&eventid) == 1)
<br>
continue;
<br>
- if (sscanf(buf, "result=%63s", result) != 1)
<br>
+ if (sscanf(buf, "result=%63s", result) == 1)
<br>
continue;
<br>
}
<br>
debugf(NHRP_DEBUG_EVENT, "evmgr: received: eventid=%d
result=%s",
<br>
<br>
Fledgling script actually works now, forgive email formatting
errors
<br>
<br>
---------cut here----
<br>
<br>
#!/bin/bash
<br>
<br>
PROGNAME=`basename $0`
<br>
VERSION="0.0.2"
<br>
<br>
usage()
<br>
{
<br>
echo "Usage: $PROGNAME -s nhrp-sock [-i interface-name]
[-u user] [-g group] "
<br>
echo ""
<br>
echo "-s nhrp-sock file"
<br>
echo "-i interface-name to execute on, may be repeated
multiple times"
<br>
echo "-u user to own the sock"
<br>
echo "-g group to own the sock"
<br>
<br>
exit 1
<br>
}
<br>
<br>
SOCK="/var/run/frr/nhrp.sock"
<br>
USER="frr"
<br>
GROUP="frr"
<br>
j=0
<br>
<br>
while getopts s:i:u:g: opt; do
<br>
case "$opt" in
<br>
s)
<br>
SOCK="$OPTARG"
<br>
;;
<br>
i)
<br>
INTARR[((j++))]="$OPTARG"
<br>
;;
<br>
u)
<br>
USER="$OPTARG"
<br>
;;
<br>
g)
<br>
GROUP="$OPTARG"
<br>
;;
<br>
esac;
<br>
done
<br>
<br>
coproc socat - UNIX-LISTEN:$SOCK,unlink-early,setuid-early=$USER
|| exit 1
<br>
chown $USER:$GROUP $SOCK
<br>
<br>
OLDIFS="$IFS"
<br>
<br>
while read -r S; do
<br>
if [[ "$S" == "" ]]; then
<br>
if [[ "$EVID" != "" ]]; then
<br>
echo -e
"eventid=$EVID\nresult=accept\n";
<br>
fi
<br>
<br>
for((i=0;i<${#INTARR[@]};i++)); do
<br>
if [[ "$EVINT" == "" ]]; then break; fi
<br>
if [[ "${INTARR[$i]}" != "$EVINT" ]];
then continue; fi
<br>
if [[ "$EVREM" == "" ]]; then break; fi
<br>
if [[ "$EVNBMA" == "" ]]; then break; fi
<br>
if [[ "$EVTYPE" != "dynamic" ]]; then
break; fi
<br>
<br>
ip neigh add $EVREM dev $EVINT lladdr
$EVNBMA nud noarp
<br>
if [[ "$?" != "0" ]]; then
<br>
ip neigh replace $EVREM dev
$EVINT lladdr $EVNBMA nud noarp
<br>
fi
<br>
break
<br>
done
<br>
<br>
unset EVID
<br>
unset EVINT
<br>
unset EVREM
<br>
unset EVNBMA
<br>
unset EVTYPE
<br>
continue;
<br>
fi
<br>
IFS="${IFS}="
<br>
SA=($S)
<br>
IFS="$OLDIFS"
<br>
case "${SA[0]}" in
<br>
eventid)
<br>
EVID="${SA[1]}"
<br>
;;
<br>
interface)
<br>
EVINT="${SA[1]}"
<br>
;;
<br>
type)
<br>
EVTYPE="${SA[1]}"
<br>
;;
<br>
remote_addr)
<br>
EVREM="${SA[1]}"
<br>
;;
<br>
remote_nbma)
<br>
EVNBMA="${SA[1]}"
<br>
;;
<br>
esac
<br>
done <&"${COPROC[0]}" >&"${COPROC[1]}"
<br>
<br>
kill "$COPROC_PID"
<br>
<br>
<br>
<br>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
frog mailing list
<a class="moz-txt-link-abbreviated" href="mailto:frog@lists.frrouting.org">frog@lists.frrouting.org</a>
<a class="moz-txt-link-freetext" href="https://lists.frrouting.org/listinfo/frog">https://lists.frrouting.org/listinfo/frog</a>
</pre>
</blockquote>
</body>
</html>