|
|
| version 1.1.1.2, 2012/10/09 09:22:28 | version 1.1.1.3, 2016/11/02 10:09:10 |
|---|---|
| Line 29 | Line 29 |
| #include <net/bpf.h> | #include <net/bpf.h> |
| #include "log.h" | #include "log.h" |
| #include "network.h" | |
| #include "stream.h" | #include "stream.h" |
| #include "if.h" | #include "if.h" |
| Line 301 int | Line 302 int |
| isis_send_pdu_bcast (struct isis_circuit *circuit, int level) | isis_send_pdu_bcast (struct isis_circuit *circuit, int level) |
| { | { |
| struct ether_header *eth; | struct ether_header *eth; |
| int written, buflen; | ssize_t written; |
| size_t buflen; | |
| buflen = stream_get_endp (circuit->snd_stream) + LLC_LEN + ETHER_HDR_LEN; | buflen = stream_get_endp (circuit->snd_stream) + LLC_LEN + ETHER_HDR_LEN; |
| if (buflen > sizeof (sock_buff)) | if (buflen > sizeof (sock_buff)) |
| { | { |
| zlog_warn ("isis_send_pdu_bcast: sock_buff size %lu is less than " | zlog_warn ("isis_send_pdu_bcast: sock_buff size %zu is less than " |
| "output pdu size %d on circuit %s", | "output pdu size %zu on circuit %s", |
| sizeof (sock_buff), buflen, circuit->interface->name); | sizeof (sock_buff), buflen, circuit->interface->name); |
| return ISIS_WARNING; | return ISIS_WARNING; |
| } | } |
| Line 338 isis_send_pdu_bcast (struct isis_circuit *circuit, int | Line 340 isis_send_pdu_bcast (struct isis_circuit *circuit, int |
| /* now we can send this */ | /* now we can send this */ |
| written = write (circuit->fd, sock_buff, buflen); | written = write (circuit->fd, sock_buff, buflen); |
| if (written < 0) | |
| { | |
| zlog_warn("IS-IS bpf: could not transmit packet on %s: %s", | |
| circuit->interface->name, safe_strerror(errno)); | |
| if (ERRNO_IO_RETRY(errno)) | |
| return ISIS_WARNING; | |
| return ISIS_ERROR; | |
| } | |
| return ISIS_OK; | return ISIS_OK; |
| } | } |