diff options
-rw-r--r-- | gdhcp/client.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gdhcp/client.c b/gdhcp/client.c index 5c5b4263..4e687e99 100644 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -844,7 +844,7 @@ static char *malloc_option_value_string(uint8_t *option, GDHCPOptionType type) return ret; } -static GList *get_option_value_list(char *value) +static GList *get_option_value_list(char *value, GDHCPOptionType type) { char *pos = value; GList *list = NULL; @@ -852,6 +852,9 @@ static GList *get_option_value_list(char *value) if (pos == NULL) return NULL; + if (type == OPTION_STRING) + return g_list_append(list, g_strdup(value)); + while ((pos = strchr(pos, ' ')) != NULL) { *pos = '\0'; @@ -890,7 +893,7 @@ static void get_request(GDHCPClient *dhcp_client, struct dhcp_packet *packet) g_hash_table_remove(dhcp_client->code_value_hash, GINT_TO_POINTER((int) code)); - value_list = get_option_value_list(option_value); + value_list = get_option_value_list(option_value, type); g_free(option_value); |