Annotation of embedaddon/strongswan/src/libpttls/pt_tls_dispatcher.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2012 Martin Willi
3: * Copyright (C) 2012 revosec AG
4: *
5: * This program is free software; you can redistribute it and/or modify it
6: * under the terms of the GNU General Public License as published by the
7: * Free Software Foundation; either version 2 of the License, or (at your
8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13: * for more details.
14: */
15:
16: /**
17: * @defgroup pt_tls_dispatcher pt_tls_dispatcher
18: * @{ @ingroup pt_tls
19: */
20:
21: #ifndef PT_TLS_DISPATCHER_H_
22: #define PT_TLS_DISPATCHER_H_
23:
24: #include <networking/host.h>
25: #include <utils/identification.h>
26:
27: #include <tnc/tnccs/tnccs.h>
28:
29: #include "pt_tls.h"
30:
31: typedef struct pt_tls_dispatcher_t pt_tls_dispatcher_t;
32:
33: /**
34: * Constructor callback to create TNCCS to use within PT-TLS.
35: *
36: * @param server server identity
37: * @param peer peer identity
38: */
39: typedef tnccs_t* (pt_tls_tnccs_constructor_t)(identification_t *server,
40: identification_t *peer);
41:
42: /**
43: * PT-TLS dispatcher service, handles PT-TLS connections as a server.
44: */
45: struct pt_tls_dispatcher_t {
46:
47: /**
48: * Dispatch and handle PT-TLS connections.
49: *
50: * This call is blocking and a thread cancellation point. The passed
51: * constructor gets called for each dispatched connection.
52: *
53: * @param create TNCCS constructor function to use
54: */
55: void (*dispatch)(pt_tls_dispatcher_t *this,
56: pt_tls_tnccs_constructor_t *create);
57:
58: /**
59: * Destroy a pt_tls_dispatcher_t.
60: */
61: void (*destroy)(pt_tls_dispatcher_t *this);
62: };
63:
64: /**
65: * Create a pt_tls_dispatcher instance.
66: *
67: * @param address server address with port to listen on, gets owned
68: * @param id TLS server identity, gets owned
69: * @param auth client authentication to perform
70: * @return dispatcher service
71: */
72: pt_tls_dispatcher_t *pt_tls_dispatcher_create(host_t *address,
73: identification_t *id, pt_tls_auth_t auth);
74:
75: #endif /** PT_TLS_DISPATCHER_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>