The branch main has been updated by pouria:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=9f80c8b90bdaa8ffac887a8c478a16c84d74a87b

commit 9f80c8b90bdaa8ffac887a8c478a16c84d74a87b
Author:     Pouria Mousavizadeh Tehrani <[email protected]>
AuthorDate: 2026-06-10 11:26:07 +0000
Commit:     Pouria Mousavizadeh Tehrani <[email protected]>
CommitDate: 2026-06-12 16:18:28 +0000

    rc.d/routing: Silence errors for loopback routes
    
    _loopback entry in `static_routes` ensures a loopback route
    exists in all routing tables.
    However, loopback routes may already be added by the kernel.
    Therefore, re-adding them triggers an `EEXIST` error on every boot.
    This change suppresses those harmless errors.
    
    PR:             259553
    MFC after:      1 week
    Reviewed by:    glebius, jlduran, markj
    Differential Revision:  https://reviews.freebsd.org/D57470
---
 libexec/rc/rc.d/routing | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/libexec/rc/rc.d/routing b/libexec/rc/rc.d/routing
index dd75604125a3..93e41c41a52b 100755
--- a/libexec/rc/rc.d/routing
+++ b/libexec/rc/rc.d/routing
@@ -190,7 +190,13 @@ static_inet()
                        if [ $_skip = 0 ]; then
                                route_args=`get_if_var ${i%:*} route_IF`
                                if [ -n "$route_args" ]; then
-                                       ${ROUTE_CMD} ${_action} ${route_args}
+                                       # Loopback routes may already be added 
by the kernel; ignore EEXIST.
+                                       if [ "${i%:*}" = "_loopback" ]; then
+                                               ${ROUTE_CMD} ${_action} 
${route_args} 2>&1 >/dev/null |
+                                                   sed -e '/route: message 
indicates error: File exists/d' >&2
+                                       else
+                                               ${ROUTE_CMD} ${_action} 
${route_args}
+                                       fi
                                else
                                        warn "route_${i%:*} not found."
                                fi
@@ -267,8 +273,15 @@ static_inet6()
                        if [ $_skip = 0 ]; then
                                ipv6_route_args=`get_if_var ${i%:*} 
ipv6_route_IF`
                                if [ -n "$ipv6_route_args" ]; then
-                                       ${ROUTE_CMD} ${_action} \
-                                               -inet6 ${ipv6_route_args}
+                                       # Loopback routes may already be added 
by the kernel; ignore EEXIST.
+                                       if [ "${i%:*}" = "_loopback" ]; then
+                                               ${ROUTE_CMD} ${_action} -inet6 \
+                                                   ${ipv6_route_args} 2>&1 
>/dev/null |
+                                                   sed -e '/route: message 
indicates error: File exists/d' >&2
+                                       else
+                                               ${ROUTE_CMD} ${_action} \
+                                                   -inet6 ${ipv6_route_args}
+                                       fi
                                else
                                        warn "route_${i%:*} not found"
                                fi

Reply via email to