[Libvirt-cim] [PATCH 1 of 2] Revert the random MAC generation patch against SDC

Dan Smith danms at us.ibm.com
Wed Apr 30 18:24:45 UTC 2008


# HG changeset patch
# User Dan Smith <danms at us.ibm.com>
# Date 1209579110 25200
# Node ID ffd90f0ed0e8e06c51db09befd3a09c956b00444
# Parent  a6ad7167443f326ec96e2161127024a86259e4fb
Revert the random MAC generation patch against SDC

...because it gets in the way of a client's ability to determine which
RASD is min/max/def/incr.

Signed-off-by: Dan Smith <danms at us.ibm.com>

diff -r a6ad7167443f -r ffd90f0ed0e8 src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c	Tue Apr 29 07:05:34 2008 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c	Wed Apr 30 11:11:50 2008 -0700
@@ -25,7 +25,6 @@
 #include <stdbool.h>
 #include <sys/vfs.h>
 #include <errno.h>
-#include <time.h>
 #include <uuid/uuid.h>
 
 #include <libvirt/libvirt.h>
@@ -54,8 +53,6 @@ const static CMPIBroker *_BROKER;
 #define SDC_DISK_MIN 2000
 #define SDC_DISK_DEF 5000
 #define SDC_DISK_INC 250
-
-#define DEFAULT_MAC_PREFIX "00:16:3e"
 
 static bool system_has_vt(virConnectPtr conn)
 {
@@ -629,74 +626,25 @@ static struct sdc_rasd_prop *net_max(con
         return rasd;
 }
 
-static const char *_net_rand_mac(void)
-{
-        int r;
-        int ret;
-        unsigned int s;
-        char *tmp_mac = NULL;
-        const char *mac = NULL;
-        CMPIString *str = NULL;
-        CMPIStatus status;
-
-        srand(time(NULL));
-        r = rand_r(&s);
-
-        ret = asprintf(&tmp_mac,
-                       "%s:%02x:%02x:%02x",
-                       DEFAULT_MAC_PREFIX,
-                       r & 0xFF,
-                       (r & 0xFF00) >> 8,
-                       (r & 0xFF0000) >> 16);
-
-        if (ret == -1)
-                goto out;
-
-        str = CMNewString(_BROKER, tmp_mac, &status);
-        if ((str == NULL) || (status.rc != CMPI_RC_OK)) {
-                str = NULL;
-                CU_DEBUG("Failed to create string");
-                goto out;
-        }
- out:
-        free(tmp_mac);
-
-        if (str != NULL)
-                mac = CMGetCharPtr(str);
-        else
-                mac = NULL;
-
-        return mac;
-}
-
 static struct sdc_rasd_prop *net_def(const CMPIObjectPath *ref,
                                      CMPIStatus *s)
 {
         bool ret;
         uint16_t num_nics = 1;
         struct sdc_rasd_prop *rasd = NULL;
-        const char *mac = _net_rand_mac();
         struct sdc_rasd_prop tmp[] = {
                 {"InstanceID", (CMPIValue *)"Default", CMPI_chars},
                 {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
-                {"Address", (CMPIValue *)mac, CMPI_chars},
-                PROP_END
-        };
-
-        if (mac == NULL) {
-                cu_statusf(_BROKER, s,
-                           CMPI_RC_ERR_FAILED,
-                           "Failed to generate new MAC address");
-                goto out;
-        }
-
-        ret = dup_rasd_prop_list(tmp, &rasd);
-        if (!ret) {
-                cu_statusf(_BROKER, s, 
-                           CMPI_RC_ERR_FAILED,
-                           "Could not copy RASD");
-        }
- out:
+                PROP_END
+        };
+
+        ret = dup_rasd_prop_list(tmp, &rasd);
+        if (!ret) {
+                cu_statusf(_BROKER, s, 
+                           CMPI_RC_ERR_FAILED,
+                           "Could not copy RASD");
+        }
+
         return rasd;
 }
  




More information about the Libvirt-cim mailing list