Loading lib/Makefile.m32 +1 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ endif endif ifdef SSPI CFLAGS += -DUSE_WINDOWS_SSPI DLL_LIBS += -lversion endif ifdef SPNEGO CFLAGS += -DHAVE_SPNEGO Loading lib/Makefile.vc6 +1 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,7 @@ CFGSET = FALSE !IFDEF WINDOWS_SSPI CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include WINLIBS = $(WINLIBS) version.lib !ENDIF !IFDEF USE_IPV6 Loading lib/curl_sspi.c +63 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -101,6 +101,68 @@ Curl_sspi_global_init(void) return CURLE_OK; } /* * Curl_sspi_version() * * This function returns the SSPI library version information. */ CURLcode Curl_sspi_version(int *major, int *minor, int *build, int *special) { CURLcode result = CURLE_OK; VS_FIXEDFILEINFO *version_info = NULL; LPTSTR version = NULL; LPTSTR path = NULL; LPVOID data = NULL; DWORD size, handle; if(!s_hSecDll) return CURLE_FAILED_INIT; path = malloc(MAX_PATH); if(!path) return CURLE_OUT_OF_MEMORY; if(GetModuleFileName(s_hSecDll, path, MAX_PATH)) { size = GetFileVersionInfoSize(path, &handle); if(size) { data = malloc(size); if(data) { if(GetFileVersionInfo(path, handle, size, data)) { if(!VerQueryValue(data, "\\", &version_info, &handle)) result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; /* Set the out parameters */ if(!result) { if(major) *major = (version_info->dwProductVersionMS >> 16) & 0xffff; if(minor) *minor = (version_info->dwProductVersionMS >> 0) & 0xffff; if(build) *build = (version_info->dwProductVersionLS >> 16) & 0xffff; if(special) *special = (version_info->dwProductVersionLS >> 0) & 0xffff; } Curl_safefree(data); Curl_safefree(path); return result; } /* * Curl_sspi_global_cleanup() Loading lib/curl_sspi.h +2 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -62,6 +62,7 @@ #endif CURLcode Curl_sspi_global_init(void); CURLcode Curl_sspi_version(int *major, int *minor, int *build, int *special); void Curl_sspi_global_cleanup(void); /* Forward-declaration of global variables defined in curl_sspi.c */ Loading lib/version.c +20 −6 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -67,6 +67,12 @@ char *curl_version(void) char *ptr = version; size_t len; size_t left = sizeof(version); #ifdef USE_WINDOWS_SSPI int sspi_major = 0; int sspi_minor = 0; int sspi_build = 0; #endif; strcpy(ptr, LIBCURL_NAME "/" LIBCURL_VERSION); len = strlen(ptr); left -= len; Loading @@ -82,6 +88,17 @@ char *curl_version(void) } } #ifdef USE_WINDOWS_SSPI if(CURLE_OK == Curl_sspi_version(&sspi_major, &sspi_minor, &sspi_build, NULL)) len = snprintf(ptr, left, " sspi/%d.%d.%d", sspi_major, sspi_minor, sspi_build); else len = snprintf(ptr, left, " sspi/unknown"); left -= len; ptr += len; #endif #ifdef HAVE_LIBZ len = snprintf(ptr, left, " zlib/%s", zlibVersion()); left -= len; Loading Loading @@ -243,9 +260,6 @@ static curl_version_info_data version_info = { #if defined(USE_NTLM) && defined(NTLM_WB_ENABLED) | CURL_VERSION_NTLM_WB #endif #ifdef USE_WINDOWS_SSPI | CURL_VERSION_SSPI #endif #ifdef HAVE_LIBZ | CURL_VERSION_LIBZ #endif Loading Loading
lib/Makefile.m32 +1 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,7 @@ endif endif ifdef SSPI CFLAGS += -DUSE_WINDOWS_SSPI DLL_LIBS += -lversion endif ifdef SPNEGO CFLAGS += -DHAVE_SPNEGO Loading
lib/Makefile.vc6 +1 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,7 @@ CFGSET = FALSE !IFDEF WINDOWS_SSPI CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include WINLIBS = $(WINLIBS) version.lib !ENDIF !IFDEF USE_IPV6 Loading
lib/curl_sspi.c +63 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -101,6 +101,68 @@ Curl_sspi_global_init(void) return CURLE_OK; } /* * Curl_sspi_version() * * This function returns the SSPI library version information. */ CURLcode Curl_sspi_version(int *major, int *minor, int *build, int *special) { CURLcode result = CURLE_OK; VS_FIXEDFILEINFO *version_info = NULL; LPTSTR version = NULL; LPTSTR path = NULL; LPVOID data = NULL; DWORD size, handle; if(!s_hSecDll) return CURLE_FAILED_INIT; path = malloc(MAX_PATH); if(!path) return CURLE_OUT_OF_MEMORY; if(GetModuleFileName(s_hSecDll, path, MAX_PATH)) { size = GetFileVersionInfoSize(path, &handle); if(size) { data = malloc(size); if(data) { if(GetFileVersionInfo(path, handle, size, data)) { if(!VerQueryValue(data, "\\", &version_info, &handle)) result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; } else result = CURLE_OUT_OF_MEMORY; /* Set the out parameters */ if(!result) { if(major) *major = (version_info->dwProductVersionMS >> 16) & 0xffff; if(minor) *minor = (version_info->dwProductVersionMS >> 0) & 0xffff; if(build) *build = (version_info->dwProductVersionLS >> 16) & 0xffff; if(special) *special = (version_info->dwProductVersionLS >> 0) & 0xffff; } Curl_safefree(data); Curl_safefree(path); return result; } /* * Curl_sspi_global_cleanup() Loading
lib/curl_sspi.h +2 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -62,6 +62,7 @@ #endif CURLcode Curl_sspi_global_init(void); CURLcode Curl_sspi_version(int *major, int *minor, int *build, int *special); void Curl_sspi_global_cleanup(void); /* Forward-declaration of global variables defined in curl_sspi.c */ Loading
lib/version.c +20 −6 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -67,6 +67,12 @@ char *curl_version(void) char *ptr = version; size_t len; size_t left = sizeof(version); #ifdef USE_WINDOWS_SSPI int sspi_major = 0; int sspi_minor = 0; int sspi_build = 0; #endif; strcpy(ptr, LIBCURL_NAME "/" LIBCURL_VERSION); len = strlen(ptr); left -= len; Loading @@ -82,6 +88,17 @@ char *curl_version(void) } } #ifdef USE_WINDOWS_SSPI if(CURLE_OK == Curl_sspi_version(&sspi_major, &sspi_minor, &sspi_build, NULL)) len = snprintf(ptr, left, " sspi/%d.%d.%d", sspi_major, sspi_minor, sspi_build); else len = snprintf(ptr, left, " sspi/unknown"); left -= len; ptr += len; #endif #ifdef HAVE_LIBZ len = snprintf(ptr, left, " zlib/%s", zlibVersion()); left -= len; Loading Loading @@ -243,9 +260,6 @@ static curl_version_info_data version_info = { #if defined(USE_NTLM) && defined(NTLM_WB_ENABLED) | CURL_VERSION_NTLM_WB #endif #ifdef USE_WINDOWS_SSPI | CURL_VERSION_SSPI #endif #ifdef HAVE_LIBZ | CURL_VERSION_LIBZ #endif Loading