Fix mac handling in blind mode
This commit is contained in:
parent
ddebe8979e
commit
4c376a76f8
1 changed files with 3 additions and 3 deletions
6
nmrp.c
6
nmrp.c
|
|
@ -492,8 +492,6 @@ int nmrp_do(struct nmrpd_args *args)
|
|||
status = pkt_recv(sock, &rx);
|
||||
if (status == 0) {
|
||||
if (memcmp(rx.eh.ether_dhost, src, 6) == 0) {
|
||||
// set the destination MAC for all subsequent packages
|
||||
memcpy(tx.eh.ether_dhost, rx.eh.ether_shost, 6);
|
||||
break;
|
||||
} else if (verbosity) {
|
||||
printf("\nIgnoring bogus response: %s -> %s.\n",
|
||||
|
|
@ -512,7 +510,7 @@ int nmrp_do(struct nmrpd_args *args)
|
|||
goto out;
|
||||
} else {
|
||||
// we're blind, so fake a response from the MAC specified by -m
|
||||
memcpy(rx.eh.ether_dhost, dest, 6);
|
||||
memcpy(rx.eh.ether_shost, dest, 6);
|
||||
msg_init(&rx.msg, NMRP_C_CONF_REQ);
|
||||
printf("Faking one.");
|
||||
break;
|
||||
|
|
@ -523,6 +521,8 @@ int nmrp_do(struct nmrpd_args *args)
|
|||
|
||||
printf("\n");
|
||||
|
||||
memcpy(tx.eh.ether_dhost, rx.eh.ether_shost, 6);
|
||||
|
||||
if (ethsock_arp_add(sock, rx.eh.ether_shost, ipaddr.s_addr, &arp_undo) != 0) {
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue