mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
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.
This commit is contained in:
@ -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:
|
||||
|
Reference in New Issue
Block a user