if (err < 0)
goto error;
- g_timeout_add_seconds(0, dhcp_server_started, connman_peer_ref(peer));
+ g_idle_add(dhcp_server_started, connman_peer_ref(peer));
return 0;
void connman_peer_set_iface_address(struct connman_peer *peer,
const unsigned char *iface_address)
{
- memset(peer->iface_address, 0, ETH_ALEN);
+ memset(peer->iface_address, 0, sizeof(peer->iface_address));
memcpy(peer->iface_address, iface_address, ETH_ALEN);
}
break;
case CONNMAN_PEER_STATE_READY:
reply_pending(peer, 0);
+ __connman_technology_set_connected(CONNMAN_SERVICE_TYPE_P2P, true);
break;
case CONNMAN_PEER_STATE_DISCONNECT:
if (peer->connection_master)
stop_dhcp_server(peer);
+ else
+ __connman_dhcp_stop(peer->ipconfig);
peer->connection_master = false;
peer->sub_device = NULL;
-
+ __connman_technology_set_connected(CONNMAN_SERVICE_TYPE_P2P, false);
break;
case CONNMAN_PEER_STATE_FAILURE:
if (manage_peer_error(peer) == 0)