This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new c825404a2b1 net/icmp: Return -ENOPROTOOPT for SOL_SOCKET to avoid 
misleading logs
c825404a2b1 is described below

commit c825404a2b163afb4b1da3af683d7c3f2d73541f
Author: wangchen <[email protected]>
AuthorDate: Wed Dec 24 20:46:22 2025 +0800

    net/icmp: Return -ENOPROTOOPT for SOL_SOCKET to avoid misleading logs
    
    When SOL_SOCKET options (e.g., SO_BINDTODEVICE via ping -I) hit ICMP 
sockets, icmp_{get,set}sockopt logged “Unrecognized ICMP option: 17” before 
fallback. Handle SOL_SOCKET explicitly by returning -ENOPROTOOPT so psock_* 
routes to the socket-level handler. Removes noisy logs without changing 
behavior (invalid devices still return -ENODEV).
    
    Signed-off-by: wangchen <[email protected]>
---
 net/icmp/icmp_sockif.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/net/icmp/icmp_sockif.c b/net/icmp/icmp_sockif.c
index a35611b5113..5c3cdcb7b9c 100644
--- a/net/icmp/icmp_sockif.c
+++ b/net/icmp/icmp_sockif.c
@@ -383,6 +383,15 @@ static int icmp_getsockopt(FAR struct socket *psock, int 
level, int option,
 {
   switch (level)
   {
+    case SOL_SOCKET:
+
+      /* Socket-level options are handled by psock_getsockopt()/inet layer.
+       * Return -ENOPROTOOPT so upper layer will fallback to socket-level
+       * handler without emitting misleading ICMP error logs.
+       */
+
+      return -ENOPROTOOPT;
+
     case SOL_IP:
       return ipv4_getsockopt(psock, option, value, value_len);
 
@@ -486,6 +495,15 @@ static int icmp_setsockopt(FAR struct socket *psock, int 
level, int option,
 {
   switch (level)
   {
+    case SOL_SOCKET:
+
+      /* Socket-level options are handled by psock_setsockopt()/inet layer.
+       * Return -ENOPROTOOPT so upper layer will fallback to socket-level
+       * handler without emitting misleading ICMP error logs.
+       */
+
+      return -ENOPROTOOPT;
+
     case SOL_IP:
       return ipv4_setsockopt(psock, option, value, value_len);
 

Reply via email to