diff options
Diffstat (limited to 'src/pevent.h')
-rw-r--r-- | src/pevent.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/pevent.h b/src/pevent.h index da09f59..c7b61e1 100644 --- a/src/pevent.h +++ b/src/pevent.h @@ -8,17 +8,25 @@ #define POTD_MAXFD 32 #define POTD_MAXEVENTS 64 +typedef enum forward_state { + CON_OK, CON_IN_TERMINATED, CON_OUT_TERMINATED, + CON_IN_ERROR, CON_OUT_ERROR +} forward_state; + typedef struct event_ctx { int epoll_fd; int active; struct epoll_event events[POTD_MAXEVENTS]; + int current_event; } event_ctx; -typedef int (*on_event_cb) (int fd, void *user_data); +typedef int (*on_event_cb) (event_ctx *ev_ctx, int fd, void *user_data); void event_init(event_ctx **ctx); +void event_free(event_ctx **ctx); + int event_setup(event_ctx *ctx); int event_add_sock(event_ctx *ctx, psocket *sock); @@ -27,4 +35,7 @@ int event_add_fd(event_ctx *ctx, int fd); int event_loop(event_ctx *ctx, on_event_cb on_event, void *user_data); +forward_state +event_forward_connection(event_ctx *ctx, int dest_fd); + #endif |