mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-10-30 05:11:14 +00:00
Add container_of
This commit is contained in:
+2
-2
@@ -744,8 +744,8 @@ stat_update_cb()
|
||||
static void
|
||||
remote_timeout_cb(EV_P_ ev_timer *watcher, int revents)
|
||||
{
|
||||
remote_ctx_t *remote_ctx = (remote_ctx_t *)(((char *)watcher)
|
||||
- sizeof(ev_io));
|
||||
remote_ctx_t *remote_ctx
|
||||
= (remote_ctx_t *)container_of(watcher, remote_ctx_t, watcher);
|
||||
remote_t *remote = remote_ctx->remote;
|
||||
server_t *server = remote->server;
|
||||
|
||||
|
||||
+3
-2
@@ -328,8 +328,9 @@ server_send_cb(EV_P_ ev_io *w, int revents)
|
||||
static void
|
||||
remote_timeout_cb(EV_P_ ev_timer *watcher, int revents)
|
||||
{
|
||||
remote_ctx_t *remote_ctx = (remote_ctx_t *)(((char *)watcher)
|
||||
- sizeof(ev_io));
|
||||
remote_ctx_t *remote_ctx
|
||||
= (remote_ctx_t *)container_of(watcher, remote_ctx_t, watcher);
|
||||
|
||||
remote_t *remote = remote_ctx->remote;
|
||||
server_t *server = remote->server;
|
||||
|
||||
|
||||
+2
-2
@@ -1049,8 +1049,8 @@ block_list_clear_cb(EV_P_ ev_timer *watcher, int revents)
|
||||
static void
|
||||
server_timeout_cb(EV_P_ ev_timer *watcher, int revents)
|
||||
{
|
||||
server_ctx_t *server_ctx = (server_ctx_t *)(((char *)watcher)
|
||||
- sizeof(ev_io));
|
||||
server_ctx_t *server_ctx
|
||||
= (server_ctx_t *)container_of(watcher, server_ctx_t, watcher);
|
||||
server_t *server = server_ctx->server;
|
||||
remote_t *remote = server->remote;
|
||||
|
||||
|
||||
+3
-2
@@ -284,8 +284,9 @@ server_send_cb(EV_P_ ev_io *w, int revents)
|
||||
static void
|
||||
remote_timeout_cb(EV_P_ ev_timer *watcher, int revents)
|
||||
{
|
||||
remote_ctx_t *remote_ctx = (remote_ctx_t *)(((char *)watcher)
|
||||
- sizeof(ev_io));
|
||||
remote_ctx_t *remote_ctx
|
||||
= (remote_ctx_t *)container_of(watcher, remote_ctx_t, watcher);
|
||||
|
||||
remote_t *remote = remote_ctx->remote;
|
||||
server_t *server = remote->server;
|
||||
|
||||
|
||||
+2
-2
@@ -549,8 +549,8 @@ close_and_free_remote(EV_P_ remote_ctx_t *ctx)
|
||||
static void
|
||||
remote_timeout_cb(EV_P_ ev_timer *watcher, int revents)
|
||||
{
|
||||
remote_ctx_t *remote_ctx = (remote_ctx_t *)(((char *)watcher)
|
||||
- sizeof(ev_io));
|
||||
remote_ctx_t *remote_ctx
|
||||
= (remote_ctx_t *)container_of(watcher, remote_ctx_t, watcher);
|
||||
|
||||
if (verbose) {
|
||||
LOGI("[udp] connection timeout");
|
||||
|
||||
@@ -228,4 +228,9 @@ void *ss_realloc(void *ptr, size_t new_size);
|
||||
ptr = NULL; \
|
||||
} while (0)
|
||||
|
||||
#ifndef container_of
|
||||
#define container_of(ptr, type, member) \
|
||||
((type *) ((char *)(ptr) - offsetof(type, member)))
|
||||
#endif
|
||||
|
||||
#endif // _UTILS_H
|
||||
|
||||
Reference in New Issue
Block a user