From 055f102601c201463d628d910c2f9dfe0e91d075 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 17 Dec 2014 19:39:18 +0100 Subject: libcrypto: Fix Windows build with ssh_reseed(). gettimeofday() is not available on Windows and we need it only in case of forking. Signed-off-by: Andreas Schneider (cherry picked from commit b7b535816d5fa49b0d1783f4cb42086f4169b1da) --- ConfigureChecks.cmake | 1 + config.h.cmake | 3 +++ src/libcrypto.c | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index 8f76af82..d9ef5a76 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -51,6 +51,7 @@ check_include_file(pty.h HAVE_PTY_H) check_include_file(termios.h HAVE_TERMIOS_H) check_include_file(unistd.h HAVE_UNISTD_H) check_include_file(util.h HAVE_UTIL_H) +check_include_file(sys/time.h HAVE_SYS_TIME_H) if (WIN32) check_include_files("winsock2.h;ws2tcpip.h;wspiapi.h" HAVE_WSPIAPI_H) diff --git a/config.h.cmake b/config.h.cmake index 7e8cb6a8..396656d2 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -23,6 +23,9 @@ /* Define to 1 if you have the header file. */ #cmakedefine HAVE_UTIL_H 1 +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H 1 + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_TERMIOS_H 1 diff --git a/src/libcrypto.c b/src/libcrypto.c index 174b0c64..afa8bdc9 100644 --- a/src/libcrypto.c +++ b/src/libcrypto.c @@ -19,11 +19,14 @@ * MA 02111-1307, USA. */ +#include "config.h" #include #include #include +#ifdef HAVE_SYS_TIME_H #include +#endif #include "libssh/priv.h" #include "libssh/session.h" @@ -78,9 +81,11 @@ static int alloc_key(struct ssh_cipher_struct *cipher) { } void ssh_reseed(void){ +#ifndef _WIN32 struct timeval tv; gettimeofday(&tv, NULL); RAND_add(&tv, sizeof(tv), 0.0); +#endif } SHACTX sha1_init(void) { -- cgit