Diff for /libaitio/src/sock.c between versions 1.9 and 1.9.2.1

version 1.9, 2013/11/25 11:46:17 version 1.9.2.1, 2013/11/25 18:48:40
Line 135  end: Line 135  end:
 static void *  static void *
 io_txNet(sched_task_t *task)  io_txNet(sched_task_t *task)
 {  {
        int wlen;        int wlen, ret, len = TASK_DATLEN(task);
         sock_cli_t *cli = TASK_ARG(task);          sock_cli_t *cli = TASK_ARG(task);
         sock_t *s = (sock_t*) cli->cli_parent;          sock_t *s = (sock_t*) cli->cli_parent;
           u_char *buf = TASK_DATA(task);
           struct pollfd pfd[1];
   
        ioUpdTimerSocket(cli);        pfd->fd = TASK_FD(task);
         pfd->events = POLLOUT;
         pfd->revents = 0;
         for(; len > 0; len -= wlen, buf += wlen) {
                 ioUpdTimerSocket(cli);
   
        if (s->sock_type == SOCK_STREAM)                if ((ret = poll(pfd, 1, s->sock_timeout.tv_sec * 1000)) < 1 || 
                wlen = send(TASK_FD(task), TASK_DATA(task), TASK_DATLEN(task), 0);                                pfd->revents & (POLLNVAL | POLLERR | POLLHUP)) {
        else                        if (!ret)
                wlen = sendto(TASK_FD(task), TASK_DATA(task), TASK_DATLEN(task), 0,                                 continue;
                                &cli->cli_addr.sa, cli->cli_addr.sa.sa_len);                        schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);
        if (wlen < 1)                        break;
                schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);                }
 
                 if (s->sock_type == SOCK_STREAM)
                         wlen = send(TASK_FD(task), buf, len, 0);
                 else
                         wlen = sendto(TASK_FD(task), buf, len, 0, 
                                         &cli->cli_addr.sa, cli->cli_addr.sa.sa_len);
                 if (wlen < 1) {
                         schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);
                         break;
                 }
         }
   
         taskExit(task, NULL);          taskExit(task, NULL);
 }  }

Removed from v.1.9  
changed lines
  Added in v.1.9.2.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>