diff options
author | ng0 <ng0@n0.is> | 2019-09-08 12:33:09 +0000 |
---|---|---|
committer | ng0 <ng0@n0.is> | 2019-09-08 12:33:09 +0000 |
commit | d41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb (patch) | |
tree | 9efd18ea7d425652085ed0bd5e8e45604bc5f6b9 /src/transport/gnunet-transport-wlan-sender.c | |
parent | a0fce305c565c0937d917a92712f15e9c5736260 (diff) | |
download | gnunet-d41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb.tar.gz gnunet-d41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb.zip |
uncrustify as demanded.
Diffstat (limited to 'src/transport/gnunet-transport-wlan-sender.c')
-rw-r--r-- | src/transport/gnunet-transport-wlan-sender.c | 280 |
1 files changed, 140 insertions, 140 deletions
diff --git a/src/transport/gnunet-transport-wlan-sender.c b/src/transport/gnunet-transport-wlan-sender.c index 36273f765..c3485ac47 100644 --- a/src/transport/gnunet-transport-wlan-sender.c +++ b/src/transport/gnunet-transport-wlan-sender.c | |||
@@ -1,19 +1,19 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of GNUnet | 2 | This file is part of GNUnet |
3 | Copyright (C) 2011 GNUnet e.V. | 3 | Copyright (C) 2011 GNUnet e.V. |
4 | 4 | ||
5 | GNUnet is free software: you can redistribute it and/or modify it | 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 | 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, | 7 | by the Free Software Foundation, either version 3 of the License, |
8 | or (at your option) any later version. | 8 | or (at your option) any later version. |
9 | 9 | ||
10 | GNUnet is distributed in the hope that it will be useful, but | 10 | GNUnet is distributed in the hope that it will be useful, but |
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 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/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | ||
18 | SPDX-License-Identifier: AGPL3.0-or-later | 18 | SPDX-License-Identifier: AGPL3.0-or-later |
19 | */ | 19 | */ |
@@ -54,11 +54,11 @@ | |||
54 | * @return GNUNET_YES at success | 54 | * @return GNUNET_YES at success |
55 | */ | 55 | */ |
56 | static int | 56 | static int |
57 | getRadiotapHeader (struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *header, | 57 | getRadiotapHeader(struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *header, |
58 | uint16_t size) | 58 | uint16_t size) |
59 | { | 59 | { |
60 | header->header.size = htons (size); | 60 | header->header.size = htons(size); |
61 | header->header.type = htons (GNUNET_MESSAGE_TYPE_WLAN_DATA_TO_HELPER); | 61 | header->header.type = htons(GNUNET_MESSAGE_TYPE_WLAN_DATA_TO_HELPER); |
62 | header->rate = 255; | 62 | header->rate = 255; |
63 | header->tx_power = 0; | 63 | header->tx_power = 0; |
64 | header->antenna = 0; | 64 | header->antenna = 0; |
@@ -74,18 +74,18 @@ getRadiotapHeader (struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *header, | |||
74 | * @return GNUNET_YES if there was no error | 74 | * @return GNUNET_YES if there was no error |
75 | */ | 75 | */ |
76 | static int | 76 | static int |
77 | getWlanHeader (struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame *Header, | 77 | getWlanHeader(struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame *Header, |
78 | const struct GNUNET_TRANSPORT_WLAN_MacAddress *to_mac_addr, | 78 | const struct GNUNET_TRANSPORT_WLAN_MacAddress *to_mac_addr, |
79 | const struct GNUNET_TRANSPORT_WLAN_MacAddress *mac, | 79 | const struct GNUNET_TRANSPORT_WLAN_MacAddress *mac, |
80 | unsigned int size) | 80 | unsigned int size) |
81 | { | 81 | { |
82 | const int rate = 11000000; | 82 | const int rate = 11000000; |
83 | 83 | ||
84 | Header->frame_control = htons (IEEE80211_FC0_TYPE_DATA); | 84 | Header->frame_control = htons(IEEE80211_FC0_TYPE_DATA); |
85 | Header->addr3 = mac_bssid_gnunet; | 85 | Header->addr3 = mac_bssid_gnunet; |
86 | Header->addr2 = *mac; | 86 | Header->addr2 = *mac; |
87 | Header->addr1 = *to_mac_addr; | 87 | Header->addr1 = *to_mac_addr; |
88 | Header->duration = GNUNET_htole16 ((size * 1000000) / rate + 290); | 88 | Header->duration = GNUNET_htole16((size * 1000000) / rate + 290); |
89 | Header->llc[0] = WLAN_LLC_DSAP_FIELD; | 89 | Header->llc[0] = WLAN_LLC_DSAP_FIELD; |
90 | Header->llc[1] = WLAN_LLC_SSAP_FIELD; | 90 | Header->llc[1] = WLAN_LLC_SSAP_FIELD; |
91 | Header->llc[2] = 0; // FIXME | 91 | Header->llc[2] = 0; // FIXME |
@@ -95,7 +95,7 @@ getWlanHeader (struct GNUNET_TRANSPORT_WLAN_Ieee80211Frame *Header, | |||
95 | 95 | ||
96 | 96 | ||
97 | int | 97 | int |
98 | main (int argc, char *argv[]) | 98 | main(int argc, char *argv[]) |
99 | { | 99 | { |
100 | char msg_buf[WLAN_MTU]; | 100 | char msg_buf[WLAN_MTU]; |
101 | struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *radiotap; | 101 | struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *radiotap; |
@@ -114,137 +114,137 @@ main (int argc, char *argv[]) | |||
114 | int macpipe[2]; /* This holds the fd for the input & output of the pipe */ | 114 | int macpipe[2]; /* This holds the fd for the input & output of the pipe */ |
115 | 115 | ||
116 | if (4 != argc) | 116 | if (4 != argc) |
117 | { | 117 | { |
118 | fprintf ( | 118 | fprintf( |
119 | stderr, | 119 | stderr, |
120 | "This program must be started with the interface and the targets and source mac as argument.\n"); | 120 | "This program must be started with the interface and the targets and source mac as argument.\n"); |
121 | fprintf (stderr, | 121 | fprintf(stderr, |
122 | "Usage: interface-name mac-DST mac-SRC\n" | 122 | "Usage: interface-name mac-DST mac-SRC\n" |
123 | "e.g. mon0 11-22-33-44-55-66 12-34-56-78-90-ab\n"); | 123 | "e.g. mon0 11-22-33-44-55-66 12-34-56-78-90-ab\n"); |
124 | return 1; | 124 | return 1; |
125 | } | 125 | } |
126 | if (6 != SSCANF (argv[2], | 126 | if (6 != SSCANF(argv[2], |
127 | "%x-%x-%x-%x-%x-%x", | 127 | "%x-%x-%x-%x-%x-%x", |
128 | &temp[0], | 128 | &temp[0], |
129 | &temp[1], | 129 | &temp[1], |
130 | &temp[2], | 130 | &temp[2], |
131 | &temp[3], | 131 | &temp[3], |
132 | &temp[4], | 132 | &temp[4], |
133 | &temp[5])) | 133 | &temp[5])) |
134 | { | 134 | { |
135 | fprintf (stderr, | 135 | fprintf(stderr, |
136 | "Usage: interface-name mac-DST mac-SRC\n" | 136 | "Usage: interface-name mac-DST mac-SRC\n" |
137 | "e.g. mon0 11-22-33-44-55-66 12-34-56-78-90-ab\n"); | 137 | "e.g. mon0 11-22-33-44-55-66 12-34-56-78-90-ab\n"); |
138 | return 1; | 138 | return 1; |
139 | } | 139 | } |
140 | for (i = 0; i < 6; i++) | 140 | for (i = 0; i < 6; i++) |
141 | outmac.mac[i] = temp[i]; | 141 | outmac.mac[i] = temp[i]; |
142 | if (6 != SSCANF (argv[3], | 142 | if (6 != SSCANF(argv[3], |
143 | "%x-%x-%x-%x-%x-%x", | 143 | "%x-%x-%x-%x-%x-%x", |
144 | &temp[0], | 144 | &temp[0], |
145 | &temp[1], | 145 | &temp[1], |
146 | &temp[2], | 146 | &temp[2], |
147 | &temp[3], | 147 | &temp[3], |
148 | &temp[4], | 148 | &temp[4], |
149 | &temp[5])) | 149 | &temp[5])) |
150 | { | 150 | { |
151 | fprintf (stderr, | 151 | fprintf(stderr, |
152 | "Usage: interface-name mac-DST mac-SRC\n" | 152 | "Usage: interface-name mac-DST mac-SRC\n" |
153 | "e.g. mon0 11-22-33-44-55-66 12-34-56-78-90-ab\n"); | 153 | "e.g. mon0 11-22-33-44-55-66 12-34-56-78-90-ab\n"); |
154 | return 1; | 154 | return 1; |
155 | } | 155 | } |
156 | for (i = 0; i < 6; i++) | 156 | for (i = 0; i < 6; i++) |
157 | inmac.mac[i] = temp[i]; | 157 | inmac.mac[i] = temp[i]; |
158 | 158 | ||
159 | 159 | ||
160 | /* Setup communication pipeline first */ | 160 | /* Setup communication pipeline first */ |
161 | if (pipe (commpipe)) | 161 | if (pipe(commpipe)) |
162 | { | 162 | { |
163 | fprintf (stderr, "Failed to create pipe: %s\n", strerror (errno)); | 163 | fprintf(stderr, "Failed to create pipe: %s\n", strerror(errno)); |
164 | exit (1); | 164 | exit(1); |
165 | } | 165 | } |
166 | if (pipe (macpipe)) | 166 | if (pipe(macpipe)) |
167 | { | 167 | { |
168 | fprintf (stderr, "Failed to create pipe: %s\n", strerror (errno)); | 168 | fprintf(stderr, "Failed to create pipe: %s\n", strerror(errno)); |
169 | exit (1); | 169 | exit(1); |
170 | } | 170 | } |
171 | 171 | ||
172 | /* Attempt to fork and check for errors */ | 172 | /* Attempt to fork and check for errors */ |
173 | if ((pid = fork ()) == -1) | 173 | if ((pid = fork()) == -1) |
174 | { | 174 | { |
175 | fprintf (stderr, "Failed to fork: %s\n", strerror (errno)); | 175 | fprintf(stderr, "Failed to fork: %s\n", strerror(errno)); |
176 | exit (1); | 176 | exit(1); |
177 | } | 177 | } |
178 | memset (msg_buf, 0x42, sizeof (msg_buf)); | 178 | memset(msg_buf, 0x42, sizeof(msg_buf)); |
179 | if (pid) | 179 | if (pid) |
180 | { | ||
181 | /* A positive (non-negative) PID indicates the parent process */ | ||
182 | if (0 != close (commpipe[0])) /* Close unused side of pipe (in side) */ | ||
183 | fprintf (stderr, "Failed to close fd: %s\n", strerror (errno)); | ||
184 | setvbuf (stdout, | ||
185 | (char *) NULL, | ||
186 | _IONBF, | ||
187 | 0); /* Set non-buffered output on stdout */ | ||
188 | |||
189 | if (0 != close (macpipe[1])) | ||
190 | fprintf (stderr, "Failed to close fd: %s\n", strerror (errno)); | ||
191 | if (sizeof (hcm) != read (macpipe[0], &hcm, sizeof (hcm))) | ||
192 | fprintf (stderr, "Failed to read hcm...\n"); | ||
193 | fprintf (stderr, | ||
194 | "Got MAC %.2X:%.2X:%.2X:%.2X:%.2X:%.2X\n", | ||
195 | hcm.mac.mac[0], | ||
196 | hcm.mac.mac[1], | ||
197 | hcm.mac.mac[2], | ||
198 | hcm.mac.mac[3], | ||
199 | hcm.mac.mac[4], | ||
200 | hcm.mac.mac[5]); | ||
201 | radiotap = (struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *) msg_buf; | ||
202 | getRadiotapHeader (radiotap, WLAN_MTU); | ||
203 | getWlanHeader (&radiotap->frame, &outmac, &inmac, WLAN_MTU); | ||
204 | start = time (NULL); | ||
205 | count = 0; | ||
206 | while (1) | ||
207 | { | 180 | { |
208 | ret = write (commpipe[1], msg_buf, WLAN_MTU); | 181 | /* A positive (non-negative) PID indicates the parent process */ |
209 | if (0 > ret) | 182 | if (0 != close(commpipe[0])) /* Close unused side of pipe (in side) */ |
210 | { | 183 | fprintf(stderr, "Failed to close fd: %s\n", strerror(errno)); |
211 | fprintf (stderr, "write failed: %s\n", strerror (errno)); | 184 | setvbuf(stdout, |
212 | break; | 185 | (char *)NULL, |
213 | } | 186 | _IONBF, |
214 | count += ret; | 187 | 0); /* Set non-buffered output on stdout */ |
215 | akt = time (NULL); | 188 | |
216 | if (akt - start > 30) | 189 | if (0 != close(macpipe[1])) |
217 | { | 190 | fprintf(stderr, "Failed to close fd: %s\n", strerror(errno)); |
218 | bytes_per_s = count / (akt - start); | 191 | if (sizeof(hcm) != read(macpipe[0], &hcm, sizeof(hcm))) |
219 | bytes_per_s /= 1024; | 192 | fprintf(stderr, "Failed to read hcm...\n"); |
220 | printf ("send %f kbytes/s\n", bytes_per_s); | 193 | fprintf(stderr, |
221 | start = akt; | 194 | "Got MAC %.2X:%.2X:%.2X:%.2X:%.2X:%.2X\n", |
222 | count = 0; | 195 | hcm.mac.mac[0], |
223 | } | 196 | hcm.mac.mac[1], |
197 | hcm.mac.mac[2], | ||
198 | hcm.mac.mac[3], | ||
199 | hcm.mac.mac[4], | ||
200 | hcm.mac.mac[5]); | ||
201 | radiotap = (struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *)msg_buf; | ||
202 | getRadiotapHeader(radiotap, WLAN_MTU); | ||
203 | getWlanHeader(&radiotap->frame, &outmac, &inmac, WLAN_MTU); | ||
204 | start = time(NULL); | ||
205 | count = 0; | ||
206 | while (1) | ||
207 | { | ||
208 | ret = write(commpipe[1], msg_buf, WLAN_MTU); | ||
209 | if (0 > ret) | ||
210 | { | ||
211 | fprintf(stderr, "write failed: %s\n", strerror(errno)); | ||
212 | break; | ||
213 | } | ||
214 | count += ret; | ||
215 | akt = time(NULL); | ||
216 | if (akt - start > 30) | ||
217 | { | ||
218 | bytes_per_s = count / (akt - start); | ||
219 | bytes_per_s /= 1024; | ||
220 | printf("send %f kbytes/s\n", bytes_per_s); | ||
221 | start = akt; | ||
222 | count = 0; | ||
223 | } | ||
224 | } | ||
224 | } | 225 | } |
225 | } | ||
226 | else | 226 | else |
227 | { | ||
228 | /* A zero PID indicates that this is the child process */ | ||
229 | (void) close (0); | ||
230 | (void) close (1); | ||
231 | if (-1 == | ||
232 | dup2 (commpipe[0], 0)) /* Replace stdin with the in side of the pipe */ | ||
233 | fprintf (stderr, "dup2 failed: %s\n", strerror (errno)); | ||
234 | if (-1 == | ||
235 | dup2 (macpipe[1], 1)) /* Replace stdout with the out side of the pipe */ | ||
236 | fprintf (stderr, "dup2 failed: %s\n", strerror (errno)); | ||
237 | (void) close (commpipe[1]); /* Close unused side of pipe (out side) */ | ||
238 | (void) close (macpipe[0]); /* Close unused side of pipe (in side) */ | ||
239 | /* Replace the child fork with a new process */ | ||
240 | if (execlp ("gnunet-helper-transport-wlan", | ||
241 | "gnunet-helper-transport-wlan", | ||
242 | argv[1], | ||
243 | NULL) == -1) | ||
244 | { | 227 | { |
245 | fprintf (stderr, "Could not start gnunet-helper-transport-wlan!"); | 228 | /* A zero PID indicates that this is the child process */ |
246 | _exit (1); | 229 | (void)close(0); |
230 | (void)close(1); | ||
231 | if (-1 == | ||
232 | dup2(commpipe[0], 0)) /* Replace stdin with the in side of the pipe */ | ||
233 | fprintf(stderr, "dup2 failed: %s\n", strerror(errno)); | ||
234 | if (-1 == | ||
235 | dup2(macpipe[1], 1)) /* Replace stdout with the out side of the pipe */ | ||
236 | fprintf(stderr, "dup2 failed: %s\n", strerror(errno)); | ||
237 | (void)close(commpipe[1]); /* Close unused side of pipe (out side) */ | ||
238 | (void)close(macpipe[0]); /* Close unused side of pipe (in side) */ | ||
239 | /* Replace the child fork with a new process */ | ||
240 | if (execlp("gnunet-helper-transport-wlan", | ||
241 | "gnunet-helper-transport-wlan", | ||
242 | argv[1], | ||
243 | NULL) == -1) | ||
244 | { | ||
245 | fprintf(stderr, "Could not start gnunet-helper-transport-wlan!"); | ||
246 | _exit(1); | ||
247 | } | ||
247 | } | 248 | } |
248 | } | ||
249 | return 0; | 249 | return 0; |
250 | } | 250 | } |