diff options
author | Martin Schanzenbach <schanzen@gnunet.org> | 2023-10-18 19:35:11 +0200 |
---|---|---|
committer | Martin Schanzenbach <schanzen@gnunet.org> | 2023-10-18 19:35:11 +0200 |
commit | ddfee3f564bff9c5d5719af3132d7869b8783ec4 (patch) | |
tree | e6fd7801fe6808797f3418bf081ab68d5a5ec27b /src/transport/gnunet-service-transport.h | |
parent | 852718c2473e41bc01ada0d53ad93c7da78e6ec8 (diff) | |
download | gnunet-ddfee3f564bff9c5d5719af3132d7869b8783ec4.tar.gz gnunet-ddfee3f564bff9c5d5719af3132d7869b8783ec4.zip |
BUILD: more more components into new structure; ftbfs fix
Diffstat (limited to 'src/transport/gnunet-service-transport.h')
-rw-r--r-- | src/transport/gnunet-service-transport.h | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/src/transport/gnunet-service-transport.h b/src/transport/gnunet-service-transport.h deleted file mode 100644 index ea9e71e4b..000000000 --- a/src/transport/gnunet-service-transport.h +++ /dev/null | |||
@@ -1,234 +0,0 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet. | ||
3 | Copyright (C) 2010,2011 GNUnet e.V. | ||
4 | |||
5 | GNUnet is free software: you can redistribute it and/or modify it | ||
6 | under the terms of the GNU Affero General Public License as published | ||
7 | by the Free Software Foundation, either version 3 of the License, | ||
8 | or (at your option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | Affero General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU Affero General Public License | ||
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | |||
18 | SPDX-License-Identifier: AGPL3.0-or-later | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file transport/gnunet-service-transport.h | ||
23 | * @brief globals | ||
24 | * @author Christian Grothoff | ||
25 | */ | ||
26 | #ifndef GNUNET_SERVICE_TRANSPORT_H | ||
27 | #define GNUNET_SERVICE_TRANSPORT_H | ||
28 | |||
29 | #include "gnunet_util_lib.h" | ||
30 | #include "gnunet_statistics_service.h" | ||
31 | #include "gnunet_ats_service.h" | ||
32 | #include "gnunet_transport_service.h" | ||
33 | |||
34 | #define VERBOSE_VALIDATION GNUNET_YES | ||
35 | |||
36 | /** | ||
37 | * Statistics handle. | ||
38 | */ | ||
39 | extern struct GNUNET_STATISTICS_Handle *GST_stats; | ||
40 | |||
41 | /** | ||
42 | * Configuration handle. | ||
43 | */ | ||
44 | extern const struct GNUNET_CONFIGURATION_Handle *GST_cfg; | ||
45 | |||
46 | /** | ||
47 | * Configuration handle. | ||
48 | */ | ||
49 | extern struct GNUNET_PeerIdentity GST_my_identity; | ||
50 | |||
51 | /** | ||
52 | * Handle to peerinfo service. | ||
53 | */ | ||
54 | extern struct GNUNET_PEERINFO_Handle *GST_peerinfo; | ||
55 | |||
56 | /** | ||
57 | * Our private key. | ||
58 | */ | ||
59 | extern struct GNUNET_CRYPTO_EddsaPrivateKey GST_my_private_key; | ||
60 | |||
61 | /** | ||
62 | * ATS handle. | ||
63 | */ | ||
64 | extern struct GNUNET_ATS_SchedulingHandle *GST_ats; | ||
65 | |||
66 | /** | ||
67 | * ATS connectivity handle. | ||
68 | */ | ||
69 | extern struct GNUNET_ATS_ConnectivityHandle *GST_ats_connect; | ||
70 | |||
71 | /** | ||
72 | * Interface scanner determines our LAN address range(s). | ||
73 | */ | ||
74 | extern struct GNUNET_NT_InterfaceScanner *GST_is; | ||
75 | |||
76 | |||
77 | /** | ||
78 | * Function to call when a peer's address has changed | ||
79 | * | ||
80 | * @param cls closure | ||
81 | * @param peer peer this update is about, | ||
82 | * @param address address, NULL for disconnect notification | ||
83 | */ | ||
84 | typedef void | ||
85 | (*GNUNET_TRANSPORT_NeighbourChangeCallback) (void *cls, | ||
86 | const struct | ||
87 | GNUNET_PeerIdentity *peer, | ||
88 | const struct | ||
89 | GNUNET_HELLO_Address *address, | ||
90 | enum GNUNET_TRANSPORT_PeerState | ||
91 | state, | ||
92 | struct GNUNET_TIME_Absolute | ||
93 | state_timeout, | ||
94 | struct GNUNET_BANDWIDTH_Value32NBO | ||
95 | bandwidth_in, | ||
96 | struct GNUNET_BANDWIDTH_Value32NBO | ||
97 | bandwidth_out); | ||
98 | |||
99 | |||
100 | /** | ||
101 | * Continuation called from a blacklist test. | ||
102 | * | ||
103 | * @param cls closure | ||
104 | * @param peer identity of peer that was tested | ||
105 | * @param address address associated with the request | ||
106 | * @param session session associated with the request | ||
107 | * @param result #GNUNET_OK if the connection is allowed, | ||
108 | * #GNUNET_NO if not, | ||
109 | * #GNUNET_SYSERR if operation was aborted | ||
110 | */ | ||
111 | typedef void | ||
112 | (*GST_BlacklistTestContinuation) (void *cls, | ||
113 | const struct GNUNET_PeerIdentity *peer, | ||
114 | const struct GNUNET_HELLO_Address *address, | ||
115 | struct GNUNET_ATS_Session *session, | ||
116 | int result); | ||
117 | |||
118 | |||
119 | /** | ||
120 | * Add the given peer to the blacklist (for the given transport). | ||
121 | * | ||
122 | * @param peer peer to blacklist | ||
123 | * @param transport_name transport to blacklist for this peer, NULL for all | ||
124 | */ | ||
125 | void | ||
126 | GST_blacklist_add_peer (const struct GNUNET_PeerIdentity *peer, | ||
127 | const char *transport_name); | ||
128 | |||
129 | |||
130 | /** | ||
131 | * Handle to an active blacklist check. | ||
132 | */ | ||
133 | struct GST_BlacklistCheck; | ||
134 | |||
135 | |||
136 | /** | ||
137 | * Test if a peer/transport combination is blacklisted. | ||
138 | * | ||
139 | * @param peer the identity of the peer to test | ||
140 | * @param transport_name name of the transport to test, never NULL | ||
141 | * @param cont function to call with result | ||
142 | * @param cont_cls closure for @a cont | ||
143 | * @param address address to pass back to @a cont, can be NULL | ||
144 | * @param session session to pass back to @a cont, can be NULL | ||
145 | * @return handle to the blacklist check, NULL if the decision | ||
146 | * was made instantly and @a cont was already called | ||
147 | */ | ||
148 | struct GST_BlacklistCheck * | ||
149 | GST_blacklist_test_allowed (const struct GNUNET_PeerIdentity *peer, | ||
150 | const char *transport_name, | ||
151 | GST_BlacklistTestContinuation cont, | ||
152 | void *cont_cls, | ||
153 | const struct GNUNET_HELLO_Address *address, | ||
154 | struct GNUNET_ATS_Session *session); | ||
155 | |||
156 | |||
157 | /** | ||
158 | * Abort blacklist if @a address and @a session match. | ||
159 | * | ||
160 | * @param address address used to abort matching checks | ||
161 | * @param session session used to abort matching checks | ||
162 | */ | ||
163 | void | ||
164 | GST_blacklist_abort_matching (const struct GNUNET_HELLO_Address *address, | ||
165 | struct GNUNET_ATS_Session *session); | ||
166 | |||
167 | /** | ||
168 | * Cancel a blacklist check. | ||
169 | * | ||
170 | * @param bc check to cancel | ||
171 | */ | ||
172 | void | ||
173 | GST_blacklist_test_cancel (struct GST_BlacklistCheck *bc); | ||
174 | |||
175 | |||
176 | /** | ||
177 | * Function called by the transport for each received message. | ||
178 | * | ||
179 | * @param cls closure, const char* with the name of the plugin we received the message from | ||
180 | * @param address address and (claimed) identity of the other peer | ||
181 | * @param session identifier used for this session (NULL for plugins | ||
182 | * that do not offer bi-directional communication to the sender | ||
183 | * using the same "connection") | ||
184 | * @param message the message, NULL if we only care about | ||
185 | * learning about the delay until we should receive again | ||
186 | * @return how long the plugin should wait until receiving more data | ||
187 | * (plugins that do not support this, can ignore the return value) | ||
188 | */ | ||
189 | struct GNUNET_TIME_Relative | ||
190 | GST_receive_callback (void *cls, | ||
191 | const struct GNUNET_HELLO_Address *address, | ||
192 | struct GNUNET_ATS_Session *session, | ||
193 | const struct GNUNET_MessageHeader *message); | ||
194 | |||
195 | /** | ||
196 | * Broadcast the given message to all of our clients. | ||
197 | * | ||
198 | * @param msg message to broadcast | ||
199 | * @param may_drop #GNUNET_YES if the message can be dropped / is payload | ||
200 | */ | ||
201 | void | ||
202 | GST_clients_broadcast (const struct GNUNET_MessageHeader *msg, | ||
203 | int may_drop); | ||
204 | |||
205 | |||
206 | /** | ||
207 | * Broadcast the new active address to all clients monitoring the peer. | ||
208 | * | ||
209 | * @param peer peer this update is about (never NULL) | ||
210 | * @param address address, NULL on disconnect | ||
211 | * @param state the current state of the peer | ||
212 | * @param state_timeout the time out for the state | ||
213 | */ | ||
214 | void | ||
215 | GST_clients_broadcast_peer_notification (const struct GNUNET_PeerIdentity *peer, | ||
216 | const struct | ||
217 | GNUNET_HELLO_Address *address, | ||
218 | enum GNUNET_TRANSPORT_PeerState state, | ||
219 | struct GNUNET_TIME_Absolute | ||
220 | state_timeout); | ||
221 | |||
222 | |||
223 | /** | ||
224 | * Notify all clients about a disconnect, and cancel | ||
225 | * pending SEND_OK messages for this peer. | ||
226 | * | ||
227 | * @param peer peer that disconnected | ||
228 | */ | ||
229 | void | ||
230 | GST_clients_broadcast_disconnect (const struct GNUNET_PeerIdentity *peer); | ||
231 | |||
232 | |||
233 | #endif | ||
234 | /* end of file gnunet-service-transport_plugins.h */ | ||