ssl.c
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:1k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*  
  2.  * ssl.c - implements SSL specific routines and types 
  3.  * 
  4.  * This file implements the secure socket layer (SSL) specific  
  5.  * routines and types. 
  6.  * 
  7.  * This product includes software developed by Ralf S. Engelschall  
  8.  * <rse@engelschall.com> for use in the mod_ssl project  
  9.  * (http://www.modssl.org/). 
  10.  * 
  11.  * Stipe Tolj <tolj@wapme-systems.de>  
  12.  * for Kannel Project and Wapme Systems AG 
  13.  */ 
  14.  
  15. #include "gwlib/gwlib.h" 
  16.  
  17. #ifdef HAVE_LIBSSL 
  18.   
  19. #include <openssl/ssl.h> 
  20.  
  21. int SSL_smart_shutdown(SSL *ssl) 
  22.     int i; 
  23.     int rc; 
  24.  
  25.     /* 
  26.      * Repeat the calls, because SSL_shutdown internally dispatches through a 
  27.      * little state machine. Usually only one or two interation should be 
  28.      * needed, so we restrict the total number of restrictions in order to 
  29.      * avoid process hangs in case the client played bad with the socket 
  30.      * connection and OpenSSL cannot recognize it. 
  31.      */ 
  32.     rc = 0; 
  33.     for (i = 0; i < 4 /* max 2x pending + 2x data = 4 */; i++) { 
  34.         if ((rc = SSL_shutdown(ssl))) 
  35.             break; 
  36.     } 
  37.     return rc; 
  38.  
  39. #endif /* HAVE_LIBSSL */