[ovs-dev] [PATCH] ovs-ofctl: Make add-flows command read from stdin if file name is "-".
Ben Pfaff
blp at nicira.com
Wed Mar 9 22:44:22 UTC 2011
It is conventional for Unix tools to read from standard input if "-" is
specified as a file name. It's easy for "ovs-ofctl add-flows" to behave
this way, too, so this commit implements it.
Suggested-by: Paul Ingram <paul at nicira.com>
---
utilities/ovs-ofctl.8.in | 3 ++-
utilities/ovs-ofctl.c | 6 ++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/utilities/ovs-ofctl.8.in b/utilities/ovs-ofctl.8.in
index 95b0884..3472cc1 100644
--- a/utilities/ovs-ofctl.8.in
+++ b/utilities/ovs-ofctl.8.in
@@ -132,7 +132,8 @@ below.
.
.TP
\fBadd\-flows \fIswitch file\fR
-Add flow entries as described in \fIfile\fR to \fIswitch\fR's
+Add the flow entries listed in \fIfile\fR, or supplied on \fBstdin\fR
+if \fIfile\fR is \fB\-\fR, to \fIswitch\fR's
tables. Each line in \fIfile\fR is a flow entry in the format
described in \fBFlow Syntax\fR, below.
.
diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
index a96b77a..f7605f7 100644
--- a/utilities/ovs-ofctl.c
+++ b/utilities/ovs-ofctl.c
@@ -692,7 +692,7 @@ do_add_flows(int argc OVS_UNUSED, char *argv[])
struct vconn *vconn;
FILE *file;
- file = fopen(argv[2], "r");
+ file = !strcmp(argv[2], "-") ? stdin : fopen(argv[2], "r");
if (file == NULL) {
ovs_fatal(errno, "%s: open", argv[2]);
}
@@ -707,7 +707,9 @@ do_add_flows(int argc OVS_UNUSED, char *argv[])
}
vconn_close(vconn);
- fclose(file);
+ if (file != stdin) {
+ fclose(file);
+ }
}
static void
--
1.7.1
More information about the dev
mailing list