• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/src/router/busybox-1.x/networking/

Lines Matching refs:fd

27 	short  *fd2peer; /* one per registered fd */
31 int (*new_peer)(isrv_state_t *state, int fd);
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)
84 DPRINTF("register_fd(peer:%d,fd:%d)", peer, fd);
87 if (FD_COUNT <= fd) {
89 FD_COUNT = fd + 1;
94 while (n < fd) FD2PEER[n++] = -1;
97 DPRINTF("register_fd: FD2PEER[%d] = %d", fd, peer);
99 FD2PEER[fd] = peer;
104 void isrv_close_fd(isrv_state_t *state, int fd)
106 DPRINTF("close_fd(%d)", fd);
108 close(fd);
109 isrv_dont_want_rd(state, fd);
110 if (WR_COUNT) isrv_dont_want_wr(state, fd);
112 FD2PEER[fd] = -1;
113 if (fd == FD_COUNT-1) {
114 do fd--; while (fd >= 0 && FD2PEER[fd] == -1);
115 FD_COUNT = fd + 1;
145 int fd;
149 fd = FD_COUNT - 1;
150 while (fd >= 0) {
151 if (FD2PEER[fd] == peer) {
152 isrv_close_fd(state, fd);
153 fd--;
156 if (FD2PEER[fd] > peer)
157 FD2PEER[fd]--;
158 fd--;
175 static void handle_accept(isrv_state_t *state, int fd)
180 fcntl(fd, F_SETFL, (int)(ptrdiff_t)(PARAM_TBL[0]) | O_NONBLOCK);
181 newfd = accept(fd, NULL, 0);
182 fcntl(fd, F_SETFL, (int)(ptrdiff_t)(PARAM_TBL[0]));
185 /* Most probably someone gave us wrong fd type
202 int fd, peer;
218 fd = fds_pos * sizeof(long)*8; /* word# -> bit# */
220 if (FD_ISSET(fd, fds)) {
221 FD_CLR(fd, fds);
224 fd++;
229 if (fd >= fd_cnt) { /* paranoia */
230 DPRINTF("handle_fd_set: fd > fd_cnt?? (%d > %d)",
231 fd, fd_cnt);
234 DPRINTF("handle_fd_set: fd %d is active", fd);
235 peer = FD2PEER[fd];
239 handle_accept(state, fd);
242 DPRINTF("h(fd:%d)", fd);
243 if (h(fd, &PARAM_TBL[peer])) {
273 int (*new_peer)(isrv_state_t *state, int fd),
274 int (*do_rd)(int fd, void **),
275 int (*do_wr)(int fd, void **),