Diff for /libaitio/src/sock.c between versions 1.14 and 1.15

version 1.14, 2014/02/08 22:06:17 version 1.15, 2014/05/18 23:35:16
Line 53  io_closeClient(sched_task_t *task) Line 53  io_closeClient(sched_task_t *task)
         sock_t *s = (sock_t*) cli->cli_parent;          sock_t *s = (sock_t*) cli->cli_parent;
         int stat;          int stat;
   
           schedCancelby(s->sock_root, taskMAX, CRITERIA_ARG, cli, NULL);
   
         pthread_mutex_lock(&s->sock_mtx);          pthread_mutex_lock(&s->sock_mtx);
         TAILQ_REMOVE(&s->sock_cli, cli, cli_node);          TAILQ_REMOVE(&s->sock_cli, cli, cli_node);
         pthread_mutex_unlock(&s->sock_mtx);          pthread_mutex_unlock(&s->sock_mtx);
   
         schedCancelby(s->sock_root, taskMAX, CRITERIA_ARG, cli, NULL);  
   
         if (*cli->cli_name)          if (*cli->cli_name)
                 ioFreePTY(cli->cli_pty, cli->cli_name);                  ioFreePTY(cli->cli_pty, cli->cli_name);
         if (s->sock_prog) {          if (s->sock_prog) {
Line 211  io_rxNet(sched_task_t *task) Line 211  io_rxNet(sched_task_t *task)
         else {          else {
                 rlen = recvfrom(TASK_FD(task), AIT_GET_BUF(&cli->cli_buf[0]),                   rlen = recvfrom(TASK_FD(task), AIT_GET_BUF(&cli->cli_buf[0]), 
                                 AIT_LEN(&cli->cli_buf[0]), 0, &sa.sa, &salen);                                  AIT_LEN(&cli->cli_buf[0]), 0, &sa.sa, &salen);
                if (e_addrcmp(&cli->cli_addr, &sa, 42))                if (e_addrcmp(&cli->cli_addr, &sa, 42)) {
                        goto end;                        schedReadSelf(task);
                         taskExit(task, NULL);
                 }
         }          }
         if (rlen < 1)          if (rlen < 1)
                 schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);                  schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);
        else        else {
                 schedEvent(TASK_ROOT(task), io_txPty, cli, cli->cli_pty,                   schedEvent(TASK_ROOT(task), io_txPty, cli, cli->cli_pty, 
                                 AIT_GET_BUF(&cli->cli_buf[0]), rlen);                                  AIT_GET_BUF(&cli->cli_buf[0]), rlen);
end:                schedReadSelf(task);
        schedReadSelf(task);        }
 
         taskExit(task, NULL);          taskExit(task, NULL);
 }  }
   
Line 235  io_rxPty(sched_task_t *task) Line 238  io_rxPty(sched_task_t *task)
         rlen = read(TASK_FD(task), AIT_GET_BUF(&cli->cli_buf[1]), AIT_LEN(&cli->cli_buf[1]));          rlen = read(TASK_FD(task), AIT_GET_BUF(&cli->cli_buf[1]), AIT_LEN(&cli->cli_buf[1]));
         if (rlen < 1)          if (rlen < 1)
                 schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);                  schedEvent(TASK_ROOT(task), io_closeClient, cli, 0, NULL, 0);
        else        else {
                 schedEvent(TASK_ROOT(task), io_txNet, cli, cli->cli_fd,                   schedEvent(TASK_ROOT(task), io_txNet, cli, cli->cli_fd, 
                                 AIT_GET_BUF(&cli->cli_buf[1]), rlen);                                  AIT_GET_BUF(&cli->cli_buf[1]), rlen);
                   schedReadSelf(task);
           }
   
         schedReadSelf(task);  
         taskExit(task, NULL);          taskExit(task, NULL);
 }  }
   
Line 297  io_bridgeClient(sched_task_t *task) Line 301  io_bridgeClient(sched_task_t *task)
                         break;                          break;
                 case 0:                  case 0:
                         cli->cli_pty = pty;                          cli->cli_pty = pty;
                           ioSetRAWMode(STDIN_FILENO, NULL);
   
                         array_Args(cli->cli_cmdline, 0, " \t", &args);                          array_Args(cli->cli_cmdline, 0, " \t", &args);
                         argv = array_To(args);                          argv = array_To(args);

Removed from v.1.14  
changed lines
  Added in v.1.15


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