X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=unix%2Fuxgen.c;h=f593a96064c1365fd794807b99954437bccb80a0;hb=095072fa46b2d7b8beafaddb2f873d2f500a1e10;hp=156d4efe33982e6a67b6cc15338d12ed868bfaed;hpb=ea301bdd9b892a5e70692f82f5c0b98bd585e775;p=PuTTY.git diff --git a/unix/uxgen.c b/unix/uxgen.c index 156d4efe..f593a960 100644 --- a/unix/uxgen.c +++ b/unix/uxgen.c @@ -3,21 +3,27 @@ */ #include +#include + #include #include #include "putty.h" -char *get_random_data(int len) +char *get_random_data(int len, const char *device) { char *buf = snewn(len, char); int fd; int ngot, ret; - fd = open("/dev/random", O_RDONLY); + if (!device) + device = "/dev/random"; + + fd = open(device, O_RDONLY); if (fd < 0) { sfree(buf); - perror("puttygen: unable to open /dev/random"); + fprintf(stderr, "puttygen: %s: open: %s\n", + device, strerror(errno)); return NULL; } @@ -27,7 +33,8 @@ char *get_random_data(int len) if (ret < 0) { close(fd); sfree(buf); - perror("puttygen: unable to read /dev/random"); + fprintf(stderr, "puttygen: %s: read: %s\n", + device, strerror(errno)); return NULL; } ngot += ret;