Diff for /ansh/src/utils.c between versions 1.1.1.1.2.1 and 1.1.1.1.2.2

version 1.1.1.1.2.1, 2011/10/07 13:41:26 version 1.1.1.1.2.2, 2011/10/10 09:11:48
Line 218  icmpSend(int s, u_short id, char flg, u_int crypted, u Line 218  icmpSend(int s, u_short id, char flg, u_int crypted, u
 }  }
   
 int  int
pktSend(int s, u_short id, char flg, u_char *data, int datlen, struct ether_addr *ea)pktSend(int s, u_short id, char flg, u_int crypted, u_char *data, int datlen, struct 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 239  pktSend(int s, u_short id, char flg, u_char *data, int Line 239  pktSend(int s, u_short id, char flg, u_char *data, int
         hdr->ansh_ver = ANSH_VERSION;          hdr->ansh_ver = ANSH_VERSION;
         hdr->ansh_flg = flg;          hdr->ansh_flg = flg;
         hdr->ansh_len = htons(datlen + sizeof(struct ansh_hdr));          hdr->ansh_len = htons(datlen + sizeof(struct ansh_hdr));
           hdr->ansh_nonce = htonl(crypted);
         hdr->ansh_crc = 0;          hdr->ansh_crc = 0;
         hdr->ansh_crc = htonl(crcAdler((u_char*) hdr, ntohs(hdr->ansh_len)));          hdr->ansh_crc = htonl(crcAdler((u_char*) hdr, ntohs(hdr->ansh_len)));
   
Line 257  pktSend(int s, u_short id, char flg, u_char *data, int Line 258  pktSend(int s, u_short id, char flg, u_char *data, int
 }  }
   
 char  char
pktRecv(int s, u_char * __restrict data, int * __restrict datlen, struct ether_header *eth)pktRecv(int s, u_int * __restrict crypted, u_char * __restrict data, int * __restrict datlen, 
                 struct ether_header *eth)
 {  {
         int ret = 0;          int ret = 0;
         struct bpf_hdr *bpf;          struct bpf_hdr *bpf;
Line 300  pktRecv(int s, u_char * __restrict data, int * __restr Line 302  pktRecv(int s, u_char * __restrict data, int * __restr
                 free(buf);                  free(buf);
                 return ANSH_FLG_ERR;                  return ANSH_FLG_ERR;
         }          }
           if (crypted) {
                   if (hdr->ansh_nonce && !*crypted) {
                           VERB(3) LOG("Channel INSECURED:: Crypted communication not supported at this moment ...");
                           return ANSH_FLG_ERR;
                   }
                   if (!hdr->ansh_nonce && *crypted) {
                           VERB(3) LOG("Channel SECURED:: Plain text communication not supported at this moment ...");
                           return ANSH_FLG_ERR;
                   }
   
                   *crypted = ntohl(hdr->ansh_nonce);
           }
   
         /* check crc of packet */          /* check crc of packet */
         crc = hdr->ansh_crc;          crc = hdr->ansh_crc;
         hdr->ansh_crc ^= hdr->ansh_crc;          hdr->ansh_crc ^= hdr->ansh_crc;

Removed from v.1.1.1.1.2.1  
changed lines
  Added in v.1.1.1.1.2.2


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