mirror of https://git.kore.io/kore.git
Add kore_sockopt().
Use it where we before were using setsockopt().
This commit is contained in:
parent
edc356ca60
commit
7f11e37161
|
@ -519,6 +519,7 @@ void kore_timer_remove(struct kore_timer *);
|
|||
struct kore_timer *kore_timer_add(void (*cb)(void *, u_int64_t),
|
||||
u_int64_t, void *, int);
|
||||
|
||||
int kore_sockopt(int, int, int);
|
||||
void kore_listener_cleanup(void);
|
||||
int kore_server_bind(const char *, const char *, const char *);
|
||||
#if !defined(KORE_NO_TLS)
|
||||
|
|
|
@ -418,9 +418,7 @@ kore_connection_nonblock(int fd, int nodelay)
|
|||
}
|
||||
|
||||
if (nodelay) {
|
||||
flags = 1;
|
||||
if (setsockopt(fd, IPPROTO_TCP,
|
||||
TCP_NODELAY, (char *)&flags, sizeof(flags)) == -1) {
|
||||
if (!kore_sockopt(fd, IPPROTO_TCP, TCP_NODELAY)) {
|
||||
kore_log(LOG_NOTICE,
|
||||
"failed to set TCP_NODELAY on %d", fd);
|
||||
}
|
||||
|
|
21
src/kore.c
21
src/kore.c
|
@ -283,8 +283,8 @@ kore_tls_info_callback(const SSL *ssl, int flags, int ret)
|
|||
int
|
||||
kore_server_bind(const char *ip, const char *port, const char *ccb)
|
||||
{
|
||||
int r;
|
||||
struct listener *l;
|
||||
int on, r;
|
||||
struct addrinfo hints, *results;
|
||||
|
||||
kore_debug("kore_server_bind(%s, %s)", ip, port);
|
||||
|
@ -320,13 +320,10 @@ kore_server_bind(const char *ip, const char *port, const char *ccb)
|
|||
return (KORE_RESULT_ERROR);
|
||||
}
|
||||
|
||||
on = 1;
|
||||
if (setsockopt(l->fd, SOL_SOCKET,
|
||||
SO_REUSEADDR, (const char *)&on, sizeof(on)) == -1) {
|
||||
if (!kore_sockopt(l->fd, SOL_SOCKET, SO_REUSEADDR)) {
|
||||
close(l->fd);
|
||||
kore_free(l);
|
||||
freeaddrinfo(results);
|
||||
kore_log(LOG_ERR, "setsockopt(): %s", errno_s);
|
||||
return (KORE_RESULT_ERROR);
|
||||
}
|
||||
|
||||
|
@ -372,6 +369,20 @@ kore_server_bind(const char *ip, const char *port, const char *ccb)
|
|||
return (KORE_RESULT_OK);
|
||||
}
|
||||
|
||||
int
|
||||
kore_sockopt(int fd, int what, int opt)
|
||||
{
|
||||
int on;
|
||||
|
||||
on = 1;
|
||||
if (setsockopt(fd, what, opt, (const char *)&on, sizeof(on)) == -1) {
|
||||
kore_log(LOG_ERR, "setsockopt(): %s", errno_s);
|
||||
return (KORE_RESULT_ERROR);
|
||||
}
|
||||
|
||||
return (KORE_RESULT_OK);
|
||||
}
|
||||
|
||||
void
|
||||
kore_listener_cleanup(void)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue