diff options
| author | Roy Marples <roy@marples.name> | 2009-03-23 10:09:10 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2009-03-23 10:09:10 +0000 |
| commit | 45b51c7f6c5ca068d8d2a283eeb976465247dfde (patch) | |
| tree | e508d215d090adffb46b3b5a71a8141c4404ed44 /dhcpcd.c | |
| parent | d377fcaa7c3de0f105d65644244167ff81d93484 (diff) | |
| download | dhcpcd-45b51c7f6c5ca068d8d2a283eeb976465247dfde.tar.xz | |
dhcpcd CAN work on IEEE FireWire interfaces.
However, BPF does not appear to operate on these, so we report the error
and continue.
When BPF supports FireWire for DHCP, dhcpcd will magically start to work.
Diffstat (limited to 'dhcpcd.c')
| -rw-r--r-- | dhcpcd.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -310,8 +310,18 @@ send_message(struct interface *iface, int type, len = make_udp_packet(&udp, (uint8_t *)dhcp, len, from, to); r = send_raw_packet(iface, ETHERTYPE_IP, udp, len); free(udp); - if (r == -1) + /* If we failed to send a raw packet this normally means + * we don't have the ability to work beneath the IP layer + * for this interface. + * As such we remove it from consideration without actually + * stopping the interface. */ + if (r == -1) { syslog(LOG_ERR, "%s: send_raw_packet: %m", iface->name); + drop_config(iface, "FAIL"); + close_sockets(iface); + delete_timeout(NULL, iface); + callback = NULL; + } } free(dhcp); /* Even if we fail to send a packet we should continue as we are |
