Use our own SUN_LEN if libc doesn't provide it.

This commit is contained in:
Martin Mares 2000-06-16 23:12:47 +00:00
parent 365211d588
commit 4daf03e513
3 changed files with 14 additions and 5 deletions

4
TODO
View file

@ -1,5 +1,9 @@
Core Core
~~~~ ~~~~
- socket open failure should not be fatal
- &&,||: priorities
- client: `?' in BGP masks
- filters: function for BGP path length
Globals Globals
~~~~~~~ ~~~~~~~

View file

@ -22,6 +22,7 @@
#include "lib/resource.h" #include "lib/resource.h"
#include "lib/string.h" #include "lib/string.h"
#include "client/client.h" #include "client/client.h"
#include "sysdep/unix/unix.h"
static char *opt_list = "s:v"; static char *opt_list = "s:v";
static int verbose; static int verbose;
@ -69,7 +70,7 @@ parse_args(int argc, char **argv)
/*** Input ***/ /*** Input ***/
static void server_send(char *); static void server_send(char *);
static void io_loop(int); static void select_loop(int);
/* HACK: libreadline internals we need to access */ /* HACK: libreadline internals we need to access */
extern int _rl_vis_botlin; extern int _rl_vis_botlin;
@ -112,7 +113,7 @@ got_line(char *cmd_buffer)
{ {
server_send(cmd); server_send(cmd);
input_hidden = -1; input_hidden = -1;
io_loop(0); select_loop(0);
input_hidden = 0; input_hidden = 0;
} }
free(cmd); free(cmd);
@ -316,7 +317,7 @@ server_read(void)
static fd_set select_fds; static fd_set select_fds;
static void static void
io_loop(int mode) select_loop(int mode)
{ {
server_reply = -1; server_reply = -1;
while (mode || server_reply < 0) while (mode || server_reply < 0)
@ -384,10 +385,10 @@ main(int argc, char **argv)
parse_args(argc, argv); parse_args(argc, argv);
cmd_build_tree(); cmd_build_tree();
server_connect(); server_connect();
io_loop(0); select_loop(0);
input_init(); input_init();
io_loop(1); select_loop(1);
return 0; return 0;
} }

View file

@ -34,6 +34,10 @@ typedef struct sockaddr_in6 sockaddr;
typedef struct sockaddr_in sockaddr; typedef struct sockaddr_in sockaddr;
#endif #endif
#ifndef SUN_LEN
#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path) + strlen ((ptr)->sun_path))
#endif
struct birdsock; struct birdsock;
void io_init(void); void io_init(void);