• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src/router/busybox/networking/

Lines Matching refs:state

31 	int   (*new_peer)(isrv_state_t *state, int fd);
40 #define FD2PEER (state->fd2peer)
41 #define PARAM_TBL (state->param_tbl)
42 #define TIMEO_TBL (state->timeo_tbl)
43 #define CURTIME (state->curtime)
44 #define TIMEOUT (state->timeout)
45 #define FD_COUNT (state->fd_count)
46 #define PEER_COUNT (state->peer_count)
47 #define WR_COUNT (state->wr_count)
50 void isrv_want_rd(isrv_state_t *state, int fd)
52 FD_SET(fd, &state->rd);
56 void isrv_want_wr(isrv_state_t *state, int fd)
58 if (!FD_ISSET(fd, &state->wr)) {
60 FD_SET(fd, &state->wr);
65 void isrv_dont_want_rd(isrv_state_t *state, int fd)
67 FD_CLR(fd, &state->rd);
71 void isrv_dont_want_wr(isrv_state_t *state, int fd)
73 if (FD_ISSET(fd, &state->wr)) {
75 FD_CLR(fd, &state->wr);
80 int isrv_register_fd(isrv_state_t *state, int peer, int fd)
104 void isrv_close_fd(isrv_state_t *state, int fd)
109 isrv_dont_want_rd(state, fd);
110 if (WR_COUNT) isrv_dont_want_wr(state, fd);
124 int isrv_register_peer(isrv_state_t *state, void *param)
142 static void remove_peer(isrv_state_t *state, int peer)
152 isrv_close_fd(state, fd);
175 static void handle_accept(isrv_state_t *state, int fd)
192 n = state->new_peer(state, newfd);
194 remove_peer(state, n); /* unsuccesful peer start */
198 static void handle_fd_set(isrv_state_t *state, fd_set *fds, int (*h)(int, void **))
239 handle_accept(state, fd);
245 remove_peer(state, peer);
252 static void handle_timeout(isrv_state_t *state, int (*do_timeout)(void **))
264 remove_peer(state, peer);
273 int (*new_peer)(isrv_state_t *state, int fd),
280 isrv_state_t *state = xzalloc(sizeof(*state));
281 state->new_peer = new_peer;
282 state->timeout = timeout;
285 isrv_register_peer(state, NULL);
286 isrv_register_fd(state, /*peer:*/ 0, listen_fd);
287 isrv_want_rd(state, listen_fd);
303 rd = state->rd;
305 wr = state->wr;
327 handle_timeout(state, do_timeout);
331 handle_fd_set(state, &rd, do_rd);
333 handle_fd_set(state, wrp, do_wr);