Diff for /embedaddon/libnet/src/libnet_build_arp.c between versions 1.1 and 1.1.1.2

version 1.1, 2012/02/21 22:14:23 version 1.1.1.2, 2013/07/22 11:54:42
Line 41 Line 41
   
   
 libnet_ptag_t  libnet_ptag_t
libnet_build_arp(u_int16_t hrd, u_int16_t pro, u_int8_t hln, u_int8_t pln,libnet_build_arp(uint16_t hrd, uint16_t pro, uint8_t hln, uint8_t pln,
u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha, u_int8_t *tpa,uint16_t op, const uint8_t *sha, const uint8_t *spa, const uint8_t *tha, const uint8_t *tpa,
u_int8_t *payload, u_int32_t payload_s, libnet_t *l, libnet_ptag_t ptag)const uint8_t *payload, uint32_t payload_s, libnet_t *l, libnet_ptag_t ptag)
 {  {
    u_int32_t n, h;    uint32_t n, h;
     libnet_pblock_t *p;      libnet_pblock_t *p;
     struct libnet_arp_hdr arp_hdr;      struct libnet_arp_hdr arp_hdr;
   
Line 74  u_int8_t *payload, u_int32_t payload_s, libnet_t *l, l Line 74  u_int8_t *payload, u_int32_t payload_s, libnet_t *l, l
     arp_hdr.ar_pln = pln;              /* protocol address length */      arp_hdr.ar_pln = pln;              /* protocol address length */
     arp_hdr.ar_op  = htons(op);        /* opcode command */      arp_hdr.ar_op  = htons(op);        /* opcode command */
   
    n = libnet_pblock_append(l, p, (u_int8_t *)&arp_hdr, LIBNET_ARP_H);    n = libnet_pblock_append(l, p, (uint8_t *)&arp_hdr, LIBNET_ARP_H);
     if (n == -1)      if (n == -1)
     {      {
         /* err msg set in libnet_pblock_append() */          /* err msg set in libnet_pblock_append() */
Line 105  u_int8_t *payload, u_int32_t payload_s, libnet_t *l, l Line 105  u_int8_t *payload, u_int32_t payload_s, libnet_t *l, l
         goto bad;          goto bad;
     }      }
   
    if ((payload && !payload_s) || (!payload && payload_s))    /* boilerplate payload sanity check / append macro */
    {    LIBNET_DO_PAYLOAD(l, p);
         snprintf(l->err_buf, LIBNET_ERRBUF_SIZE, 
                 "%s(): payload inconsistency\n", __func__); 
        goto bad; 
    } 
   
     if (payload && payload_s)  
     {  
         n = libnet_pblock_append(l, p, payload, payload_s);  
         if (n == -1)  
         {  
             /* err msg set in libnet_pblock_append() */  
             goto bad;  
         }  
     }  
   
     return (ptag ? ptag : libnet_pblock_update(l, p, h, LIBNET_PBLOCK_ARP_H));      return (ptag ? ptag : libnet_pblock_update(l, p, h, LIBNET_PBLOCK_ARP_H));
 bad:  bad:
     libnet_pblock_delete(l, p);      libnet_pblock_delete(l, p);
Line 129  bad: Line 115  bad:
 }  }
   
 libnet_ptag_t  libnet_ptag_t
libnet_autobuild_arp(u_int16_t op, u_int8_t *sha, u_int8_t *spa, u_int8_t *tha,libnet_autobuild_arp(uint16_t op, const uint8_t *sha, const uint8_t *spa, const uint8_t *tha,
u_int8_t *tpa, libnet_t *l)uint8_t *tpa, libnet_t *l)
 {  {
     u_short hrd;      u_short hrd;
           
Line 157  u_int8_t *tpa, libnet_t *l) Line 143  u_int8_t *tpa, libnet_t *l)
         4,                                      /* protocol addr size */          4,                                      /* protocol addr size */
         op,                                     /* operation type */          op,                                     /* operation type */
         sha,                                    /* sender hardware addr */          sha,                                    /* sender hardware addr */
        spa,                       /* sender protocol addr */        spa,                                    /* sender protocol addr */
         tha,                                    /* target hardware addr */          tha,                                    /* target hardware addr */
        tpa,                       /* target protocol addr */        tpa,                                    /* target protocol addr */
         NULL,                                   /* payload */          NULL,                                   /* payload */
         0,                                      /* payload size */          0,                                      /* payload size */
         l,                                      /* libnet context */          l,                                      /* libnet context */

Removed from v.1.1  
changed lines
  Added in v.1.1.1.2


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