⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 version.c

📁 harvest是一个下载html网页得机器人
💻 C
字号:
/*************************************************************************** *                                  _   _ ____  _      *  Project                     ___| | | |  _ \| |     *                             / __| | | | |_) | |     *                            | (__| |_| |  _ <| |___  *                             \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2003, 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 * are also available at http://curl.haxx.se/docs/copyright.html. *  * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * * $Id: version.c,v 1.28 2003/09/19 12:56:24 bagder Exp $ ***************************************************************************/#include "setup.h"#include <string.h>#include <stdio.h>#include <curl/curl.h>#include "urldata.h"#ifdef USE_SSLEAYstatic void getssl_version(char *ptr, long *num){#if (SSLEAY_VERSION_NUMBER >= 0x905000)  {    char sub[2];    unsigned long ssleay_value;    sub[1]='\0';    ssleay_value=SSLeay();    *num = ssleay_value;    if(ssleay_value < 0x906000) {      ssleay_value=SSLEAY_VERSION_NUMBER;      sub[0]='\0';    }    else {      if(ssleay_value&0xff0) {        sub[0]=(char)((ssleay_value>>4)&0xff) + 'a' -1;      }      else        sub[0]='\0';    }    sprintf(ptr, " OpenSSL/%lx.%lx.%lx%s",            (ssleay_value>>28)&0xf,            (ssleay_value>>20)&0xff,            (ssleay_value>>12)&0xff,            sub);  }#else  *num = SSLEAY_VERSION_NUMBER;#if (SSLEAY_VERSION_NUMBER >= 0x900000)  sprintf(ptr, " OpenSSL/%lx.%lx.%lx",          (SSLEAY_VERSION_NUMBER>>28)&0xff,          (SSLEAY_VERSION_NUMBER>>20)&0xff,          (SSLEAY_VERSION_NUMBER>>12)&0xf);#else  {    char sub[2];    sub[1]='\0';    if(SSLEAY_VERSION_NUMBER&0x0f) {      sub[0]=(SSLEAY_VERSION_NUMBER&0x0f) + 'a' -1;    }    else      sub[0]='\0';    sprintf(ptr, " SSL/%x.%x.%x%s",            (SSLEAY_VERSION_NUMBER>>12)&0xff,            (SSLEAY_VERSION_NUMBER>>8)&0xf,            (SSLEAY_VERSION_NUMBER>>4)&0xf, sub);  }#endif#endif}#endifchar *curl_version(void){  static char version[200];  char *ptr;  long num;  strcpy(version, LIBCURL_NAME "/" LIBCURL_VERSION );  ptr=strchr(version, '\0');#ifdef USE_SSLEAY  getssl_version(ptr, &num);  ptr=strchr(version, '\0');#else  (void)num; /* no compiler warning please */#endif#ifdef KRB4  sprintf(ptr, " krb4");  ptr += strlen(ptr);#endif#ifdef ENABLE_IPV6  sprintf(ptr, " ipv6");  ptr += strlen(ptr);#endif#ifdef HAVE_LIBZ  sprintf(ptr, " zlib/%s", zlibVersion());  ptr += strlen(ptr);#endif#ifdef HAVE_GSSAPI  sprintf(ptr, " GSS");  ptr += strlen(ptr);#endif  return version;}/* data for curl_version_info */static const char *protocols[] = {#ifndef CURL_DISABLE_FTP  "ftp",#endif#ifndef CURL_DISABLE_GOPHER  "gopher",#endif#ifndef CURL_DISABLE_TELNET  "telnet",#endif#ifndef CURL_DISABLE_DICT  "dict",#endif#ifndef CURL_DISABLE_LDAP  "ldap",#endif#ifndef CURL_DISABLE_HTTP  "http",#endif#ifndef CURL_DISABLE_FILE  "file",#endif#ifdef USE_SSLEAY#ifndef CURL_DISABLE_HTTP  "https",#endif#ifndef CURL_DISABLE_FTP  "ftps",#endif#endif  NULL};static curl_version_info_data version_info = {  CURLVERSION_FIRST,  LIBCURL_VERSION,  LIBCURL_VERSION_NUM,  OS, /* as found by configure or set by hand at build-time */  0 /* features is 0 by default */#ifdef ENABLE_IPV6  | CURL_VERSION_IPV6#endif#ifdef KRB4  | CURL_VERSION_KERBEROS4#endif#ifdef USE_SSLEAY  | CURL_VERSION_SSL  | CURL_VERSION_NTLM /* since this requires OpenSSL */#endif#ifdef HAVE_LIBZ  | CURL_VERSION_LIBZ#endif#ifdef HAVE_GSSAPI  | CURL_VERSION_GSSNEGOTIATE#endif#ifdef CURLDEBUG  | CURL_VERSION_DEBUG#endif#ifdef USE_ARES  | CURL_VERSION_ASYNCHDNS#endif#ifdef HAVE_SPNEGO  | CURL_VERSION_SPNEGO#endif  ,  NULL, /* ssl_version */  0,    /* ssl_version_num */  NULL, /* zlib_version */  protocols};curl_version_info_data *curl_version_info(CURLversion stamp){#ifdef USE_SSLEAY  static char ssl_buffer[80];  long num;  getssl_version(ssl_buffer, &num);  version_info.ssl_version = ssl_buffer;  version_info.ssl_version_num = num;  /* SSL stuff is left zero if undefined */#endif#ifdef HAVE_LIBZ  version_info.libz_version = zlibVersion();  /* libz left NULL if non-existing */#endif  (void)stamp; /* avoid compiler warnings, we don't use this */  return &version_info;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -