Lines Matching refs:arpreply
281 struct arprequest *arpreply; in await_arp() local
286 arpreply = (struct arprequest *)&nic.packet[ETH_HLEN]; in await_arp()
288 if (arpreply->opcode != htons(ARP_REPLY)) in await_arp()
290 if (memcmp(arpreply->sipaddr, ptr, sizeof(in_addr)) != 0) in await_arp()
292 memcpy(arptable[ival].node, arpreply->shwaddr, ETH_ALEN); in await_arp()
458 struct arprequest *arpreply; in await_rarp() local
463 arpreply = (struct arprequest *)&nic.packet[ETH_HLEN]; in await_rarp()
464 if (arpreply->opcode != htons(RARP_REPLY)) in await_rarp()
466 if (memcmp(arpreply->thwaddr, ptr, ETH_ALEN) == 0){ in await_rarp()
467 memcpy(arptable[ARP_SERVER].node, arpreply->shwaddr, ETH_ALEN); in await_rarp()
468 memcpy(&arptable[ARP_SERVER].ipaddr, arpreply->sipaddr, sizeof(in_addr)); in await_rarp()
469 memcpy(&arptable[ARP_CLIENT].ipaddr, arpreply->tipaddr, sizeof(in_addr)); in await_rarp()
979 struct arprequest *arpreply; in await_reply() local
982 arpreply = (struct arprequest *)&nic.packet[ETH_HLEN]; in await_reply()
983 memcpy(&tmp, arpreply->tipaddr, sizeof(in_addr)); in await_reply()
984 if ((arpreply->opcode == htons(ARP_REQUEST)) && in await_reply()
986 arpreply->opcode = htons(ARP_REPLY); in await_reply()
987 memcpy(arpreply->tipaddr, arpreply->sipaddr, sizeof(in_addr)); in await_reply()
988 memcpy(arpreply->thwaddr, arpreply->shwaddr, ETH_ALEN); in await_reply()
989 memcpy(arpreply->sipaddr, &arptable[ARP_CLIENT].ipaddr, sizeof(in_addr)); in await_reply()
990 memcpy(arpreply->shwaddr, arptable[ARP_CLIENT].node, ETH_ALEN); in await_reply()
991 eth_transmit(arpreply->thwaddr, ARP, in await_reply()
993 arpreply); in await_reply()
995 memcpy(&tmp, arpreply->tipaddr, sizeof(in_addr)); in await_reply()