/* access the number of nets requested in the Query */
network_count = *((char *)(ddp_received->data) + 1);
- NetAsked = (u_short *)(ddp_received->data+ 2);
+ NetAsked = (u_short *)(ddp_received->data + 2);
/* check the validity of the Query packet */
reply_length = 2; /* 1st byte is ZIP reply code, 2nd is network count */
for (i = 0 ; i < network_count ; i ++, NetAsked++) {
- Entry = rt_blookup(*NetAsked);
+ Entry = rt_blookup(ntohs(*NetAsked));
if (Entry != NULL && ((Entry->EntryState & 0x0F) >= RTE_STATE_SUSPECT) &&
RT_ALL_ZONES_KNOWN(Entry)) { /* this net is well known... */
* and build a separate packet for each extended network requested
*/
- zip_send_ext_reply_to_query(mreceived, ifID, Entry, *NetAsked);
+ zip_send_ext_reply_to_query(mreceived, ifID, Entry, ntohs(*NetAsked));
}
}
register at_ddp_t *ddp;
register at_atp_t *atp;
register at_zip_t *zip;
- register u_long user_bytes;
+ u_char user_bytes[4];
register u_short user_byte;
/* variables for ZipNotify processing */
/* Get the user bytes in network order */
- user_bytes = UAL_VALUE(atp->user_bytes);
- user_byte = user_bytes >> 24; /* Get the zeroth byte */
+ *((u_long*)user_bytes) = UAL_VALUE(atp->user_bytes);
+ user_byte = user_bytes[0]; /* Get the zeroth byte */
dPrintf(D_M_ZIP, D_L_INPUT,
("zip_input: received a ZIP_ATP command=%d\n", user_byte));
register at_atp_t *atp;
register at_ddp_t *ddp;
register at_zip_t *zip;
- register u_long user_bytes;
+ u_char user_bytes[4];
register int user_byte;
ddp = (at_ddp_t *)gbuf_rptr(m);
else
atp = (at_atp_t *)(gbuf_rptr(gbuf_cont(m)));
/* Get the user bytes in network order */
- user_bytes = UAL_VALUE(atp->user_bytes);
- user_byte = user_bytes >> 24; /* Get the zeroth byte */
+ *((u_long*)user_bytes) = UAL_VALUE(atp->user_bytes);
+ user_byte = user_bytes[0]; /* Get the zeroth byte */
if ((user_byte == ZIP_GETMYZONE) ||
(user_byte == ZIP_GETZONELIST) ||
(user_byte == ZIP_GETLOCALZONES))
r_atp->bitmap = 0;
UAS_UAS(r_atp->tid, atp->tid);
ulongtmp = 1;
- ulongtmp = htonl(ulongtmp);
- UAL_ASSIGN(r_atp->user_bytes, ulongtmp); /* no of zones */
+ UAL_ASSIGN_HTON(r_atp->user_bytes, ulongtmp); /* no of zones */
/* fill up atp data part */
bcopy((caddr_t) &ifID->ifZoneName, (caddr_t) r_atp->data, ifID->ifZoneName.len+1);
/* access the number of nets provided in the ZIP Reply */
- network_count = *(u_char *)(gbuf_rptr(m) + DDP_X_HDR_SIZE + 1);
+ network_count = ntohs(*(u_char *)(gbuf_rptr(m) + DDP_X_HDR_SIZE + 1));
PacketPtr = (char *)(gbuf_rptr(m) + DDP_X_HDR_SIZE + 2);
while (payload_len > 0 && network_count >0) {
- Network = *(at_net_al *)PacketPtr;
+ Network = ntohs(*(at_net_al *)PacketPtr);
PacketPtr += 2;
zname = (at_nvestr_t *)PacketPtr;
if (payload_len)
r_atp->bitmap = 0;
UAS_UAS(r_atp->tid, atp->tid);
ulongtmp = 1;
- ulongtmp = htonl(ulongtmp);
- UAL_ASSIGN(r_atp->user_bytes, ulongtmp); /* no of zones */
+ UAL_ASSIGN_HTON(r_atp->user_bytes, ulongtmp); /* no of zones */
data_ptr = (char *)r_atp->data;
/* get the start index from the ATP request */
- StartPoint = (UAL_VALUE(atp->user_bytes) & 0xffff) -1;
+ StartPoint = (UAL_VALUE_NTOH(atp->user_bytes) & 0xffff) -1;
/* find the next zone to send */
ulongtmp += 0x01000000;
- UAL_ASSIGN(r_atp->user_bytes, ulongtmp); /* # of zones and flag*/
+ UAL_ASSIGN_HTON(r_atp->user_bytes, ulongtmp); /* # of zones and flag*/
size = DDP_X_HDR_SIZE + ATP_HDR_SIZE + PacketLen;
gbuf_winc(rm,size);
/* get the start index from the ATP request */
- Index_wanted = (UAL_VALUE(atp->user_bytes) & 0xffff) -1;
+ Index_wanted = (UAL_VALUE_NTOH(atp->user_bytes) & 0xffff) -1;
dPrintf(D_M_ZIP_LOW, D_L_INFO,
("zip_r_GLZ: for station %d:%d Index_wanted = %d\n",
r_atp->bitmap = 0;
UAS_UAS(r_atp->tid, atp->tid);
ulongtmp = ((last_flag << 24) & 0xFF000000) + ZonesInPacket; /* # of zones and flag*/
- UAL_ASSIGN(r_atp->user_bytes, ulongtmp);
+ UAL_ASSIGN_HTON(r_atp->user_bytes, ulongtmp);
size = DDP_X_HDR_SIZE + ATP_HDR_SIZE + packet_len;
gbuf_winc(rm,size);
DDPLEN_ASSIGN(r_ddp, size);