Annotation of embedaddon/strongswan/src/libcharon/network/sender.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2012 Tobias Brunner
3: * Copyright (C) 2005-2007 Martin Willi
4: * Copyright (C) 2005 Jan Hutter
5: * HSR Hochschule fuer Technik Rapperswil
6: *
7: * This program is free software; you can redistribute it and/or modify it
8: * under the terms of the GNU General Public License as published by the
9: * Free Software Foundation; either version 2 of the License, or (at your
10: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
11: *
12: * This program is distributed in the hope that it will be useful, but
13: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15: * for more details.
16: */
17:
18: /**
19: * @defgroup sender sender
20: * @{ @ingroup network
21: */
22:
23: #ifndef SENDER_H_
24: #define SENDER_H_
25:
26: typedef struct sender_t sender_t;
27:
28: #include <library.h>
29: #include <networking/packet.h>
30:
31: /**
32: * Callback job responsible for sending IKE packets over the socket.
33: */
34: struct sender_t {
35:
36: /**
37: * Send a packet over the network.
38: *
39: * This function is non blocking and adds the packet to a queue.
40: * Whenever the sender thread thinks it's good to send the packet,
41: * it'll do so.
42: *
43: * @param packet packet to send
44: */
45: void (*send) (sender_t *this, packet_t *packet);
46:
47: /**
48: * The same as send() but does not add Non-ESP markers automatically.
49: *
50: * @param packet packet to send
51: */
52: void (*send_no_marker) (sender_t *this, packet_t *packet);
53:
54: /**
55: * Enforce a flush of the send queue.
56: *
57: * This function blocks until all queued packets have been sent.
58: */
59: void (*flush)(sender_t *this);
60:
61: /**
62: * Destroys a sender object.
63: */
64: void (*destroy) (sender_t *this);
65: };
66:
67: /**
68: * Create the sender thread.
69: *
70: * The thread will start to work, getting packets
71: * from its queue and sends them out.
72: *
73: * @return created sender object
74: */
75: sender_t * sender_create(void);
76:
77: #endif /** SENDER_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>