X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Ff2fchat.git;a=blobdiff_plain;f=message.c;h=2074549a8228c12fc11d6a0048c0052ca9cfc905;hp=4d3150ae05199ab2513889ce039d77b631baef67;hb=2ce1e48602de964b8a12747b4a329fc082da7523;hpb=a35406f8da02aa40551c5bf7364d4e6890db018c diff --git a/message.c b/message.c index 4d3150a..2074549 100644 --- a/message.c +++ b/message.c @@ -18,6 +18,7 @@ #include "message.h" #include "friend.h" +#include "menu.h" #include #include @@ -33,9 +34,12 @@ gboolean ping_timeout(gpointer data) static GIOChannel *uchannel; static GSocket *gusock; -static void command(char *buffer, size_t len) +static void command(char *buffer, size_t len, GSocketAddress *address) { - printf("message from loopback: %d %.*s\n", len, len, buffer); + gchar **args; + args = g_strsplit(buffer, " ", -1); + menu_run(args, address); + g_strfreev(args); } gboolean message_incoming(GIOChannel *channel, GIOCondition cond, gpointer data) @@ -55,7 +59,7 @@ gboolean message_incoming(GIOChannel *channel, GIOCondition cond, gpointer data) len = g_socket_receive_from(gusock, &address, buffer, len, NULL, NULL); iaddress = g_inet_socket_address_get_address(G_INET_SOCKET_ADDRESS(address)); if (g_inet_address_get_is_loopback(iaddress)) { - command(buffer, len); + command(buffer, len, address); } else { struct friend *friend; uint16_t port = g_inet_socket_address_get_port(G_INET_SOCKET_ADDRESS(address));