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
ofproto: Fix potential leak during flow mods.
[sliver-openvswitch.git]
/
utilities
/
ovs-appctl.c
diff --git
a/utilities/ovs-appctl.c
b/utilities/ovs-appctl.c
index
ddeeb1d
..
a6fbebd
100644
(file)
--- a/
utilities/ovs-appctl.c
+++ b/
utilities/ovs-appctl.c
@@
-63,13
+63,14
@@
main(int argc, char *argv[])
}
if (cmd_error) {
}
if (cmd_error) {
+ jsonrpc_close(client);
fputs(cmd_error, stderr);
ovs_error(0, "%s: server returned an error", target);
exit(2);
} else if (cmd_result) {
fputs(cmd_result, stdout);
} else {
fputs(cmd_error, stderr);
ovs_error(0, "%s: server returned an error", target);
exit(2);
} else if (cmd_result) {
fputs(cmd_result, stdout);
} else {
- NOT_REACHED();
+
OVS_
NOT_REACHED();
}
jsonrpc_close(client);
}
jsonrpc_close(client);
@@
-161,7
+162,7
@@
parse_command_line(int argc, char *argv[])
exit(EXIT_FAILURE);
default:
exit(EXIT_FAILURE);
default:
- NOT_REACHED();
+
OVS_
NOT_REACHED();
}
}
}
}
@@
-180,6
+181,7
@@
connect_to_target(const char *target)
char *socket_name;
int error;
char *socket_name;
int error;
+#ifndef _WIN32
if (target[0] != '/') {
char *pidfile_name;
pid_t pid;
if (target[0] != '/') {
char *pidfile_name;
pid_t pid;
@@
-192,6
+194,12
@@
connect_to_target(const char *target)
free(pidfile_name);
socket_name = xasprintf("%s/%s.%ld.ctl",
ovs_rundir(), target, (long int) pid);
free(pidfile_name);
socket_name = xasprintf("%s/%s.%ld.ctl",
ovs_rundir(), target, (long int) pid);
+#else
+ /* On windows, if the 'target' contains ':', we make an assumption that
+ * it is an absolute path. */
+ if (!strchr(target, ':')) {
+ socket_name = xasprintf("%s/%s.ctl", ovs_rundir(), target);
+#endif
} else {
socket_name = xstrdup(target);
}
} else {
socket_name = xstrdup(target);
}