diff --git a/lib/socket.h b/lib/socket.h index b0c3eda2..0ee43b52 100644 --- a/lib/socket.h +++ b/lib/socket.h @@ -48,7 +48,9 @@ typedef struct birdsock { char *password; /* Password for MD5 authentication */ } sock; -sock *sk_new(pool *); /* Allocate new socket */ +sock *sock_new(pool *); /* Allocate new socket */ +#define sk_new(X) sock_new(X) /* Wrapper to avoid name collision with OpenSSL */ + int sk_open(sock *); /* Open socket */ 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 */ diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index 475d660c..f91b5278 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -588,9 +588,12 @@ static struct resclass sk_class = { * This function creates a new socket resource. If you want to use it, * you need to fill in all the required fields of the structure and * call sk_open() to do the actual opening of the socket. + * + * The real function name is sock_new(), sk_new() is a macro wrapper + * to avoid collision with OpenSSL. */ sock * -sk_new(pool *p) +sock_new(pool *p) { sock *s = ralloc(p, &sk_class); s->pool = p;