From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- release/src/router/busybox/networking/isrv.h | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 release/src/router/busybox/networking/isrv.h (limited to 'release/src/router/busybox/networking/isrv.h') diff --git a/release/src/router/busybox/networking/isrv.h b/release/src/router/busybox/networking/isrv.h new file mode 100644 index 00000000..f20714df --- /dev/null +++ b/release/src/router/busybox/networking/isrv.h @@ -0,0 +1,37 @@ +/* vi: set sw=4 ts=4: */ +/* + * Generic non-forking server infrastructure. + * Intended to make writing telnetd-type servers easier. + * + * Copyright (C) 2007 Denys Vlasenko + * + * Licensed under GPL version 2, see file LICENSE in this tarball for details. + */ + +PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN + +/* opaque structure */ +struct isrv_state_t; +typedef struct isrv_state_t isrv_state_t; + +/* callbacks */ +void isrv_want_rd(isrv_state_t *state, int fd); +void isrv_want_wr(isrv_state_t *state, int fd); +void isrv_dont_want_rd(isrv_state_t *state, int fd); +void isrv_dont_want_wr(isrv_state_t *state, int fd); +int isrv_register_fd(isrv_state_t *state, int peer, int fd); +void isrv_close_fd(isrv_state_t *state, int fd); +int isrv_register_peer(isrv_state_t *state, void *param); + +/* driver */ +void isrv_run( + int listen_fd, + int (*new_peer)(isrv_state_t *state, int fd), + int (*do_rd)(int fd, void **), + int (*do_wr)(int fd, void **), + int (*do_timeout)(void **), + int timeout, + int linger_timeout +); + +POP_SAVED_FUNCTION_VISIBILITY -- cgit v1.2.3-54-g00ecf