dpif: Make dp_parse_name() normalize its returned type.
authorBen Pfaff <blp@nicira.com>
Mon, 11 Apr 2011 22:07:07 +0000 (15:07 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 11 May 2011 19:26:07 +0000 (12:26 -0700)
This means that callers don't have to be concerned with a NULL return value
or unnormalized type.

lib/dpif.c

index aaa8075b1a3809d7aeb080747d7a2b79a975494e..215ecfcd44baaf55229e082ea6f846067e66b0cb 100644 (file)
@@ -200,8 +200,10 @@ dp_enumerate_names(const char *type, struct sset *names)
     return error;
 }
 
-/* Parses 'datapath name', which is of the form type@name into its
- * component pieces.  'name' and 'type' must be freed by the caller. */
+/* Parses 'datapath_name_', which is of the form [type@]name into its
+ * component pieces.  'name' and 'type' must be freed by the caller.
+ *
+ * The returned 'type' is normalized, as if by dpif_normalize_type(). */
 void
 dp_parse_name(const char *datapath_name_, char **name, char **type)
 {
@@ -212,10 +214,10 @@ dp_parse_name(const char *datapath_name_, char **name, char **type)
     if (separator) {
         *separator = '\0';
         *type = datapath_name;
-        *name = xstrdup(separator + 1);
+        *name = xstrdup(dpif_normalize_type(separator + 1));
     } else {
         *name = datapath_name;
-        *type = NULL;
+        *type = xstrdup(dpif_normalize_type(NULL));
     }
 }