root/luci/trunk/contrib/package/uhttpd/src/uhttpd-tls.c @ 5901

Revision 5901, 1.3 KB (checked in by jow, 3 years ago)

uhttpd: make Lua handler more CGI like and fork child away

Line 
1/*
2 * uhttpd - Tiny single-threaded httpd - TLS helper
3 *
4 *   Copyright (C) 2010 Jo-Philipp Wich <xm@subsignal.org>
5 *
6 *  Licensed under the Apache License, Version 2.0 (the "License");
7 *  you may not use this file except in compliance with the License.
8 *  You may obtain a copy of the License at
9 *
10 *      http://www.apache.org/licenses/LICENSE-2.0
11 *
12 *  Unless required by applicable law or agreed to in writing, software
13 *  distributed under the License is distributed on an "AS IS" BASIS,
14 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 *  See the License for the specific language governing permissions and
16 *  limitations under the License.
17 */
18
19#include "uhttpd.h"
20#include "uhttpd-tls.h"
21#include "uhttpd-utils.h"
22
23
24SSL_CTX * uh_tls_ctx_init()
25{
26    SSL_CTX *c = NULL;
27    SSL_load_error_strings();
28    SSL_library_init();
29
30    if( (c = SSL_CTX_new(TLSv1_server_method())) != NULL )
31        SSL_CTX_set_verify(c, SSL_VERIFY_NONE, NULL);
32
33    return c;
34}
35
36void uh_tls_ctx_free(struct listener *l)
37{
38    SSL_CTX_free(l->tls);
39}
40
41
42void uh_tls_client_accept(struct client *c)
43{
44    if( c->server && c->server->tls )
45    {
46        c->tls = SSL_new(c->server->tls);
47        SSL_set_fd(c->tls, c->socket);
48    }
49}
50
51void uh_tls_client_close(struct client *c)
52{
53    if( c->tls )
54    {
55        SSL_shutdown(c->tls);
56        SSL_free(c->tls);
57
58        c->tls = NULL;
59    }
60}
Note: See TracBrowser for help on using the browser.