| plan 9 kernel history: overview | file list | diff list |
1992/0213/port/devarp.c (diff list | history)
| 1992/0213/sys/src/9/port/devarp.c:320,332 – 1992/0214/sys/src/9/port/devarp.c:320,325 (short | long | prev | next) | ||
| 1991/1029 | return; } | |
| 1992/0213 |
| |
| 1991/1029 |
| |
| 1991/1030 | if(nhgets(eh->type) != ET_IP) { PUTNEXT(q, bp); | |
| 1992/0213/sys/src/9/port/devarp.c:333,338 – 1992/0214/sys/src/9/port/devarp.c:326,339 | ||
| 1991/1030 | return; } | |
| 1992/0214 | /* if ip broadcast, use ether bcast address */ addr = nhgetl(eh->dst); if(addr == Myip[Mybcast] || addr == Myip[Mynet] || addr == Myip[Mysubnet]){ memset(eh->d, 0xff, sizeof(eh->d)); PUTNEXT(q, bp); return; } | |
| 1991/1029 | iproute(eh->dst, ip); | |
| 1992/0213 | /* if a known ip addr, send downstream to the ethernet */ | |
| 1992/0213/sys/src/9/port/devarp.c:341,355 – 1992/0214/sys/src/9/port/devarp.c:342,355 | ||
| 1991/1029 | return; } | |
| 1992/0213 |
| |
| 1992/0214 | /* Push the packet up to the arp server for address resolution */ if(!Servq) { if((dropped++ % 1000) == 0) print("arp: No server, packet dropped %d.%d.%d.%d\n", eh->dst[0], eh->dst[1], eh->dst[2], eh->dst[3]); freeb(bp); | |
| 1992/0213 | return; } | |
| 1991/1030 |
| |
| 1991/1029 | memmove(eh->d, ip, sizeof(ip)); PUTNEXT(Servq, bp); | |
| 1991/1027 | } | |