diff options
author | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-06-23 13:57:33 (GMT) |
---|---|---|
committer | Olliver Schinagl <o.schinagl@ultimaker.com> | 2015-06-23 13:57:33 (GMT) |
commit | bb9593c750f326e732e957b6c9d552f548df91cf (patch) | |
tree | 5b6d579ba265abaa82a63ec0a1b482c1d2b70e2a /src/dbus_handlers.c | |
parent | cdc2d181e2f2877eacb7dbd4fb4951d3a25b2b88 (diff) | |
download | eulogium-bb9593c750f326e732e957b6c9d552f548df91cf.zip eulogium-bb9593c750f326e732e957b6c9d552f548df91cf.tar.gz eulogium-bb9593c750f326e732e957b6c9d552f548df91cf.tar.bz2 |
Fix and use network data
Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Diffstat (limited to 'src/dbus_handlers.c')
-rw-r--r-- | src/dbus_handlers.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/dbus_handlers.c b/src/dbus_handlers.c index 8630f54..7e30fca 100644 --- a/src/dbus_handlers.c +++ b/src/dbus_handlers.c @@ -29,7 +29,7 @@ void on_method_generic_ret(void *data, const Eldbus_Message *msg, Eldbus_Pending void on_method_get_network_info_ret(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED) { struct eulogium_data *eulogium = data; /* TODO replace this by making networks direct via ** */ - struct network_data *networks = eulogium->networks; + struct network_data *networks = NULL; const char *errname, *errmsg; Eldbus_Message_Iter *array, *net_struct; char *obj_path, *tech, *ipv4, *ipv6, *ssid, *dummy; @@ -48,7 +48,7 @@ void on_method_get_network_info_ret(void *data, const Eldbus_Message *msg, Eldbu EINA_LOG_ERR("Message content does not match expected \"osssss\" signature. (%s)", eldbus_message_signature_get(msg)); break; } else { - networks = realloc(networks, (i + 1) * sizeof(struct network_data)); + networks = realloc(networks, (i + 2) * sizeof(struct network_data)); if (!networks) { EINA_LOG_ERR("Unable to allocate memory."); } else { @@ -60,10 +60,11 @@ void on_method_get_network_info_ret(void *data, const Eldbus_Message *msg, Eldbu else strncpy(networks[i].obj_path, obj_path, obj_pathsize); - if (strncmp(tech, _TECH_ETHERNET, sizeof(_TECH_ETHERNET))) - networks[i].tech = ETHERNET; - if (strncmp(tech, _TECH_WIFI, sizeof(_TECH_WIFI))) - networks[i].tech = WIFI; + networks[i].tech = UNKNOWN; + if (strcmp(tech, _TECH_ETHERNET)) + networks[i].tech = TECH_ETHERNET; + if (strcmp(tech, _TECH_WIFI)) + networks[i].tech = TECH_WIFI; strncpy(networks[i].ipv4, ipv4, IPV4_MAX_LEN); strncpy(networks[i].ipv6, ipv6, IPV6_MAX_LEN); @@ -71,6 +72,8 @@ void on_method_get_network_info_ret(void *data, const Eldbus_Message *msg, Eldbu } i++; } + networks[i].obj_path = NULL; /* sentinel */ + eulogium->networks = networks; } void on_signal_network_info_changed_ret(void *data, const Eldbus_Message *msg) |