diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 13:58:15 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2015-01-03 13:58:15 +0100 |
commit | 4aca87515a5083ae0e31ce3177189fd43b6d05ac (patch) | |
tree | 7b1d9a31393ca090757dc6f0d3859b4fcd93f271 /release/src/router/busybox/networking/isrv.h | |
parent | 008d0be72b2f160382c6e880765e96b64a050c65 (diff) | |
download | tomato-4aca87515a5083ae0e31ce3177189fd43b6d05ac.tar.gz tomato-4aca87515a5083ae0e31ce3177189fd43b6d05ac.tar.bz2 |
patch to Vanilla Tomato 1.28
Diffstat (limited to 'release/src/router/busybox/networking/isrv.h')
-rw-r--r-- | release/src/router/busybox/networking/isrv.h | 37 |
1 files changed, 37 insertions, 0 deletions
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 |