Implement command to add friend qdbm
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Thu, 17 Oct 2013 21:59:53 +0000 (18:59 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.info>
Thu, 17 Oct 2013 21:59:53 +0000 (18:59 -0300)
friend.c

index 5abd50c..60569c1 100644 (file)
--- a/friend.c
+++ b/friend.c
@@ -90,10 +90,7 @@ void friend_got_message(struct friend *friend, char *buffer, size_t len)
 }
 
 static void friend_list(gchar **args, GSocketAddress *address);
-
-static void friend_add(gchar **args, GSocketAddress *address)
-{
-}
+static void friend_add(gchar **args, GSocketAddress *address);
 
 struct menu_item cmds[] = {
        { "list", friend_list },
@@ -140,6 +137,21 @@ static void friend_list(gchar **args, GSocketAddress *address)
        g_socket_send_to(usock, address, buffer, 0, NULL, NULL);
 }
 
+static void friend_add(gchar **args, GSocketAddress *address)
+{
+       char *name;
+       char *addr;
+       char *sport;
+       uint16_t port;
+       if (args[2] == NULL || args[3] == NULL || args[4] == NULL)
+               return;
+       name = args[2];
+       addr = args[3];
+       sport = args[4];
+       port = atoi(sport);
+       cache_add_friend(ucache, name, addr, port);
+}
+
 struct friend *friend_get_by_address(GInetAddress *address, uint16_t port)
 {
        GList *l;