Diff for /ansh/src/proc.c between versions 1.3 and 1.4

version 1.3, 2012/01/23 10:34:13 version 1.4, 2012/07/22 22:41:33
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 55  InitProc(int h, io_sockaddr_t *sa, u_short id, int len Line 55  InitProc(int h, io_sockaddr_t *sa, u_short id, int len
   
         FTRACE(5);          FTRACE(5);
   
        proc = malloc(sizeof(struct tagProc));        proc = io_malloc(sizeof(struct tagProc));
         if (!proc) {          if (!proc) {
                 ERR("Not enough memory #%d - %s", errno, strerror(errno));                  ERR("Not enough memory #%d - %s", errno, strerror(errno));
                 return NULL;                  return NULL;
Line 67  InitProc(int h, io_sockaddr_t *sa, u_short id, int len Line 67  InitProc(int h, io_sockaddr_t *sa, u_short id, int len
                 memcpy(&proc->proc_cli, sa, sizeof(io_sockaddr_t));                  memcpy(&proc->proc_cli, sa, sizeof(io_sockaddr_t));
   
         proc->proc_blen = len;          proc->proc_blen = len;
        proc->proc_buf_[0] = malloc(proc->proc_blen);        proc->proc_buf_[0] = io_malloc(proc->proc_blen);
         if (!proc->proc_buf_[0]) {          if (!proc->proc_buf_[0]) {
                free(proc);                io_free(proc);
                 proc = NULL;                  proc = NULL;
         }          }
        proc->proc_buf_[1] = malloc(proc->proc_blen);        proc->proc_buf_[1] = io_malloc(proc->proc_blen);
         if (!proc->proc_buf_[1]) {          if (!proc->proc_buf_[1]) {
                free(proc->proc_buf_[0]);                io_free(proc->proc_buf_[0]);
                free(proc);                io_free(proc);
                 proc = NULL;                  proc = NULL;
         }          }
   
Line 105  FreeProc(struct tagProc ** __restrict proc) Line 105  FreeProc(struct tagProc ** __restrict proc)
                 return;                  return;
   
         if ((*proc)->proc_buf_[1])          if ((*proc)->proc_buf_[1])
                free((*proc)->proc_buf_[1]);                io_free((*proc)->proc_buf_[1]);
         if ((*proc)->proc_buf_[0])          if ((*proc)->proc_buf_[0])
                free((*proc)->proc_buf_[0]);                io_free((*proc)->proc_buf_[0]);
        free(*proc);        io_free(*proc);
         *proc = NULL;          *proc = NULL;
 }  }
   
Line 121  DestroyProc() Line 121  DestroyProc()
                 SLIST_REMOVE_HEAD(&pH, proc_next);                  SLIST_REMOVE_HEAD(&pH, proc_next);
                 FreeProc(&proc);                  FreeProc(&proc);
         }          }
   }
   
   
   int
   stopProcess(sched_root_task_t * __restrict root, proc_head_t * __restrict h, pid_t pid, sched_task_func_t func)
   {
           struct tagProc *p;
   
           FTRACE(3);
   
           SLIST_FOREACH(p, h, proc_next)
                   if (p->proc_pid == pid) {
                           break;
                   }
           VERB(3) LOG("pid=%d found=%p\n", pid, p);
           if (!p)
                   return 1;
   
           ioFreePTY(p->proc_pty, p->proc_ttyname);
           if (p->proc_pty)
                   schedCancelby(root, taskMAX, CRITERIA_FD, (void*) ((intptr_t) p->proc_pty), NULL);
   
           p->proc_pty = 0;
           p->proc_pid = 0;
           p->proc_seq = 0;
           p->proc_flg = ANSH_FLG_EOF;
           p->proc_rlen_[FD2NET] = 0;
   
           schedCallOnce(root, func, p, p->proc_sock, NULL, 0);
           return 0;
 }  }

Removed from v.1.3  
changed lines
  Added in v.1.4


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