Diff for /ansh/src/utils.c between versions 1.3 and 1.3.2.3

version 1.3, 2012/01/23 10:34:13 version 1.3.2.3, 2012/05/23 15:41:38
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 307  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u Line 307  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u
                 str = cryptBuffer(pos, datlen, Crypted);                  str = cryptBuffer(pos, datlen, Crypted);
                 if (str) {                  if (str) {
                         memcpy(pos, str, datlen);                          memcpy(pos, str, datlen);
                        free(str);                        io_free(str);
                 }                  }
         }          }
   
Line 419  _pkt_Recv(u_char * __restrict buf, int rlen, u_int * _ Line 419  _pkt_Recv(u_char * __restrict buf, int rlen, u_int * _
                         if (str) {                          if (str) {
                                 memcpy(buf + bpf->bh_hdrlen + ETHER_HDR_LEN + sizeof(struct ansh_hdr),                                   memcpy(buf + bpf->bh_hdrlen + ETHER_HDR_LEN + sizeof(struct ansh_hdr), 
                                                 str, *datlen);                                                  str, *datlen);
                                free(str);                                io_free(str);
                         }                          }
                 }                  }
   
Line 446  pktRecv(int s, u_int * __restrict seq, u_int * __restr Line 446  pktRecv(int s, u_int * __restrict seq, u_int * __restr
         else          else
                 memset(data, 0, *datlen);                  memset(data, 0, *datlen);
   
        if (!(buf = malloc(*datlen))) {        if (!(buf = io_malloc(*datlen))) {
                 ERR("malloc() #%d - %s", errno, strerror(errno));                  ERR("malloc() #%d - %s", errno, strerror(errno));
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         }          }
Line 454  pktRecv(int s, u_int * __restrict seq, u_int * __restr Line 454  pktRecv(int s, u_int * __restrict seq, u_int * __restr
         rlen = read(s, buf, *datlen);          rlen = read(s, buf, *datlen);
         if (rlen == -1) {          if (rlen == -1) {
                 ERR("Receive packet() #%d - %s", errno, strerror(errno));                  ERR("Receive packet() #%d - %s", errno, strerror(errno));
                free(buf);                io_free(buf);
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         } else          } else
                 VERB(4) LOG("Get packet with len=%d", rlen);                  VERB(4) LOG("Get packet with len=%d", rlen);
Line 462  pktRecv(int s, u_int * __restrict seq, u_int * __restr Line 462  pktRecv(int s, u_int * __restrict seq, u_int * __restr
         /* check header len */          /* check header len */
         if (rlen < (sizeof(struct bpf_hdr) + ETHER_HDR_LEN + sizeof(struct ansh_hdr))) {          if (rlen < (sizeof(struct bpf_hdr) + ETHER_HDR_LEN + sizeof(struct ansh_hdr))) {
                 VERB(1) LOG("Discard packet too short %d ...", rlen);                  VERB(1) LOG("Discard packet too short %d ...", rlen);
                free(buf);                io_free(buf);
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         } else {          } else {
                 bpf = (struct bpf_hdr*) buf;                  bpf = (struct bpf_hdr*) buf;
Line 473  pktRecv(int s, u_int * __restrict seq, u_int * __restr Line 473  pktRecv(int s, u_int * __restrict seq, u_int * __restr
         ptr = next = buf;          ptr = next = buf;
         ptrlen = nextlen = rlen;          ptrlen = nextlen = rlen;
         if ((flg = _pkt_Recv(ptr, ptrlen, seq, crypted, pos, &buflen, &next, &nextlen)) == -1) {          if ((flg = _pkt_Recv(ptr, ptrlen, seq, crypted, pos, &buflen, &next, &nextlen)) == -1) {
                free(buf);                io_free(buf);
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         } else {          } else {
                 pos += buflen;                  pos += buflen;
Line 492  pktRecv(int s, u_int * __restrict seq, u_int * __restr Line 492  pktRecv(int s, u_int * __restrict seq, u_int * __restr
                         ptrlen = nextlen;                          ptrlen = nextlen;
                 }                  }
   
        free(buf);        io_free(buf);
   
         return flg;          return flg;
 }  }
Line 534  cryptBuffer(u_char *buf, int rlen, u_int ctr) Line 534  cryptBuffer(u_char *buf, int rlen, u_int ctr)
                 return NULL;                  return NULL;
   
         return str;          return str;
 }  
   
 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, NULL, 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);  
         return 0;  
 }  }

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


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