Make it possible for people to tell where the EGD socket is through
[openssl.git] / crypto / rand / rand_egd.c
index 02a0d86fa330aa0504d76e863d1eee9f9767bb73..ad5385acaaf580b5a9630af21b4665cb9eee2079 100644 (file)
@@ -54,6 +54,7 @@
  *
  */
 
+#include <stdlib.h>
 #include <openssl/rand.h>
 
 /* Query the EGD <URL: http://www.lothar.com/tech/crypto/>.
@@ -83,12 +84,17 @@ int RAND_egd_bytes(const char *path,int bytes)
 
 int RAND_egd(const char *path)
        {
+       const char *s;
        int ret = -1;
        struct sockaddr_un addr;
        int len, num;
        int fd = -1;
        unsigned char buf[256];
 
+       s=getenv("RANDEGD");
+       if (s != NULL)
+               path = s;
+
        memset(&addr, 0, sizeof(addr));
        addr.sun_family = AF_UNIX;
        if (strlen(path) > sizeof(addr.sun_path))
@@ -115,12 +121,17 @@ int RAND_egd(const char *path)
 
 int RAND_egd_bytes(const char *path,int bytes)
        {
+       const char *s;
        int ret = 0;
        struct sockaddr_un addr;
        int len, num;
        int fd = -1;
        unsigned char buf[255];
 
+       s=getenv("RANDEGD");
+       if (s != NULL)
+               path = s;
+
        memset(&addr, 0, sizeof(addr));
        addr.sun_family = AF_UNIX;
        if (strlen(path) > sizeof(addr.sun_path))