git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch
[sliver-openvswitch.git]
/
lib
/
netdev-linux.c
diff --git
a/lib/netdev-linux.c
b/lib/netdev-linux.c
index
5de4fa2
..
c0e0c40
100644
(file)
--- a/
lib/netdev-linux.c
+++ b/
lib/netdev-linux.c
@@
-916,7
+916,7
@@
netdev_linux_send(struct netdev *netdev_, const void *data, size_t size)
sock = af_packet_sock();
if (sock < 0) {
sock = af_packet_sock();
if (sock < 0) {
- return sock;
+ return
-
sock;
}
error = get_ifindex(netdev_, &ifindex);
}
error = get_ifindex(netdev_, &ifindex);
@@
-4639,7
+4639,11
@@
af_packet_sock(void)
if (sock == INT_MIN) {
sock = socket(AF_PACKET, SOCK_RAW, 0);
if (sock >= 0) {
if (sock == INT_MIN) {
sock = socket(AF_PACKET, SOCK_RAW, 0);
if (sock >= 0) {
- set_nonblocking(sock);
+ int error = set_nonblocking(sock);
+ if (error) {
+ close(sock);
+ sock = -error;
+ }
} else {
sock = -errno;
VLOG_ERR("failed to create packet socket: %s", strerror(errno));
} else {
sock = -errno;
VLOG_ERR("failed to create packet socket: %s", strerror(errno));