If socket path specified is relative to ovs_rundir(), append the directory name to in unix_open.
Signed-off-by: Pavithra Ramesh <param...@vmware.com> --- lib/stream-unix.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/lib/stream-unix.c b/lib/stream-unix.c index 6ed7648..8764b6c 100644 --- a/lib/stream-unix.c +++ b/lib/stream-unix.c @@ -42,9 +42,19 @@ static int unix_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp OVS_UNUSED) { - const char *connect_path = suffix; + const char *ovsDir = ovs_rundir(); + char *new_path, *connect_path = suffix; int fd; + if ((!strstr(suffix, ovsDir)) { + /* alloc one byte for '/' and one for null terminator */ + new_path = (char *)xmalloc(strlen(ovsDir) + strlen(suffix) + 2); + strncpy(new_path, ovsDir, strlen(ovsDir)); + new_path[strlen(ovsDir)] = '/'; + new_path[strlen(ovsDir) + 1] = '\0'; + strncat(new_path, suffix, strlen(suffix)); + connect_path = new_path; + } fd = make_unix_socket(SOCK_STREAM, true, NULL, connect_path); if (fd < 0) { VLOG_DBG("%s: connection failed (%s)", connect_path, strerror(-fd)); -- 1.7.0.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev