X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubox.git;a=blobdiff_plain;f=getrandom.c;h=73a37b0f091620e078c92da9637f84f7753cefa5;hp=96712028589b100f3fab845f92d7fd554428efe4;hb=a62c946ecdced9468ad16738325ee322029b0476;hpb=fdda69207d1509e0383e3da549f71666b194c40a diff --git a/getrandom.c b/getrandom.c index 9671202..73a37b0 100644 --- a/getrandom.c +++ b/getrandom.c @@ -21,38 +21,40 @@ #include #define ERROR_EXIT(fmt, ...) do { \ - fprintf(stderr, fmt, ## __VA_ARGS__); \ - return EXIT_FAILURE; \ - } while (0) + fprintf(stderr, fmt, ## __VA_ARGS__); \ + return EXIT_FAILURE; \ + } while (0) static int usage(char *name) { - fprintf(stderr, "Usage: %s \n", name); - fprintf(stderr, " => return bytes from getrandom()\n"); - return EXIT_FAILURE; + fprintf(stderr, "Usage: %s \n", name); + fprintf(stderr, " => return bytes from getrandom()\n"); + return EXIT_FAILURE; } int main(int argc, char *argv[]) { - if (argc != 2) - return usage(argv[0]); + if (argc != 2) + return usage(argv[0]); - if (isatty(STDOUT_FILENO)) - ERROR_EXIT("Not outputting random to a tty\n"); + if (isatty(STDOUT_FILENO)) + ERROR_EXIT("Not outputting random to a tty\n"); - int nbtot = atoi(argv[1]); - if (nbtot < 1) - ERROR_EXIT("Invalid param (must be > 0)\n"); + int nbtot = atoi(argv[1]); + if (nbtot < 1) + ERROR_EXIT("Invalid param (must be > 0)\n"); - char buf[256]; - int len = sizeof(buf); - while (nbtot > 0) { - if (nbtot <= sizeof(buf)) - len = nbtot; - if (syscall(SYS_getrandom, buf, len, 0) == -1) - ERROR_EXIT("getrandom() failed: %s\n", strerror(errno)); - if (write(STDOUT_FILENO, buf, len) != len) - ERROR_EXIT("write() failed: %s\n", strerror(errno)); - nbtot -= sizeof(buf); - } + char buf[256]; + int len = sizeof(buf); + while (nbtot > 0) { + if (nbtot <= sizeof(buf)) + len = nbtot; + if (syscall(SYS_getrandom, buf, len, 0) == -1) + ERROR_EXIT("getrandom() failed: %s\n", strerror(errno)); + if (write(STDOUT_FILENO, buf, len) != len) + ERROR_EXIT("write() failed: %s\n", strerror(errno)); + nbtot -= sizeof(buf); + } + + return 0; }