2003-06-07 Paul Jakma <paul@dishone.st>

	* Revert Cougar's sort interface names patch, causes problems with
	enabling of interfaces for OSPF in ospfd.
diff --git a/ChangeLog b/ChangeLog
index 7e0765c..ecee45f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,3 @@
-2003-06-05 Hasso Tepper <hasso@linux.ee>
-  
-  * Patch from Cougar <cougar@random.ee>: Sort interface lists (iflist)
-    by name.
-
 2003-04-13 Paul Jakma <paul@dishone.st>
 
 	* Amir: Opaque LSA bug fix for deletion of Type11's
diff --git a/lib/if.c b/lib/if.c
index cb2d086..f003754 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -46,52 +46,6 @@
   int (*if_delete_hook) (struct interface *);
 } if_master;
 
-/* Compare interface names */
-int
-if_cmp_func (struct interface *ifp1, struct interface *ifp2)
-{
-  unsigned int l1, l2;
-  long int x1, x2;
-  char *p1, *p2;
-  int res;
-
-  p1 = ifp1->name;
-  p2 = ifp2->name;
-
-  while (1) {
-    /* look up to any number */
-    l1 = strcspn(p1, "0123456789");
-    l2 = strcspn(p2, "0123456789");
-
-    /* name lengths are different -> compare names */
-    if (l1 != l2)
-      return (strcmp(p1, p2));
-
-    res = strncmp(p1, p2, l1);
-
-    /* names are different -> compare them */
-    if (res)
-      return res;
-
-    /* with identical name part, go to numeric part */
-
-    p1 += l1;
-    p2 += l1;
-
-    x1 = strtol(p1, &p1, 10);
-    x2 = strtol(p2, &p2, 10);
-
-    /* let's compare numbers now */
-    if (x1 < x2)
-      return -1;
-    if (x1 > x2)
-      return 1;
-
-    /* numbers were equal, lets do it again..
-    (it happens with name like "eth123.456:789") */
-  }
-}
-
 /* Create new interface structure. */
 struct interface *
 if_new ()
@@ -104,18 +58,13 @@
 }
 
 struct interface *
-if_create (char *name, int namelen)
+if_create ()
 {
   struct interface *ifp;
 
   ifp = if_new ();
   
-  if (name) {
-    strncpy (ifp->name, name, namelen);
-    listnode_add_sort (iflist, ifp);
-  } else {
-    listnode_add (iflist, ifp);
-  }
+  listnode_add (iflist, ifp);
   ifp->connected = list_new ();
   ifp->connected->del = (void (*) (void *)) connected_free;
 
@@ -299,7 +248,10 @@
 
   ifp = if_lookup_by_name (name);
   if (ifp == NULL)
-    ifp = if_create (name, IFNAMSIZ);
+    {
+      ifp = if_create ();
+      strncpy (ifp->name, name, IFNAMSIZ);
+    }
   return ifp;
 }
 
@@ -478,7 +430,10 @@
   ifp = if_lookup_by_name (argv[0]);
 
   if (ifp == NULL)
-    ifp = if_create (argv[0], INTERFACE_NAMSIZ);
+    {
+      ifp = if_create ();
+      strncpy (ifp->name, argv[0], INTERFACE_NAMSIZ);
+    }
   vty->index = ifp;
   vty->node = INTERFACE_NODE;
 
@@ -848,10 +803,8 @@
   iflist = list_new ();
   ifaddr_ipv4_table = route_table_init ();
 
-  if (iflist) {
-    iflist->cmp = (int (*)(void *, void *))if_cmp_func;
+  if (iflist)
     return;
-  }
 
   memset (&if_master, 0, sizeof if_master);
 }
diff --git a/lib/if.h b/lib/if.h
index c6469ea..9ffe74c 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -181,7 +181,7 @@
 
 /* Prototypes. */
 struct interface *if_new (void);
-struct interface *if_create (char *name, int namelen);
+struct interface *if_create (void);
 struct interface *if_lookup_by_index (unsigned int);
 struct interface *if_lookup_by_name (char *);
 struct interface *if_lookup_exact_address (struct in_addr);
diff --git a/lib/zclient.c b/lib/zclient.c
index f6be513..bb7747f 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -555,7 +555,10 @@
 
   /* If such interface does not exist, make new one. */
   if (! ifp)
-    ifp = if_create (ifname_tmp, IFNAMSIZ);
+    {
+      ifp = if_create ();
+      strncpy (ifp->name, ifname_tmp, IFNAMSIZ);
+    }
 
   /* Read interface's index. */
   ifp->ifindex = stream_getl (s);
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index d3ab01f..08bc7fb 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -745,7 +745,7 @@
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("ospf_vl_new(): creating pseudo zebra interface");
 
-  vi = if_create (NULL, 0);
+  vi = if_create ();
   co = connected_new ();
   co->ifp = vi;
   listnode_add (vi->connected, co);
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index ccf8515..30e0fb1 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -218,8 +218,9 @@
 	  return -1;
 	}
 
-      ifp = if_create (sdl->sdl_data, sdl->sdl_nlen);
+      ifp = if_create ();
 
+      strncpy (ifp->name, sdl->sdl_data, sdl->sdl_nlen);
       ifp->ifindex = ifm->ifm_index;
       ifp->flags = ifm->ifm_flags;
 #if defined(__bsdi__)