Find friend by port.
[cascardo/f2fchat.git] / message.c
index 4104cff..25b5160 100644 (file)
--- a/message.c
+++ b/message.c
@@ -54,9 +54,14 @@ gboolean message_incoming(GIOChannel *channel, GIOCondition cond, gpointer data)
                command(buffer, len);
        } else {
                struct friend *friend;
-               friend = friend_get_by_address(iaddress);
-               if (friend)
+               uint16_t port = g_inet_socket_address_get_port(G_INET_SOCKET_ADDRESS(address));
+               friend = friend_get_by_address(iaddress, port);
+               if (friend) {
+                       printf("got message from %s\n", friend_get_name(friend));
                        g_source_remove_by_user_data(friend);
+               } else {
+                       printf("could not find friend from address %s\n", g_inet_address_to_string(iaddress));
+               }
        }
        g_object_unref(address);
        g_free(buffer);