diff options
author | Christophe Guiraud <christophe.guiraud@intel.com> | 2013-09-04 10:33:12 +0200 |
---|---|---|
committer | rmerlino <regis.merlino@intel.com> | 2013-12-12 14:53:15 +0100 |
commit | 03b444374dfa6bcd0ad90bb4d8814aaf57e6d27f (patch) | |
tree | 800530d86a8badf4495f2f6e03e55cc086db5c5a | |
parent | 44cc09c4060c4517f66a8c858fc736de8dad9a89 (diff) | |
download | dleyna-server-03b444374dfa6bcd0ad90bb4d8814aaf57e6d27f.tar.gz |
[Device] Improve sleeping context lookup
- Add missing context Ip address idx initialization.
- Use UDP-Broadcast as default wake transport if none is provided
in the network interface info data.
Signed-off-by: Christophe Guiraud <christophe.guiraud@intel.com>
-rw-r--r-- | libdleyna/server/device.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/libdleyna/server/device.c b/libdleyna/server/device.c index 6a3bc2c..b7407a6 100644 --- a/libdleyna/server/device.c +++ b/libdleyna/server/device.c @@ -628,7 +628,7 @@ static dls_network_if_info_t *prv_get_network_if_info(xmlNode *device_if_node, if ((info->device_uuid == NULL || strlen(info->device_uuid) > 70) || (info->mac_address == NULL || strlen(info->mac_address) != 17) || (info->network_if_mode == NULL) || (info->ip_addresses == NULL) || - (info->wake_on_pattern == NULL) || (info->wake_transport == NULL)) + (info->wake_on_pattern == NULL)) goto on_error; if (strcmp(info->device_uuid, udn)) @@ -712,7 +712,7 @@ static gboolean prv_get_device_sleeping_state(dls_device_t *device, gboolean found = FALSE; const gchar *udn; GList *next_ip; - guint ip_idx = 0; + guint ip_idx; gchar *ip_address; DLEYNA_LOG_DEBUG("Enter"); @@ -743,6 +743,7 @@ static gboolean prv_get_device_sleeping_state(dls_device_t *device, i, ctx->ip_address); next_ip = info->ip_addresses; + ip_idx = 0; while (next_ip != NULL) { ip_address = (gchar *)next_ip->data; @@ -5977,13 +5978,8 @@ void dls_device_wake(dls_client_t *client, dls_task_t *task) info = device->network_if_info; - DLEYNA_LOG_DEBUG("MacAddress = %s", info->mac_address); - DLEYNA_LOG_DEBUG("DeviceUUID = %s", info->device_uuid); - DLEYNA_LOG_DEBUG("NetworkInterfaceMode = %s", info->network_if_mode); - DLEYNA_LOG_DEBUG("WakeOnPattern = %s", info->wake_on_pattern); - DLEYNA_LOG_DEBUG("WakeSupportedTransport = %s", info->wake_transport); - - if (!strcmp(info->wake_transport, "UDP-Broadcast")) { + if ((info->wake_transport == NULL) || + !strcmp(info->wake_transport, "UDP-Broadcast")) { socket_protocol = G_SOCKET_PROTOCOL_UDP; broadcast = TRUE; } else if (!strcmp(info->wake_transport, "UDP-Unicast")) { @@ -5997,6 +5993,12 @@ void dls_device_wake(dls_client_t *client, dls_task_t *task) goto on_complete; } + DLEYNA_LOG_DEBUG("MacAddress = %s", info->mac_address); + DLEYNA_LOG_DEBUG("DeviceUUID = %s", info->device_uuid); + DLEYNA_LOG_DEBUG("NetworkInterfaceMode = %s", info->network_if_mode); + DLEYNA_LOG_DEBUG("WakeOnPattern = %s", info->wake_on_pattern); + DLEYNA_LOG_DEBUG("WakeSupportedTransport = %s", info->wake_transport); + wake_on_ip_address = (gchar *)g_list_nth_data(info->ip_addresses, info->ip_address_position); |