mirror of
https://github.com/darkk/redsocks.git
synced 2025-08-25 19:25:30 +00:00
More source code cleanup.
This commit is contained in:
parent
c50dd8b2b4
commit
8ad8d7eb41
12
redsocks.c
12
redsocks.c
@ -477,21 +477,13 @@ void redsocks_write_helper(
|
|||||||
static void redsocks_relay_connected(struct bufferevent *buffev, void *_arg)
|
static void redsocks_relay_connected(struct bufferevent *buffev, void *_arg)
|
||||||
{
|
{
|
||||||
redsocks_client *client = _arg;
|
redsocks_client *client = _arg;
|
||||||
int pseudo_errno;
|
|
||||||
|
|
||||||
assert(buffev == client->relay);
|
assert(buffev == client->relay);
|
||||||
|
|
||||||
redsocks_touch_client(client);
|
redsocks_touch_client(client);
|
||||||
|
|
||||||
pseudo_errno = redsocks_socket_geterrno(client, buffev);
|
if (!red_is_socket_connected_ok(buffev)) {
|
||||||
if (pseudo_errno == -1) {
|
redsocks_log_errno(client, LOG_NOTICE, "red_is_socket_connected_ok");
|
||||||
redsocks_log_errno(client, LOG_NOTICE, "redsocks_socket_geterrno");
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pseudo_errno) {
|
|
||||||
errno = pseudo_errno;
|
|
||||||
redsocks_log_errno(client, LOG_NOTICE, "connect");
|
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
17
utils.c
17
utils.c
@ -103,4 +103,21 @@ int fcntl_nonblock(int fd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int red_is_socket_connected_ok(struct bufferevent *buffev)
|
||||||
|
{
|
||||||
|
int pseudo_errno = red_socket_geterrno(buffev);
|
||||||
|
|
||||||
|
if (pseudo_errno == -1) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else if (pseudo_errno) {
|
||||||
|
errno = pseudo_errno;
|
||||||
|
log_errno(LOG_NOTICE, "connect");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* vim:set tabstop=4 softtabstop=4 shiftwidth=4: */
|
/* vim:set tabstop=4 softtabstop=4 shiftwidth=4: */
|
||||||
|
2
utils.h
2
utils.h
@ -26,6 +26,8 @@
|
|||||||
time_t redsocks_time(time_t *t);
|
time_t redsocks_time(time_t *t);
|
||||||
struct bufferevent* red_connect_relay(struct sockaddr_in *addr, evbuffercb writecb, everrorcb errorcb, void *cbarg);
|
struct bufferevent* red_connect_relay(struct sockaddr_in *addr, evbuffercb writecb, everrorcb errorcb, void *cbarg);
|
||||||
int red_socket_geterrno(struct bufferevent *buffev);
|
int red_socket_geterrno(struct bufferevent *buffev);
|
||||||
|
int red_is_socket_connected_ok(struct bufferevent *buffev);
|
||||||
|
|
||||||
int fcntl_nonblock(int fd);
|
int fcntl_nonblock(int fd);
|
||||||
|
|
||||||
/* vim:set tabstop=4 softtabstop=4 shiftwidth=4: */
|
/* vim:set tabstop=4 softtabstop=4 shiftwidth=4: */
|
||||||
|
Loading…
Reference in New Issue
Block a user