Diff for /ansh/src/daemon2.c between versions 1.1.1.1.2.6 and 1.1.1.1.2.8

version 1.1.1.1.2.6, 2011/10/13 16:08:52 version 1.1.1.1.2.8, 2011/10/14 12:03:10
Line 139  pktRx(sched_task_t *task) Line 139  pktRx(sched_task_t *task)
                         ioChgWinPTY(proc->proc_pty, ntohs(b[0]), ntohs(b[1]), ntohs(b[2]), ntohs(b[3]));                          ioChgWinPTY(proc->proc_pty, ntohs(b[0]), ntohs(b[1]), ntohs(b[2]), ntohs(b[3]));
                         /* if not started login, lets start & go! */                          /* if not started login, lets start & go! */
                         if (!proc->proc_pid) {                          if (!proc->proc_pid) {
                                memcpy(&proc->proc_ea.octet, &eth.ether_shost, ETHER_ADDR_LEN);                                memcpy(&proc->proc_ea, &eth.ether_shost, ETHER_ADDR_LEN);
                                 spawnLogin(task, proc);                                  spawnLogin(task, proc);
                         }                          }
                 default:                  default:
Line 174  fdTx(sched_task_t *task) Line 174  fdTx(sched_task_t *task)
         if (proc->proc_flg != ANSH_FLG_CPOUT || !proc->proc_pid)          if (proc->proc_flg != ANSH_FLG_CPOUT || !proc->proc_pid)
                 return NULL;                  return NULL;
   
           /*
         if (waitpid(proc->proc_pid, &wlen, WNOHANG)) {          if (waitpid(proc->proc_pid, &wlen, WNOHANG)) {
                 ioFreePTY(TASK_FD(task), proc->proc_ttyname);                  ioFreePTY(TASK_FD(task), proc->proc_ttyname);
                 schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);                  schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);
Line 186  fdTx(sched_task_t *task) Line 187  fdTx(sched_task_t *task)
                 schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);                  schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);
                 return NULL;                  return NULL;
         }          }
           */
   
         /* if Timeout defined, disarm timer */          /* if Timeout defined, disarm timer */
         if (Timeout)          if (Timeout)
Line 196  fdTx(sched_task_t *task) Line 198  fdTx(sched_task_t *task)
                 case -1:                  case -1:
                         ERR("write2tty #%d - %s", errno, strerror(errno));                          ERR("write2tty #%d - %s", errno, strerror(errno));
                         /* exit from shell and release tty */                          /* exit from shell and release tty */
                           /*
                         waitpid(proc->proc_pid, &wlen, 0);                          waitpid(proc->proc_pid, &wlen, 0);
                         ioFreePTY(TASK_FD(task), proc->proc_ttyname);                          ioFreePTY(TASK_FD(task), proc->proc_ttyname);
                         schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);                          schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);
Line 206  fdTx(sched_task_t *task) Line 209  fdTx(sched_task_t *task)
                         proc->proc_rlen_[FD2NET] = 0;                          proc->proc_rlen_[FD2NET] = 0;
   
                         schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);                          schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);
                           */
                         return NULL;                          return NULL;
                 default:                  default:
                         proc->proc_flg = ANSH_FLG_OK;                          proc->proc_flg = ANSH_FLG_OK;
Line 236  fdRx(sched_task_t *task) Line 240  fdRx(sched_task_t *task)
         if (!proc->proc_pid)          if (!proc->proc_pid)
                 return NULL;                  return NULL;
   
           /*
         if (waitpid(proc->proc_pid, &rlen, WNOHANG)) {          if (waitpid(proc->proc_pid, &rlen, WNOHANG)) {
                 ioFreePTY(TASK_FD(task), proc->proc_ttyname);                  ioFreePTY(TASK_FD(task), proc->proc_ttyname);
                 schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);                  schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);
Line 248  fdRx(sched_task_t *task) Line 253  fdRx(sched_task_t *task)
                 schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);                  schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);
                 return NULL;                  return NULL;
         }          }
           */
   
         /* if Timeout defined, disarm timer */          /* if Timeout defined, disarm timer */
         if (Timeout)          if (Timeout)
Line 261  fdRx(sched_task_t *task) Line 267  fdRx(sched_task_t *task)
                         ERR("readtty #%d - %s", errno, strerror(errno));                          ERR("readtty #%d - %s", errno, strerror(errno));
                 case 0:                  case 0:
                         /* exit from shell and release tty */                          /* exit from shell and release tty */
                           /*
                         waitpid(proc->proc_pid, &rlen, 0);                          waitpid(proc->proc_pid, &rlen, 0);
                         ioFreePTY(TASK_FD(task), proc->proc_ttyname);                          ioFreePTY(TASK_FD(task), proc->proc_ttyname);
                         schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);                          schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL);
Line 272  fdRx(sched_task_t *task) Line 279  fdRx(sched_task_t *task)
                         proc->proc_rlen_[FD2NET] = 0;                          proc->proc_rlen_[FD2NET] = 0;
   
                         schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);                          schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock);
                           */
                         return NULL;                          return NULL;
                 default:                  default:
                         proc->proc_flg = ANSH_FLG_OK;                          proc->proc_flg = ANSH_FLG_OK;
Line 309  spawnLogin(sched_task_t *task, struct tagProc *proc) Line 317  spawnLogin(sched_task_t *task, struct tagProc *proc)
                 case 0:                  case 0:
                         printf("anshd ELWIX remote management system (%s)\n\n", proc->proc_ttyname);                          printf("anshd ELWIX remote management system (%s)\n\n", proc->proc_ttyname);
                         strlcpy(str, "-hansh@", sizeof str);                          strlcpy(str, "-hansh@", sizeof str);
                        ether_ntoa_r(&proc->proc_ea, str + 7);                        io_ether_ntoa((const struct io_ether_addr*) &proc->proc_ea, str + 7, 18);
   
                         execl("/usr/bin/login", "login", str, NULL);                          execl("/usr/bin/login", "login", str, NULL);
                         /* never reached */                          /* never reached */

Removed from v.1.1.1.1.2.6  
changed lines
  Added in v.1.1.1.1.2.8


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