Kannel: Open Source WAP and SMS gateway
svn-r5336
ssl.c
Go to the documentation of this file.
1
/* ====================================================================
2
* The Kannel Software License, Version 1.0
3
*
4
* Copyright (c) 2001-2018 Kannel Group
5
* Copyright (c) 1998-2001 WapIT Ltd.
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
*
15
* 2. Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in
17
* the documentation and/or other materials provided with the
18
* distribution.
19
*
20
* 3. The end-user documentation included with the redistribution,
21
* if any, must include the following acknowledgment:
22
* "This product includes software developed by the
23
* Kannel Group (http://www.kannel.org/)."
24
* Alternately, this acknowledgment may appear in the software itself,
25
* if and wherever such third-party acknowledgments normally appear.
26
*
27
* 4. The names "Kannel" and "Kannel Group" must not be used to
28
* endorse or promote products derived from this software without
29
* prior written permission. For written permission, please
30
* contact org@kannel.org.
31
*
32
* 5. Products derived from this software may not be called "Kannel",
33
* nor may "Kannel" appear in their name, without prior written
34
* permission of the Kannel Group.
35
*
36
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39
* DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
40
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
41
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
42
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
43
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
44
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
45
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47
* ====================================================================
48
*
49
* This software consists of voluntary contributions made by many
50
* individuals on behalf of the Kannel Group. For more information on
51
* the Kannel Group, please see <http://www.kannel.org/>.
52
*
53
* Portions of this software are based upon software originally written at
54
* WapIT Ltd., Helsinki, Finland for the Kannel project.
55
*/
56
57
/*
58
* ssl.c - implements SSL specific routines and types
59
*
60
* This file implements the secure socket layer (SSL) specific
61
* routines and types.
62
*
63
* This product includes software developed by Ralf S. Engelschall
64
* <rse@engelschall.com> for use in the mod_ssl project
65
* (http://www.modssl.org/).
66
*
67
* Stipe Tolj <stolj@wapme.de>
68
* for Kannel Project and Wapme Systems AG
69
*/
70
71
#include "
gwlib/gwlib.h
"
72
73
#ifdef HAVE_LIBSSL
74
75
#include <openssl/ssl.h>
76
77
int
SSL_smart_shutdown(SSL *
ssl
)
78
{
79
int
i;
80
int
rc;
81
82
/*
83
* Repeat the calls, because SSL_shutdown internally dispatches through a
84
* little state machine. Usually only one or two interation should be
85
* needed, so we restrict the total number of restrictions in order to
86
* avoid process hangs in case the client played bad with the socket
87
* connection and OpenSSL cannot recognize it.
88
*/
89
rc = 0;
90
for
(i = 0; i < 4
/* max 2x pending + 2x data = 4 */
; i++) {
91
if
((rc = SSL_shutdown(
ssl
)))
92
break
;
93
}
94
return
rc;
95
}
96
97
#endif
/* HAVE_LIBSSL */
gwlib.h
ssl
int ssl
Definition:
test_http_server.c:77
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.