]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
SNMP: AgentX master agent can have IPv6 addr
authorVojtech Vilimek <vojtech.vilimek@nic.cz>
Fri, 26 Jul 2024 10:28:33 +0000 (12:28 +0200)
committerVojtech Vilimek <vojtech.vilimek@nic.cz>
Fri, 26 Jul 2024 10:28:33 +0000 (12:28 +0200)
proto/snmp/config.Y
proto/snmp/snmp.c
proto/snmp/snmp.h

index e7fe5364a844bbc34b3a7d73a4205dfe99523987..3610bdce8fd68d62e2401302c7fab26a928147a4 100644 (file)
@@ -45,7 +45,7 @@ snmp_proto_item:
     if (SNMP_CFG->trans_type != SNMP_TRANS_DEFAULT)
       cf_error("Duplicit option remote address");
   }
- | REMOTE ADDRESS IP4 {
+ | REMOTE ADDRESS ipa {
     if (SNMP_CFG->trans_type != SNMP_TRANS_DEFAULT)
       cf_error("Duplicit option remote address");
 
@@ -105,7 +105,7 @@ snmp_proto_start: proto_start SNMP
   SNMP_CFG->bonds = 0;
 
   SNMP_CFG->local_ip = IP4_NONE;
-  SNMP_CFG->remote_ip = IP4_NONE;
+  SNMP_CFG->remote_ip = IPA_NONE;
   SNMP_CFG->remote_path = agentx_master_addr;
   SNMP_CFG->trans_type = SNMP_TRANS_DEFAULT;
   SNMP_CFG->bgp_local_id = IP4_NONE;
index 900c62d1b53862fc8057f2a9a7f49780080c8d92..889e486dd289fd4f1e8709efd3e8ed5903c6f6b4 100644 (file)
@@ -235,8 +235,8 @@ snmp_set_state(struct snmp_proto *p, enum snmp_proto_state state)
        * lock->iface
        * lock->vrf
        */
-      lock->addr = ipa_from_ip4(cf->remote_ip);
-      lock->port = cf->remote_port;
+      lock->addr = p->remote_ip;
+      lock->port = p->remote_port;
       lock->type = OBJLOCK_TCP;
       lock->hook = snmp_start_locked;
       lock->data = p;
@@ -256,7 +256,7 @@ snmp_set_state(struct snmp_proto *p, enum snmp_proto_state state)
     {
       s->type = SK_TCP_ACTIVE;
       s->saddr = ipa_from_ip4(p->local_ip);
-      s->daddr = ipa_from_ip4(p->remote_ip);
+      s->daddr = p->remote_ip;
       s->dport = p->remote_port;
       s->rbsize = SNMP_RX_BUFFER_SIZE;
       s->tbsize = SNMP_TX_BUFFER_SIZE;
index f1fc5e21a4f158e62cf0c5dee5ca94d7451bd78e..23b74d3bc3a7a7280062965699d6fa8bae1a5dc8 100644 (file)
@@ -59,7 +59,7 @@ struct snmp_config {
   enum snmp_transport_type trans_type;
   ip4_addr local_ip;
   u16 local_port;
-  ip4_addr remote_ip;            /* master agentx IP address for TCP transport */
+  ip_addr remote_ip;             /* master agentx IP address for TCP transport */
   u16 remote_port;
   const char *remote_path;       /* master agentx UNIX socket name */
 
@@ -104,7 +104,7 @@ struct snmp_proto {
   enum snmp_proto_state state;
 
   ip4_addr local_ip;
-  ip4_addr remote_ip;
+  ip_addr remote_ip;
   u16 local_port;
   u16 remote_port;