tSmall updates to some tox functions, mostly regarding dealing with the return value properly. - ratox - FIFO based tox client
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 726ab5b06e370135abe4cf77fb9f711f17e0cb68
 (DIR) parent 2adc7fa0fa49a316a5e78ea221a9ff9604e84d23
 (HTM) Author: pranomostro <pranomestro@gmail.com>
       Date:   Thu,  3 Nov 2016 18:40:19 +0100
       
       Small updates to some tox functions, mostly regarding dealing with the return value properly.
       
       Diffstat:
         M ratox.c                             |      32 ++++++++++++++++---------------
       
       1 file changed, 17 insertions(+), 15 deletions(-)
       ---
 (DIR) diff --git a/ratox.c b/ratox.c
       t@@ -946,16 +946,16 @@ static void
        sendfriendtext(struct friend *f)
        {
                ssize_t n;
       -        int     r;
                uint8_t buf[TOX_MAX_MESSAGE_LENGTH];
       +        TOX_ERR_FRIEND_SEND_MESSAGE err;
        
                n = fiforead(f->dirfd, &f->fd[FTEXT_IN], ffiles[FTEXT_IN], buf, sizeof(buf));
                if (n <= 0)
                        return;
                if (buf[n - 1] == '\n')
                        n--;
       -        r = tox_send_message(tox, f->num, buf, n);
       -        if (r < 0)
       +        tox_friend_send_message(tox, f->num, TOX_MESSAGE_TYPE_NORMAL, buf, n, &err);
       +        if (err != TOX_ERR_FRIEND_SEND_MESSAGE_OK)
                        weprintf("Failed to send message\n");
        }
        
       t@@ -966,7 +966,7 @@ removefriend(struct friend *f)
        
                if (fiforead(f->dirfd, &f->fd[FREMOVE], ffiles[FREMOVE], &c, 1) != 1 || c != '1')
                        return;
       -        tox_del_friend(tox, f->num);
       +        tox_friend_delete(tox, f->num, NULL);
                datasave();
                logmsg(": %s > Removed\n", f->name);
                frienddestroy(f);
       t@@ -1262,7 +1262,7 @@ toxconnect(void)
                struct  node *n;
                struct  node tmp;
                size_t  i, j;
       -        int     r;
       +        bool r;
                uint8_t id[TOX_ADDRESS_SIZE];
        
                srand(time(NULL));
       t@@ -1280,8 +1280,8 @@ toxconnect(void)
                        if (ipv6 && !n->addr6)
                                continue;
                        str2id(n->idstr, id);
       -                r = tox_bootstrap_from_address(tox, ipv6 ? n->addr6 : n->addr4, n->port, id);
       -                if (r == 0)
       +                r = tox_bootstrap(tox, ipv6 ? n->addr6 : n->addr4, n->port, id, NULL);
       +                if (!r)
                                weprintf("Net : %s > Bootstrap failed\n", ipv6 ? n->addr6 : n->addr4);
                }
                return 0;
       t@@ -1539,10 +1539,11 @@ static void
        sendfriendreq(void *data)
        {
                ssize_t n;
       -        int     r;
       +        uint32_t r;
                char    buf[PIPE_BUF], *p;
                char   *msg = "ratox is awesome!";
                uint8_t id[TOX_ADDRESS_SIZE];
       +        TOX_ERR_FRIEND_ADD err;
        
                n = fiforead(gslots[REQUEST].dirfd, &gslots[REQUEST].fd[IN], gfiles[IN],
                             buf, sizeof(buf) - 1);
       t@@ -1572,12 +1573,12 @@ out:
                }
                str2id(buf, id);
        
       -        r = tox_add_friend(tox, id, (uint8_t *)msg, strlen(msg));
       +        r = tox_friend_add(tox, id, (uint8_t *)msg, strlen(msg), &err);
                ftruncate(gslots[REQUEST].fd[ERR], 0);
                lseek(gslots[REQUEST].fd[ERR], 0, SEEK_SET);
        
       -        if (r < 0) {
       -                dprintf(gslots[REQUEST].fd[ERR], "%s\n", reqerr[-r]);
       +        if (err != TOX_ERR_FRIEND_ADD_OK) {
       +                dprintf(gslots[REQUEST].fd[ERR], "%s\n", reqerr[err]);
                        return;
                }
                friendcreate(r);
       t@@ -1638,13 +1639,14 @@ loop(void)
                time_t t0, t1;
                int    connected = 0, i, n, r, fd, fdmax;
                char   tstamp[64], c;
       +        uint32_t e;
        
                t0 = time(NULL);
                logmsg("DHT > Connecting\n");
                toxconnect();
                while (running) {
                        /* Handle connection states */
       -                if (tox_isconnected(tox)) {
       +                if (tox_self_get_connection_status(tox) != TOX_CONNECTION_NONE) {
                                if (!connected) {
                                        logmsg("DHT > Connected\n");
                                        TAILQ_FOREACH(f, &friendhead, entry) {
       t@@ -1830,8 +1832,8 @@ loop(void)
                                        continue;
                                if (c != '0' && c != '1')
                                        continue;
       -                        r = tox_add_friend_norequest(tox, req->id);
       -                        if (r < 0) {
       +                        e = tox_friend_add_norequest(tox, req->id, NULL);
       +                        if (e == UINT32_MAX) {
                                        weprintf("Failed to add friend %s\n", req->idstr);
                                        fiforeset(gslots[REQUEST].fd[OUT], &req->fd, reqfifo);
                                        continue;
       t@@ -1841,7 +1843,7 @@ loop(void)
                                        logmsg("Request : %s > Accepted\n", req->idstr);
                                        datasave();
                                } else {
       -                                tox_del_friend(tox, r);
       +                                tox_friend_delete(tox, r, NULL);
                                        logmsg("Request : %s > Rejected\n", req->idstr);
                                }
                                unlinkat(gslots[REQUEST].fd[OUT], req->idstr, 0);