Diff for /ansh/src/utils.c between versions 1.1.1.1.2.8 and 1.1.1.1.2.12

version 1.1.1.1.2.8, 2011/10/13 16:08:52 version 1.1.1.1.2.12, 2011/10/14 12:45:09
Line 120  PrepareL2(const char *psDev, int *bpflen) Line 120  PrepareL2(const char *psDev, int *bpflen)
                 return -1;                  return -1;
         }          }
   
         /*  
         n = fcntl(h, F_GETFL);          n = fcntl(h, F_GETFL);
         fcntl(h, F_SETFL, n | O_NONBLOCK);          fcntl(h, F_SETFL, n | O_NONBLOCK);
         */  
   
         VERB(3) LOG("Openned device handle %d with bpf buflen %d", h, *bpflen);          VERB(3) LOG("Openned device handle %d with bpf buflen %d", h, *bpflen);
         return h;          return h;
Line 277  icmpSend(int s, u_int seq, u_short id, char flg, u_int Line 275  icmpSend(int s, u_int seq, u_short id, char flg, u_int
                 VERB(4) LOG("Put packet with len=%d", ret);                  VERB(4) LOG("Put packet with len=%d", ret);
         if (ret != sizeof(struct icmp) + sizeof(struct ansh_hdr) + datlen) {          if (ret != sizeof(struct icmp) + sizeof(struct ansh_hdr) + datlen) {
                 VERB(3) LOG("Sended data %d is different from source data len %d", ret,                   VERB(3) LOG("Sended data %d is different from source data len %d", ret, 
                                sizeof(struct icmp) + sizeof(struct ansh_hdr) + datlen);                                (int) (sizeof(struct icmp) + sizeof(struct ansh_hdr) + datlen));
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         }          }
   
Line 285  icmpSend(int s, u_int seq, u_short id, char flg, u_int Line 283  icmpSend(int s, u_int seq, u_short id, char flg, u_int
 }  }
   
 static int  static int
_pkt_Send(int s, u_int seq, char flg, u_int crypted, u_char *data, int datlen, struct ether_addr *ea)_pkt_Send(int s, u_int seq, char flg, u_int crypted, u_char *data, int datlen, struct io_ether_addr *ea)
 {  {
         u_char *pos, buf[USHRT_MAX] = { 0 };          u_char *pos, buf[USHRT_MAX] = { 0 };
         struct ether_header *e = (struct ether_header*) buf;          struct ether_header *e = (struct ether_header*) buf;
Line 297  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u Line 295  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
   
         e->ether_type = ntohs(ANSH_ID);          e->ether_type = ntohs(ANSH_ID);
        memcpy(e->ether_dhost, ea->octet, ETHER_ADDR_LEN);        memcpy(e->ether_dhost, ea->ether_addr_octet, ETHER_ADDR_LEN);
         hdr = (struct ansh_hdr*) (buf + ETHER_HDR_LEN);          hdr = (struct ansh_hdr*) (buf + ETHER_HDR_LEN);
         pos = ((u_char*) hdr) + sizeof(struct ansh_hdr);          pos = ((u_char*) hdr) + sizeof(struct ansh_hdr);
   
Line 318  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u Line 316  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u
                 VERB(4) LOG("Put packet with len=%d", ret);                  VERB(4) LOG("Put packet with len=%d", ret);
         if (ret != ETHER_HDR_LEN + sizeof(struct ansh_hdr) + datlen) {          if (ret != ETHER_HDR_LEN + sizeof(struct ansh_hdr) + datlen) {
                 VERB(3) LOG("Sended data %d is different from source data len %d", ret,                   VERB(3) LOG("Sended data %d is different from source data len %d", ret, 
                                ETHER_HDR_LEN + sizeof(struct ansh_hdr) + datlen);                                (int) (ETHER_HDR_LEN + sizeof(struct ansh_hdr) + datlen));
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         }          }
   
Line 326  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u Line 324  _pkt_Send(int s, u_int seq, char flg, u_int crypted, u
 }  }
   
 int  int
pktSend(int s, u_int seq, char flg, u_int crypted, u_char *data, int datlen, struct ether_addr *ea)pktSend(int s, u_int seq, char flg, u_int crypted, u_char *data, int datlen, struct io_ether_addr *ea)
 {  {
         int wlen, ret = 0;          int wlen, ret = 0;
         u_char *pos = data;          u_char *pos = data;
Line 509  cryptBuffer(u_char *buf, int rlen, u_int ctr) Line 507  cryptBuffer(u_char *buf, int rlen, u_int ctr)
         memcpy(ivec + 8, &ctr, sizeof ctr);          memcpy(ivec + 8, &ctr, sizeof ctr);
         memcpy(ivec + 12, &rctr, sizeof rctr);          memcpy(ivec + 12, &rctr, sizeof rctr);
   
        if (io_ctr_AES(buf, rlen, &str, (u_char*) "_ansh_ELWIX_", ivec) == -1)        if (io_ctr_AES(buf, rlen, &str, (u_char*) Key, ivec) == -1)
                 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.1.1.1.2.8  
changed lines
  Added in v.1.1.1.1.2.12


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