ratox

FIFO based tox client
git clone git://git.2f30.org/ratox.git
Log | Files | Refs | README | LICENSE

commit c25b3394399c7409d0dd3d7862a456932c77c648
parent 9c28246716a1ab4d73e312b7f009cc0cd96a3268
Author: sin <sin@2f30.org>
Date:   Sat Sep 13 23:57:02 +0100

Dump output to master.out by default

Errors go to stderr.  Simply tail -f master.out.

Diffstat:
ratatox.c | 47++++++++++++++++++++++++++++++++---------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/ratatox.c b/ratatox.c @@ -6,6 +6,7 @@ #include <errno.h> #include <fcntl.h> #include <limits.h> +#include <stdarg.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> @@ -58,6 +59,23 @@ static void datasave(void); static void friendcreate(int32_t); static void +masterout(const char *fmt, ...) +{ + FILE *fp; + va_list ap; + + fp = fopen("master_out", "a"); + if (!fp) { + perror("fopen"); + exit(1); + } + va_start(ap, fmt); + vfprintf(fp, fmt, ap); + va_end(ap); + fclose(fp); +} + +static void cb_conn_status(Tox *tox, int32_t fid, uint8_t status, void *udata) { struct friend *f; @@ -74,14 +92,14 @@ cb_conn_status(Tox *tox, int32_t fid, uint8_t status, void *udata) if (n == 0) { if (status == 0) - printf("Anonymous went offline\n"); + masterout("Anonymous went offline\n"); else - printf("Anonymous came online\n"); + masterout("Anonymous came online\n"); } else { if (status == 0) - printf("%s went offline\n", name); + masterout("%s went offline\n", name); else - printf("%s came online\n", name); + masterout("%s came online\n", name); } TAILQ_FOREACH(f, &friendhead, entry) @@ -127,9 +145,9 @@ cb_friend_request(Tox *tox, const uint8_t *id, const uint8_t *data, uint16_t len msg[len] = '\0'; tox_add_friend_norequest(tox, id); if (len > 0) - printf("Accepted friend request with msg: %s\n", msg); + masterout("Accepted friend request with msg: %s\n", msg); else - printf("Accepted friend request\n"); + masterout("Accepted friend request\n"); datasave(); } @@ -158,9 +176,9 @@ cb_name_change(Tox *m, int32_t fid, const uint8_t *data, uint16_t len, void *use if (memcmp(f->namestr, name, len + 1) == 0) break; if (f->namestr[0] == '\0') { - printf("%s -> %s\n", "Anonymous", name); + masterout("%s -> %s\n", "Anonymous", name); } else { - printf("%s -> %s\n", f->namestr, name); + masterout("%s -> %s\n", f->namestr, name); } memcpy(f->namestr, name, len + 1); break; @@ -191,7 +209,7 @@ cb_status_message(Tox *m, int32_t fid, const uint8_t *data, uint16_t len, void * fputs(status, fp); fputc('\n', fp); fclose(fp); - printf("%s current status to %s\n", f->namestr, status); + masterout("%s current status to %s\n", f->namestr, status); break; } } @@ -300,11 +318,10 @@ toxinit(void) tox_set_user_status(tox, TOX_USERSTATUS_NONE); tox_get_address(tox, address); - printf("ID: "); + masterout("ID: "); for (i = 0; i < TOX_FRIEND_ADDRESS_SIZE; i++) - printf("%02x", address[i]); - putchar('\n'); - + masterout("%02x", address[i]); + masterout("\n"); return 0; } @@ -422,14 +439,14 @@ loop(void) while (1) { if (tox_isconnected(tox) == 1) { if (connected == 0) { - printf("Connected to DHT\n"); + masterout("Connected to DHT\n"); connected = 1; } } else { t1 = time(NULL); if (t1 > t0 + 5) { t0 = time(NULL); - printf("Connecting to DHT...\n"); + masterout("Connecting to DHT...\n"); toxconnect(); } }