Support reading from stdin using "-f -"
authorJoseph C. Lehner <joseph.c.lehner@gmail.com>
Thu, 11 Feb 2016 21:25:35 +0000 (22:25 +0100)
committerJoseph C. Lehner <joseph.c.lehner@gmail.com>
Thu, 11 Feb 2016 21:36:22 +0000 (22:36 +0100)
nmrp.c
tftp.c

diff --git a/nmrp.c b/nmrp.c
index 0614f14d51225a780d275505f6565560ad808d7b..f6a1e032c0fb6270f5113e57573c2dadc8c090d4 100644 (file)
--- a/nmrp.c
+++ b/nmrp.c
@@ -290,7 +290,7 @@ int nmrp_do(struct nmrpd_args *args)
                return 1;
        }
 
-       if (access(args->filename, R_OK) == -1) {
+       if (strcmp(args->filename, "-") && access(args->filename, R_OK) == -1) {
                fprintf(stderr, "Error accessing file '%s'.\n", args->filename);
                return 1;
        }
diff --git a/tftp.c b/tftp.c
index c08629e3a9f1a1c9de466acf9ce1b820b8fd110d..eb1b996ee30fcef623a04536d1f353f99f46607d 100644 (file)
--- a/tftp.c
+++ b/tftp.c
@@ -232,11 +232,15 @@ int tftp_put(struct nmrpd_args *args)
        sock = -1;
        ret = -1;
 
-       fd = open(args->filename, O_RDONLY);
-       if (fd < 0) {
-               perror("open");
-               ret = fd;
-               goto cleanup;
+       if (!strcmp(args->filename, "-")) {
+               fd = STDIN_FILENO;
+       } else {
+               fd = open(args->filename, O_RDONLY);
+               if (fd < 0) {
+                       perror("open");
+                       ret = fd;
+                       goto cleanup;
+               }
        }
 
        sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);