X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Ff2fchat.git;a=blobdiff_plain;f=friend.c;fp=friend.c;h=68deccdf67b681c70ef9ae7fabc9c97af3c1866e;hp=fd7964347593a7264a764fc04f855fa5dd06477b;hb=123b3a7a3989a0f040da5cc16f997ff5961fe593;hpb=9bfbad1591814150338bb62050d28ad0e4033552 diff --git a/friend.c b/friend.c index fd79643..68deccd 100644 --- a/friend.c +++ b/friend.c @@ -40,14 +40,22 @@ int sock_init(void) { GSocketAddress *address; GInetAddress *any_addr; + GError *error; + int err = 0; any_addr = g_inet_address_new_any(G_SOCKET_FAMILY_IPV6); usock = g_socket_new(G_SOCKET_FAMILY_IPV6, G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, NULL); address = g_inet_socket_address_new(any_addr, 17078); - g_socket_bind(usock, address, TRUE, NULL); - g_object_unref(any_addr); + if (!g_socket_bind(usock, address, TRUE, &error)) { + err = error->code; + g_error_free(error); + } g_object_unref(address); - message_init(usock); - return 0; + g_object_unref(any_addr); + if (!err) + message_init(usock); + else + g_object_unref(usock); + return err; } int friend_send_message(struct friend *friend, char *buffer, size_t len)