]> git.proxmox.com Git - mirror_frr.git/commitdiff
ospfd: Fix bad index for ospf message-digest-key
authorQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 15 Nov 2016 01:45:58 +0000 (01:45 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 15 Nov 2016 01:45:58 +0000 (01:45 +0000)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
lib/memtypes.h [new file with mode: 0644]
ospfd/ospf_vty.c

diff --git a/lib/memtypes.h b/lib/memtypes.h
new file mode 100644 (file)
index 0000000..c9300bd
--- /dev/null
@@ -0,0 +1,249 @@
+/* Auto-generated from memtypes.c by gawk. */
+/* Do not edit! */
+
+#ifndef _QUAGGA_MEMTYPES_H
+#define _QUAGGA_MEMTYPES_H
+
+enum
+{
+  MTYPE_TMP = 1,
+  MTYPE_STRVEC,
+  MTYPE_VECTOR,
+  MTYPE_VECTOR_INDEX,
+  MTYPE_LINK_LIST,
+  MTYPE_LINK_NODE,
+  MTYPE_THREAD,
+  MTYPE_THREAD_MASTER,
+  MTYPE_THREAD_STATS,
+  MTYPE_VTY,
+  MTYPE_VTY_OUT_BUF,
+  MTYPE_VTY_HIST,
+  MTYPE_IF,
+  MTYPE_CONNECTED,
+  MTYPE_NBR_CONNECTED,
+  MTYPE_CONNECTED_LABEL,
+  MTYPE_BUFFER,
+  MTYPE_BUFFER_DATA,
+  MTYPE_STREAM,
+  MTYPE_STREAM_DATA,
+  MTYPE_STREAM_FIFO,
+  MTYPE_PREFIX,
+  MTYPE_PREFIX_IPV4,
+  MTYPE_PREFIX_IPV6,
+  MTYPE_HASH,
+  MTYPE_HASH_BACKET,
+  MTYPE_HASH_INDEX,
+  MTYPE_ROUTE_TABLE,
+  MTYPE_ROUTE_NODE,
+  MTYPE_DISTRIBUTE,
+  MTYPE_DISTRIBUTE_IFNAME,
+  MTYPE_DISTRIBUTE_NAME,
+  MTYPE_ACCESS_LIST,
+  MTYPE_ACCESS_LIST_STR,
+  MTYPE_ACCESS_FILTER,
+  MTYPE_PREFIX_LIST,
+  MTYPE_PREFIX_LIST_ENTRY,
+  MTYPE_PREFIX_LIST_STR,
+  MTYPE_PREFIX_LIST_TRIE,
+  MTYPE_ROUTE_MAP,
+  MTYPE_ROUTE_MAP_NAME,
+  MTYPE_ROUTE_MAP_INDEX,
+  MTYPE_ROUTE_MAP_RULE,
+  MTYPE_ROUTE_MAP_RULE_STR,
+  MTYPE_ROUTE_MAP_COMPILED,
+  MTYPE_ROUTE_MAP_DEP,
+  MTYPE_CMD_TOKENS,
+  MTYPE_KEY,
+  MTYPE_KEYCHAIN,
+  MTYPE_IF_RMAP,
+  MTYPE_IF_RMAP_NAME,
+  MTYPE_SOCKUNION,
+  MTYPE_PRIVS,
+  MTYPE_ZLOG,
+  MTYPE_ZCLIENT,
+  MTYPE_WORK_QUEUE,
+  MTYPE_WORK_QUEUE_ITEM,
+  MTYPE_WORK_QUEUE_NAME,
+  MTYPE_PQUEUE,
+  MTYPE_PQUEUE_DATA,
+  MTYPE_HOST,
+  MTYPE_BFD_INFO,
+  MTYPE_VRF,
+  MTYPE_VRF_NAME,
+  MTYPE_VRF_BITMAP,
+  MTYPE_RTADV_PREFIX,
+  MTYPE_ZEBRA_NS,
+  MTYPE_ZEBRA_VRF,
+  MTYPE_NEXTHOP,
+  MTYPE_RIB,
+  MTYPE_RIB_QUEUE,
+  MTYPE_STATIC_ROUTE,
+  MTYPE_RIB_DEST,
+  MTYPE_RIB_TABLE_INFO,
+  MTYPE_RNH,
+  MTYPE_NETLINK_NAME,
+  MTYPE_BGP,
+  MTYPE_BGP_LISTENER,
+  MTYPE_BGP_PEER,
+  MTYPE_BGP_PEER_HOST,
+  MTYPE_BGP_PEER_IFNAME,
+  MTYPE_BGP_PEER_GROUP,
+  MTYPE_BGP_PEER_GROUP_HOST,
+  MTYPE_PEER_DESC,
+  MTYPE_PEER_PASSWORD,
+  MTYPE_BGP_PEER_AF,
+  MTYPE_BGP_UPDGRP,
+  MTYPE_BGP_UPD_SUBGRP,
+  MTYPE_BGP_PACKET,
+  MTYPE_ATTR,
+  MTYPE_ATTR_EXTRA,
+  MTYPE_AS_PATH,
+  MTYPE_AS_SEG,
+  MTYPE_AS_SEG_DATA,
+  MTYPE_AS_STR,
+  MTYPE_BGP_TABLE,
+  MTYPE_BGP_NODE,
+  MTYPE_BGP_ROUTE,
+  MTYPE_BGP_ROUTE_EXTRA,
+  MTYPE_BGP_CONN,
+  MTYPE_BGP_STATIC,
+  MTYPE_BGP_ADVERTISE_ATTR,
+  MTYPE_BGP_ADVERTISE,
+  MTYPE_BGP_SYNCHRONISE,
+  MTYPE_BGP_ADJ_IN,
+  MTYPE_BGP_ADJ_OUT,
+  MTYPE_BGP_MPATH_INFO,
+  MTYPE_AS_LIST,
+  MTYPE_AS_FILTER,
+  MTYPE_AS_FILTER_STR,
+  MTYPE_COMMUNITY,
+  MTYPE_COMMUNITY_VAL,
+  MTYPE_COMMUNITY_STR,
+  MTYPE_ECOMMUNITY,
+  MTYPE_ECOMMUNITY_VAL,
+  MTYPE_ECOMMUNITY_STR,
+  MTYPE_COMMUNITY_LIST,
+  MTYPE_COMMUNITY_LIST_NAME,
+  MTYPE_COMMUNITY_LIST_ENTRY,
+  MTYPE_COMMUNITY_LIST_CONFIG,
+  MTYPE_COMMUNITY_LIST_HANDLER,
+  MTYPE_CLUSTER,
+  MTYPE_CLUSTER_VAL,
+  MTYPE_BGP_PROCESS_QUEUE,
+  MTYPE_BGP_CLEAR_NODE_QUEUE,
+  MTYPE_TRANSIT,
+  MTYPE_TRANSIT_VAL,
+  MTYPE_BGP_DEBUG_FILTER,
+  MTYPE_BGP_DEBUG_STR,
+  MTYPE_BGP_DISTANCE,
+  MTYPE_BGP_NEXTHOP_CACHE,
+  MTYPE_BGP_CONFED_LIST,
+  MTYPE_PEER_UPDATE_SOURCE,
+  MTYPE_PEER_CONF_IF,
+  MTYPE_BGP_DAMP_INFO,
+  MTYPE_BGP_DAMP_ARRAY,
+  MTYPE_BGP_REGEXP,
+  MTYPE_BGP_AGGREGATE,
+  MTYPE_BGP_ADDR,
+  MTYPE_BGP_REDIST,
+  MTYPE_BGP_FILTER_NAME,
+  MTYPE_BGP_DUMP_STR,
+  MTYPE_ENCAP_TLV,
+  MTYPE_RIP,
+  MTYPE_RIP_INFO,
+  MTYPE_RIP_INTERFACE,
+  MTYPE_RIP_PEER,
+  MTYPE_RIP_OFFSET_LIST,
+  MTYPE_RIP_DISTANCE,
+  MTYPE_RIPNG,
+  MTYPE_RIPNG_ROUTE,
+  MTYPE_RIPNG_AGGREGATE,
+  MTYPE_RIPNG_PEER,
+  MTYPE_RIPNG_OFFSET_LIST,
+  MTYPE_RIPNG_RTE_DATA,
+  MTYPE_OSPF_TOP,
+  MTYPE_OSPF_AREA,
+  MTYPE_OSPF_AREA_RANGE,
+  MTYPE_OSPF_NETWORK,
+  MTYPE_OSPF_NEIGHBOR_STATIC,
+  MTYPE_OSPF_IF,
+  MTYPE_OSPF_NEIGHBOR,
+  MTYPE_OSPF_ROUTE,
+  MTYPE_OSPF_TMP,
+  MTYPE_OSPF_LSA,
+  MTYPE_OSPF_LSA_DATA,
+  MTYPE_OSPF_LSDB,
+  MTYPE_OSPF_PACKET,
+  MTYPE_OSPF_FIFO,
+  MTYPE_OSPF_VERTEX,
+  MTYPE_OSPF_VERTEX_PARENT,
+  MTYPE_OSPF_NEXTHOP,
+  MTYPE_OSPF_PATH,
+  MTYPE_OSPF_VL_DATA,
+  MTYPE_OSPF_CRYPT_KEY,
+  MTYPE_OSPF_EXTERNAL_INFO,
+  MTYPE_OSPF_DISTANCE,
+  MTYPE_OSPF_IF_INFO,
+  MTYPE_OSPF_IF_PARAMS,
+  MTYPE_OSPF_MESSAGE,
+  MTYPE_OSPF6_TOP,
+  MTYPE_OSPF6_AREA,
+  MTYPE_OSPF6_IF,
+  MTYPE_OSPF6_NEIGHBOR,
+  MTYPE_OSPF6_ROUTE,
+  MTYPE_OSPF6_PREFIX,
+  MTYPE_OSPF6_MESSAGE,
+  MTYPE_OSPF6_LSA,
+  MTYPE_OSPF6_LSA_SUMMARY,
+  MTYPE_OSPF6_LSDB,
+  MTYPE_OSPF6_VERTEX,
+  MTYPE_OSPF6_SPFTREE,
+  MTYPE_OSPF6_NEXTHOP,
+  MTYPE_OSPF6_EXTERNAL_INFO,
+  MTYPE_OSPF6_OTHER,
+  MTYPE_ISIS,
+  MTYPE_ISIS_TMP,
+  MTYPE_ISIS_CIRCUIT,
+  MTYPE_ISIS_LSP,
+  MTYPE_ISIS_ADJACENCY,
+  MTYPE_ISIS_AREA,
+  MTYPE_ISIS_AREA_ADDR,
+  MTYPE_ISIS_TLV,
+  MTYPE_ISIS_DYNHN,
+  MTYPE_ISIS_SPFTREE,
+  MTYPE_ISIS_VERTEX,
+  MTYPE_ISIS_ROUTE_INFO,
+  MTYPE_ISIS_NEXTHOP,
+  MTYPE_ISIS_NEXTHOP6,
+  MTYPE_ISIS_DICT,
+  MTYPE_ISIS_DICT_NODE,
+  MTYPE_PIM_CHANNEL_OIL,
+  MTYPE_PIM_INTERFACE,
+  MTYPE_PIM_IGMP_JOIN,
+  MTYPE_PIM_IGMP_SOCKET,
+  MTYPE_PIM_IGMP_GROUP,
+  MTYPE_PIM_IGMP_GROUP_SOURCE,
+  MTYPE_PIM_NEIGHBOR,
+  MTYPE_PIM_IFCHANNEL,
+  MTYPE_PIM_UPSTREAM,
+  MTYPE_PIM_SSMPINGD,
+  MTYPE_PIM_STATIC_ROUTE,
+  MTYPE_PIM_BR,
+  MTYPE_VTYSH_CONFIG,
+  MTYPE_VTYSH_CONFIG_LINE,
+  MTYPE_MAX,
+};
+
+extern struct memory_list memory_list_lib[];
+extern struct memory_list memory_list_zebra[];
+extern struct memory_list memory_list_bgp[];
+extern struct memory_list memory_list_rip[];
+extern struct memory_list memory_list_ripng[];
+extern struct memory_list memory_list_ospf[];
+extern struct memory_list memory_list_ospf6[];
+extern struct memory_list memory_list_isis[];
+extern struct memory_list memory_list_pim[];
+extern struct memory_list memory_list_vtysh[];
+
+#endif /* _QUAGGA_MEMTYPES_H */
+
index 48c0de5f69ce5558022a228b60811bc816e10864..88c61ab1758c5b68912f3b263a8893f97c50ecf2 100644 (file)
@@ -6180,11 +6180,9 @@ DEFUN (ip_ospf_message_digest_key,
        "Message digest authentication password (key)\n"
        "Key ID\n"
        "Use MD5 algorithm\n"
-       "The OSPF password (key)"
-       "Address of interface")
+       "The OSPF password (key)\n"
+       "Address of interface\n")
 {
-  int idx_number = 3;
-  int idx_ipv4 = 6;
   struct interface *ifp;
   struct crypt_key *ck;
   u_char key_id;
@@ -6194,10 +6192,17 @@ DEFUN (ip_ospf_message_digest_key,
   
   ifp = vty->index;
   params = IF_DEF_PARAMS (ifp);
+  int idx = 0;
 
-  if (argc == 7)
+  argv_find (argv, argc, "(1-255)", &idx);
+  char *keyid  = argv[idx]->arg;
+  argv_find (argv, argc, "KEY", &idx);
+  char *cryptkey = argv[idx]->arg;
+  char *ifaddr = argv_find (argv, argc, "A.B.C.D", &idx) ? argv[idx]->arg : NULL;
+
+  if (ifaddr)
     {
-      ret = inet_aton(argv[idx_ipv4]->arg, &addr);
+      ret = inet_aton(ifaddr, &addr);
       if (!ret)
        {
          vty_out (vty, "Please specify interface address by A.B.C.D%s",
@@ -6209,7 +6214,7 @@ DEFUN (ip_ospf_message_digest_key,
       ospf_if_update_params (ifp, addr);
     }
 
-  key_id = strtol (argv[idx_number]->arg, NULL, 10);
+  key_id = strtol (keyid, NULL, 10);
   if (ospf_crypt_key_lookup (params->auth_crypt, key_id) != NULL)
     {
       vty_out (vty, "OSPF: Key %d already exists%s", key_id, VTY_NEWLINE);
@@ -6219,7 +6224,7 @@ DEFUN (ip_ospf_message_digest_key,
   ck = ospf_crypt_key_new ();
   ck->key_id = (u_char) key_id;
   memset (ck->auth_key, 0, OSPF_AUTH_MD5_SIZE+1);
-  strncpy ((char *) ck->auth_key, argv[idx_ipv4]->arg, OSPF_AUTH_MD5_SIZE);
+  strncpy ((char *) ck->auth_key, cryptkey, OSPF_AUTH_MD5_SIZE);
 
   ospf_crypt_key_add (params->auth_crypt, ck);
   SET_IF_PARAM (params, auth_crypt);