Changeset 2584

Show
Ignore:
Timestamp:
08/10/07 17:28:42 (1 year ago)
Author:
dhozac
Message:

Fix setting the broadcast address.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/syscall_netadd-net.hc

    r2578 r2584  
    2727  size_t                                i; 
    2828 
    29   k_info.type             = info->vna_type & (VC_NXA_TYPE_IPV4|VC_NXA_TYPE_IPV6); 
     29  k_info.type             = info->vna_type & (VC_NXA_TYPE_IPV4|VC_NXA_TYPE_IPV6|VC_NXA_MOD_BCAST); 
    3030  k_info.count            = 1; 
    31   switch (info->vna_type & ~VC_NXA_TYPE_ADDR) { 
     31 
     32  if ((k_info.type | VC_NXA_TYPE_ADDR) != info->vna_type) { 
     33    errno = EINVAL; 
     34    return -1; 
     35  } 
     36 
     37  switch (k_info.type) { 
    3238    case VC_NXA_TYPE_IPV4: 
     39    case VC_NXA_TYPE_IPV4 | VC_NXA_MOD_BCAST: 
    3340      k_info.ip[0].s_addr   = info->vna_v4_ip.s_addr; 
    3441      k_info.mask[0].s_addr = info->vna_v4_mask.s_addr; 
     
    3946      k_info.mask[0].s_addr = info->vna_prefix; 
    4047      break; 
    41     default: 
    42       errno = EINVAL; 
    43       return -1; 
    4448  } 
    4549 
  • trunk/src/naddress.c

    r2578 r2584  
    348348  } 
    349349  (*ips)->a.vna_v4_ip.s_addr = bcast; 
    350   (*ips)->a.vna_type = VC_NXA_TYPE_IPV4 | VC_NXA_MOD_BCAST
     350  (*ips)->a.vna_type = VC_NXA_TYPE_IPV4 | VC_NXA_MOD_BCAST | VC_NXA_TYPE_ADDR
    351351  (*ips)->next = calloc(1, sizeof(struct vc_ips)); 
    352352  *ips = (*ips)->next;