]> git.proxmox.com Git - mirror_frr.git/commitdiff
2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
authorajs <ajs>
Wed, 15 Dec 2004 15:07:19 +0000 (15:07 +0000)
committerajs <ajs>
Wed, 15 Dec 2004 15:07:19 +0000 (15:07 +0000)
* ospf_interface.h: Declare new function ospf_default_iftype.
* ospf_interface.c: (ospf_default_iftype) New function to centralize
  this logic in one place.
* ospf_zebra.c: (ospf_interface_add) Use new function
  ospf_default_iftype.
* ospf_vty.c: (no_ip_ospf_network,config_write_interface) Fix logic
  by using new function ospf_default_iftype.

ospfd/ChangeLog
ospfd/ospf_interface.c
ospfd/ospf_interface.h
ospfd/ospf_vty.c
ospfd/ospf_zebra.c

index 82d0039272b8a25e18352f08bf2c66803e7e1b6f..235b7fb6a4456986f8ffffbfceef2ba07b66e063 100644 (file)
@@ -1,3 +1,13 @@
+2004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+       * ospf_interface.h: Declare new function ospf_default_iftype.
+       * ospf_interface.c: (ospf_default_iftype) New function to centralize
+         this logic in one place.
+       * ospf_zebra.c: (ospf_interface_add) Use new function
+         ospf_default_iftype.
+       * ospf_vty.c: (no_ip_ospf_network,config_write_interface) Fix logic
+         by using new function ospf_default_iftype.
+
 2004-12-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
        * ospf_packet.c: (ospf_db_desc) Should be static, not global.
index 5a8f45321a1cc7f92df78bfce3a24bcc4faec87f..da08360d53213a58136058b55a4f5fb5a60d1cbe 100644 (file)
@@ -1174,6 +1174,17 @@ ospf_crypt_key_delete (struct list *auth_crypt, u_char key_id)
   return 0;
 }
 
+u_char
+ospf_default_iftype(struct interface *ifp)
+{
+  if (if_is_pointopoint (ifp))
+    return OSPF_IFTYPE_POINTOPOINT;
+  else if (if_is_loopback (ifp))
+    return OSPF_IFTYPE_LOOPBACK;
+  else
+    return OSPF_IFTYPE_BROADCAST;
+}
+
 void
 ospf_if_init ()
 {
index ed6abed04ce50d4d68def82a627f4c511e4062a3..60ee165048f89f2f8dbfc7f672e0e4fddc701749 100644 (file)
@@ -246,4 +246,6 @@ struct crypt_key *ospf_crypt_key_new ();
 void ospf_crypt_key_add (struct list *, struct crypt_key *);
 int ospf_crypt_key_delete (struct list *, u_char);
 
+u_char ospf_default_iftype(struct interface *ifp);
+
 #endif /* _ZEBRA_OSPF_INTERFACE_H */
index 6a679f945cc2b461ce686d0b62ea2a1bc6222e90..b9c554f41dd149859d792eb41428c91c9af7e4b7 100644 (file)
@@ -4853,7 +4853,7 @@ DEFUN (no_ip_ospf_network,
   int old_type = IF_DEF_PARAMS (ifp)->type;
   struct route_node *rn;
 
-  IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_BROADCAST;
+  IF_DEF_PARAMS (ifp)->type = ospf_default_iftype(ifp);
 
   if (IF_DEF_PARAMS (ifp)->type == old_type)
     return CMD_SUCCESS;
@@ -6722,8 +6722,7 @@ config_write_interface (struct vty *vty)
        if (OSPF_IF_PARAM_CONFIGURED (params, type) &&
            params->type != OSPF_IFTYPE_LOOPBACK)
          {
-           if ((!if_is_broadcast(ifp)) && 
-               (params->type != OSPF_IFTYPE_BROADCAST))
+           if (params->type != ospf_default_iftype(ifp))
              {
                vty_out (vty, " ip ospf network %s",
                         ospf_int_type_str[params->type]);
index 44b5950322ea66340c276a5f1e661d6745345e93..8468aed9eac9ff3e1c2ed4be3c4239aa6f6fefde 100644 (file)
@@ -95,14 +95,7 @@ ospf_interface_add (int command, struct zclient *zclient, zebra_size_t length)
   if (!OSPF_IF_PARAM_CONFIGURED (IF_DEF_PARAMS (ifp), type))
     {
       SET_IF_PARAM (IF_DEF_PARAMS (ifp), type);
-      IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_BROADCAST;
-
-      if (if_is_broadcast (ifp))
-        IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_BROADCAST;
-      else if (if_is_pointopoint (ifp))
-        IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_POINTOPOINT;
-      else if (if_is_loopback (ifp))
-        IF_DEF_PARAMS (ifp)->type = OSPF_IFTYPE_LOOPBACK;
+      IF_DEF_PARAMS (ifp)->type = ospf_default_iftype(ifp);
     }
 
   ospf = ospf_lookup ();