<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>