diff --git a/TODO b/TODO index 12be399b..a409277e 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,9 @@ Core ~~~~ +- socket open failure should not be fatal +- &&,||: priorities +- client: `?' in BGP masks +- filters: function for BGP path length Globals ~~~~~~~ diff --git a/client/client.c b/client/client.c index a139b046..c579352b 100644 --- a/client/client.c +++ b/client/client.c @@ -22,6 +22,7 @@ #include "lib/resource.h" #include "lib/string.h" #include "client/client.h" +#include "sysdep/unix/unix.h" static char *opt_list = "s:v"; static int verbose; @@ -69,7 +70,7 @@ parse_args(int argc, char **argv) /*** Input ***/ static void server_send(char *); -static void io_loop(int); +static void select_loop(int); /* HACK: libreadline internals we need to access */ extern int _rl_vis_botlin; @@ -112,7 +113,7 @@ got_line(char *cmd_buffer) { server_send(cmd); input_hidden = -1; - io_loop(0); + select_loop(0); input_hidden = 0; } free(cmd); @@ -316,7 +317,7 @@ server_read(void) static fd_set select_fds; static void -io_loop(int mode) +select_loop(int mode) { server_reply = -1; while (mode || server_reply < 0) @@ -384,10 +385,10 @@ main(int argc, char **argv) parse_args(argc, argv); cmd_build_tree(); server_connect(); - io_loop(0); + select_loop(0); input_init(); - io_loop(1); + select_loop(1); return 0; } diff --git a/sysdep/unix/unix.h b/sysdep/unix/unix.h index 5da925c4..bb4d063d 100644 --- a/sysdep/unix/unix.h +++ b/sysdep/unix/unix.h @@ -34,6 +34,10 @@ typedef struct sockaddr_in6 sockaddr; typedef struct sockaddr_in sockaddr; #endif +#ifndef SUN_LEN +#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path) + strlen ((ptr)->sun_path)) +#endif + struct birdsock; void io_init(void);