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 citrix branch into master.
[sliver-openvswitch.git]
/
lib
/
vconn-unix.c
diff --git
a/lib/vconn-unix.c
b/lib/vconn-unix.c
index
e39eaea
..
93d14e8
100644
(file)
--- a/
lib/vconn-unix.c
+++ b/
lib/vconn-unix.c
@@
-81,7
+81,7
@@
static int punix_accept(int fd, const struct sockaddr *sa, size_t sa_len,
static int
punix_open(const char *name UNUSED, char *suffix, struct pvconn **pvconnp)
{
static int
punix_open(const char *name UNUSED, char *suffix, struct pvconn **pvconnp)
{
- int fd;
+ int fd
, error
;
fd = make_unix_socket(SOCK_STREAM, true, true, suffix, NULL);
if (fd < 0) {
fd = make_unix_socket(SOCK_STREAM, true, true, suffix, NULL);
if (fd < 0) {
@@
-89,6
+89,19
@@
punix_open(const char *name UNUSED, char *suffix, struct pvconn **pvconnp)
return errno;
}
return errno;
}
+ error = set_nonblocking(fd);
+ if (error) {
+ close(fd);
+ return error;
+ }
+
+ if (listen(fd, 10) < 0) {
+ error = errno;
+ VLOG_ERR("%s: listen: %s", name, strerror(error));
+ close(fd);
+ return error;
+ }
+
return new_pstream_pvconn("punix", fd, punix_accept, pvconnp);
}
return new_pstream_pvconn("punix", fd, punix_accept, pvconnp);
}