X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fpeer.c;h=2102f119d21a723d73ebd596f22a27401c025fce;hb=04d1dbacf6aabbb44f16f6776496192964d460d8;hp=340cbcc2a176658e36c72c1ad275b65201dc4825;hpb=9362752a471a5c892d679548fbf2828d5fc5684b;p=platform%2Fupstream%2Fconnman.git diff --git a/src/peer.c b/src/peer.c old mode 100644 new mode 100755 index 340cbcc..2102f11 --- a/src/peer.c +++ b/src/peer.c @@ -82,7 +82,7 @@ static void stop_dhcp_server(struct connman_peer *peer) peer->dhcp_server = NULL; if (peer->ip_pool) - __connman_ippool_unref(peer->ip_pool); + __connman_ippool_free(peer->ip_pool); peer->ip_pool = NULL; peer->lease_ip = 0; } @@ -606,6 +606,9 @@ static int peer_connect(struct connman_peer *peer) { int err = -ENOTSUP; + if (is_connected(peer)) + return -EISCONN; + if (peer_driver->connect) err = peer_driver->connect(peer, CONNMAN_PEER_WPS_UNKNOWN, NULL); @@ -1177,6 +1180,18 @@ const char *__connman_peer_get_path(struct connman_peer *peer) return peer->path; } +static void disconnect_peer_hash_table(gpointer key, + gpointer value, gpointer user_data) +{ + struct connman_peer *peer = value; + peer_disconnect(peer); +} + +void __connman_peer_disconnect_all(void) +{ + g_hash_table_foreach(peers_table, disconnect_peer_hash_table, NULL); +} + int __connman_peer_init(void) { DBG("");