From 320f41735795b51c51a9f5c976a2335a9ec96e32 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Thu, 30 Mar 2000 10:43:37 +0000 Subject: Defined sk_close() which closes the socket safely even if called from socket hook. Replaces the SK_DELETED hack. Squashed a couple of bugs in handling of TCP sockets. --- lib/socket.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/socket.h b/lib/socket.h index 65ba9a2..147e5ce 100644 --- a/lib/socket.h +++ b/lib/socket.h @@ -38,10 +38,12 @@ typedef struct birdsock { int fd; /* System-dependent data */ node n; + int entered; } sock; sock *sk_new(pool *); /* Allocate new socket */ int sk_open(sock *); /* Open socket */ +void sk_close(sock *); /* Safe close of socket even from socket hook */ int sk_send(sock *, unsigned len); /* Send data, <0=err, >0=ok, 0=sleep */ int sk_send_to(sock *, unsigned len, ip_addr to, unsigned port); /* sk_send to given destination */ void sk_dump_all(void); @@ -66,7 +68,7 @@ sk_send_buffer_empty(sock *sk) #define SK_MAGIC 7 /* Internal use by sysdep code */ #define SK_UNIX_PASSIVE 8 #define SK_UNIX 9 -#define SK_DELETED 10 /* Set to this if you want to delete socket from err_hook */ +#define SK_DELETED 10 /* Internal use by sk_close */ /* * Multicast sockets are slightly different from the other ones: -- cgit v1.2.3