On Unix-like systems, usually /dev/stdin opens a duplicate of fd 0, and this will be convenient in a few places later on. This commit makes this support universal.
Signed-off-by: Ben Pfaff <b...@ovn.org> --- ovsdb/log.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ovsdb/log.c b/ovsdb/log.c index 1769e12266d1..d25f766474dc 100644 --- a/ovsdb/log.c +++ b/ovsdb/log.c @@ -166,7 +166,13 @@ ovsdb_log_open(const char *name, const char *magic, #ifdef _WIN32 flags = flags | O_BINARY; #endif - fd = open(name, flags, 0666); + /* Special case for /dev/stdin to make it work even if the operating system + * doesn't support it under that name. */ + if (!strcmp(name, "/dev/stdin") && open_mode == OVSDB_LOG_READ_ONLY) { + fd = dup(STDIN_FILENO); + } else { + fd = open(name, flags, 0666); + } if (fd < 0) { const char *op = (open_mode == OVSDB_LOG_CREATE_EXCL ? "create" : open_mode == OVSDB_LOG_CREATE ? "create or open" -- 2.10.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev