You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2007/07/09 08:02:02 UTC

svn commit: r554528 - in /webservices/axis2/trunk/c/util: include/platforms/unix/axutil_uuid_gen_unix.h src/platforms/unix/uuid_gen_unix.c

Author: sahan
Date: Sun Jul  8 23:02:02 2007
New Revision: 554528

URL: http://svn.apache.org/viewvc?view=rev&rev=554528
Log:
Fixing a problem of generating NULL mac addresses for the machines without "up" interfaces on Linux. Currently we assign a default mac address if no interfaces are up

Modified:
    webservices/axis2/trunk/c/util/include/platforms/unix/axutil_uuid_gen_unix.h
    webservices/axis2/trunk/c/util/src/platforms/unix/uuid_gen_unix.c

Modified: webservices/axis2/trunk/c/util/include/platforms/unix/axutil_uuid_gen_unix.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/platforms/unix/axutil_uuid_gen_unix.h?view=diff&rev=554528&r1=554527&r2=554528
==============================================================================
--- webservices/axis2/trunk/c/util/include/platforms/unix/axutil_uuid_gen_unix.h (original)
+++ webservices/axis2/trunk/c/util/include/platforms/unix/axutil_uuid_gen_unix.h Sun Jul  8 23:02:02 2007
@@ -23,6 +23,7 @@
 
 #define UUIDS_PER_TICK 100
 #define UUID_TIMEOFFSET AXIS2_UNSIGNED_LONGLONGVALUE(0x01B21DD213814000)
+#define AXIS2_LOCAL_MAC_ADDR "000000"
 
 #ifdef __cplusplus
 extern "C"

Modified: webservices/axis2/trunk/c/util/src/platforms/unix/uuid_gen_unix.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/platforms/unix/uuid_gen_unix.c?view=diff&rev=554528&r1=554527&r2=554528
==============================================================================
--- webservices/axis2/trunk/c/util/src/platforms/unix/uuid_gen_unix.c (original)
+++ webservices/axis2/trunk/c/util/src/platforms/unix/uuid_gen_unix.c Sun Jul  8 23:02:02 2007
@@ -221,26 +221,22 @@
     char buf[1024];
     int ok = AXIS2_FALSE;
 
-
     if ((s = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
         return NULL;
 
     ifc.ifc_len = sizeof(buf);
     ifc.ifc_buf = buf;
     ioctl(s, SIOCGIFCONF, &ifc);
-
     IFR = ifc.ifc_req;
 
     for(i = ifc.ifc_len/sizeof(struct ifreq); --i >=0; IFR++)
     {
         strcpy(ifr.ifr_name, IFR->ifr_name);
-    
         /*sprintf(ifr.ifr_name, "eth0");*/
         if (ioctl(s, SIOCGIFFLAGS, &ifr) == 0)
         {
             if(!(ifr.ifr_flags & IFF_LOOPBACK))
             {
-                
                 if (ioctl(s, SIOCGIFHWADDR, &ifr) == 0)
                 {
                     ok = AXIS2_TRUE;
@@ -249,12 +245,17 @@
             }
         }
     }
+    buffer = (char*)malloc(6 * sizeof(char));
     if(ok)
     {
-        buffer = (char*)malloc(6 * sizeof(char));
         sa = (struct sockaddr *) & ifr.ifr_addr;
         for (i = 0; i < 6; i++)
             buffer[i] = (unsigned char)(sa->sa_data[i] & 0xff);
+    }
+    else
+    {
+        for (i = 0; i < 6; i++)
+            buffer[i] = (unsigned char)(AXIS2_LOCAL_MAC_ADDR[i]);
     }
     close(s);
     return buffer;



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org