summaryrefslogtreecommitdiff
path: root/libopie2/opienet/opcap.h
Unidiff
Diffstat (limited to 'libopie2/opienet/opcap.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opienet/opcap.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/libopie2/opienet/opcap.h b/libopie2/opienet/opcap.h
index 99631ba..6bf7416 100644
--- a/libopie2/opienet/opcap.h
+++ b/libopie2/opienet/opcap.h
@@ -59,25 +59,25 @@ extern "C" // work around a bpf/pcap conflict in recent headers
59 59
60/* TYPEDEFS */ 60/* TYPEDEFS */
61typedef struct timeval timevalstruct; 61typedef struct timeval timevalstruct;
62typedef struct pcap_pkthdr packetheaderstruct; 62typedef struct pcap_pkthdr packetheaderstruct;
63 63
64/* FORWARDS */ 64/* FORWARDS */
65class OPacketCapturer; 65class OPacketCapturer;
66class QSocketNotifier; 66class QSocketNotifier;
67 67
68/*====================================================================================== 68/*======================================================================================
69 * OPacket - A frame on the wire 69 * OPacket - A frame on the wire
70 *======================================================================================*/ 70 *======================================================================================*/
71 71// FIXME how many OPackets do we've at a time? QObject seams to be a big for that usage
72class OPacket : public QObject 72class OPacket : public QObject
73{ 73{
74 Q_OBJECT 74 Q_OBJECT
75 75
76 public: 76 public:
77 OPacket( int datalink, packetheaderstruct, const unsigned char*, QObject* parent ); 77 OPacket( int datalink, packetheaderstruct, const unsigned char*, QObject* parent );
78 virtual ~OPacket(); 78 virtual ~OPacket();
79 79
80 timevalstruct timeval() const; 80 timevalstruct timeval() const;
81 81
82 int caplen() const; 82 int caplen() const;
83 int len() const; 83 int len() const;
@@ -86,45 +86,46 @@ class OPacket : public QObject
86 void updateStats( QMap<QString,int>&, QObjectList* ); 86 void updateStats( QMap<QString,int>&, QObjectList* );
87 87
88 private: 88 private:
89 const packetheaderstruct _hdr; // pcap packet header 89 const packetheaderstruct _hdr; // pcap packet header
90 const unsigned char* _data; // pcap packet data 90 const unsigned char* _data; // pcap packet data
91 const unsigned char* _end; // end of pcap packet data 91 const unsigned char* _end; // end of pcap packet data
92}; 92};
93 93
94/*====================================================================================== 94/*======================================================================================
95 * OEthernetPacket - DLT_EN10MB frame 95 * OEthernetPacket - DLT_EN10MB frame
96 *======================================================================================*/ 96 *======================================================================================*/
97 97
98//FIXME same critic as above -zecke
98class OEthernetPacket : public QObject 99class OEthernetPacket : public QObject
99{ 100{
100 Q_OBJECT 101 Q_OBJECT
101 102
102 public: 103 public:
103 OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 ); 104 OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 );
104 virtual ~OEthernetPacket(); 105 virtual ~OEthernetPacket();
105 106
106 OMacAddress sourceAddress() const; 107 OMacAddress sourceAddress() const;
107 OMacAddress destinationAddress() const; 108 OMacAddress destinationAddress() const;
108 int type() const; 109 int type() const;
109 110
110 private: 111 private:
111 const struct ether_header* _ether; 112 const struct ether_header* _ether;
112}; 113};
113 114
114 115
115/*====================================================================================== 116/*======================================================================================
116 * OWaveLanPacket - DLT_IEEE802_11 frame 117 * OWaveLanPacket - DLT_IEEE802_11 frame
117 *======================================================================================*/ 118 *======================================================================================*/
118 119//FIXME same
119class OWaveLanPacket : public QObject 120class OWaveLanPacket : public QObject
120{ 121{
121 Q_OBJECT 122 Q_OBJECT
122 123
123 public: 124 public:
124 OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 ); 125 OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 );
125 virtual ~OWaveLanPacket(); 126 virtual ~OWaveLanPacket();
126 127
127 int duration() const; 128 int duration() const;
128 bool fromDS() const; 129 bool fromDS() const;
129 bool toDS() const; 130 bool toDS() const;
130 virtual OMacAddress macAddress1() const; 131 virtual OMacAddress macAddress1() const;
@@ -136,25 +137,25 @@ class OWaveLanPacket : public QObject
136 int subType() const; 137 int subType() const;
137 int version() const; 138 int version() const;
138 bool usesWep() const; 139 bool usesWep() const;
139 140
140 private: 141 private:
141 const struct ieee_802_11_header* _wlanhdr; 142 const struct ieee_802_11_header* _wlanhdr;
142}; 143};
143 144
144 145
145/*====================================================================================== 146/*======================================================================================
146 * OWaveLanManagementPacket - type: management (T_MGMT) 147 * OWaveLanManagementPacket - type: management (T_MGMT)
147 *======================================================================================*/ 148 *======================================================================================*/
148 149//FIXME same as above -zecke
149class OWaveLanManagementPacket : public QObject 150class OWaveLanManagementPacket : public QObject
150{ 151{
151 Q_OBJECT 152 Q_OBJECT
152 153
153 public: 154 public:
154 OWaveLanManagementPacket( const unsigned char*, const struct ieee_802_11_mgmt_header*, OWaveLanPacket* parent = 0 ); 155 OWaveLanManagementPacket( const unsigned char*, const struct ieee_802_11_mgmt_header*, OWaveLanPacket* parent = 0 );
155 virtual ~OWaveLanManagementPacket(); 156 virtual ~OWaveLanManagementPacket();
156 157
157 QString managementType() const; 158 QString managementType() const;
158 159
159 int beaconInterval() const; 160 int beaconInterval() const;
160 int capabilities() const; // generic 161 int capabilities() const; // generic
@@ -165,205 +166,213 @@ class OWaveLanManagementPacket : public QObject
165 bool canCFP_REQ() const; 166 bool canCFP_REQ() const;
166 bool canPrivacy() const; 167 bool canPrivacy() const;
167 168
168 private: 169 private:
169 const struct ieee_802_11_mgmt_header* _header; 170 const struct ieee_802_11_mgmt_header* _header;
170 const struct ieee_802_11_mgmt_body* _body; 171 const struct ieee_802_11_mgmt_body* _body;
171}; 172};
172 173
173 174
174/*====================================================================================== 175/*======================================================================================
175 * OWaveLanManagementSSID 176 * OWaveLanManagementSSID
176 *======================================================================================*/ 177 *======================================================================================*/
177 178//FIXME is QObject necessary? -zecke
178class OWaveLanManagementSSID : public QObject 179class OWaveLanManagementSSID : public QObject
179{ 180{
180 Q_OBJECT 181 Q_OBJECT
181 182
182 public: 183 public:
183 OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 ); 184 OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 );
184 virtual ~OWaveLanManagementSSID(); 185 virtual ~OWaveLanManagementSSID();
185 186
186 QString ID() const; 187 QString ID() const;
187 188
188 private: 189 private:
189 const struct ssid_t* _data; 190 const struct ssid_t* _data;
190}; 191};
191 192
192/*====================================================================================== 193/*======================================================================================
193 * OWaveLanManagementRates 194 * OWaveLanManagementRates
194 *======================================================================================*/ 195 *======================================================================================*/
195 196// FIXME same as above -zecke
196class OWaveLanManagementRates : public QObject 197class OWaveLanManagementRates : public QObject
197{ 198{
198 Q_OBJECT 199 Q_OBJECT
199 200
200 public: 201 public:
201 OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 ); 202 OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 );
202 virtual ~OWaveLanManagementRates(); 203 virtual ~OWaveLanManagementRates();
203 204
204 private: 205 private:
205 const struct rates_t* _data; 206 const struct rates_t* _data;
206}; 207};
207 208
208/*====================================================================================== 209/*======================================================================================
209 * OWaveLanManagementCF 210 * OWaveLanManagementCF
210 *======================================================================================*/ 211 *======================================================================================*/
211 212
213//FIXME same....
212class OWaveLanManagementCF : public QObject 214class OWaveLanManagementCF : public QObject
213{ 215{
214 Q_OBJECT 216 Q_OBJECT
215 217
216 public: 218 public:
217 OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 ); 219 OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 );
218 virtual ~OWaveLanManagementCF(); 220 virtual ~OWaveLanManagementCF();
219 221
220 private: 222 private:
221 const struct cf_t* _data; 223 const struct cf_t* _data;
222}; 224};
223 225
224/*====================================================================================== 226/*======================================================================================
225 * OWaveLanManagementFH 227 * OWaveLanManagementFH
226 *======================================================================================*/ 228 *======================================================================================*/
227 229
230//FIXME same
228class OWaveLanManagementFH : public QObject 231class OWaveLanManagementFH : public QObject
229{ 232{
230 Q_OBJECT 233 Q_OBJECT
231 234
232 public: 235 public:
233 OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 ); 236 OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 );
234 virtual ~OWaveLanManagementFH(); 237 virtual ~OWaveLanManagementFH();
235 238
236 private: 239 private:
237 const struct fh_t* _data; 240 const struct fh_t* _data;
238}; 241};
239 242
240/*====================================================================================== 243/*======================================================================================
241 * OWaveLanManagementDS 244 * OWaveLanManagementDS
242 *======================================================================================*/ 245 *======================================================================================*/
243 246//FIXME same
244class OWaveLanManagementDS : public QObject 247class OWaveLanManagementDS : public QObject
245{ 248{
246 Q_OBJECT 249 Q_OBJECT
247 250
248 public: 251 public:
249 OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 ); 252 OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 );
250 virtual ~OWaveLanManagementDS(); 253 virtual ~OWaveLanManagementDS();
251 254
252 int channel() const; 255 int channel() const;
253 256
254 private: 257 private:
255 const struct ds_t* _data; 258 const struct ds_t* _data;
256}; 259};
257 260
258/*====================================================================================== 261/*======================================================================================
259 * OWaveLanManagementTim 262 * OWaveLanManagementTim
260 *======================================================================================*/ 263 *======================================================================================*/
261 264
265//FIXME guess what?
262class OWaveLanManagementTim : public QObject 266class OWaveLanManagementTim : public QObject
263{ 267{
264 Q_OBJECT 268 Q_OBJECT
265 269
266 public: 270 public:
267 OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 ); 271 OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 );
268 virtual ~OWaveLanManagementTim(); 272 virtual ~OWaveLanManagementTim();
269 273
270 private: 274 private:
271 const struct tim_t* _data; 275 const struct tim_t* _data;
272}; 276};
273 277
274/*====================================================================================== 278/*======================================================================================
275 * OWaveLanManagementIBSS 279 * OWaveLanManagementIBSS
276 *======================================================================================*/ 280 *======================================================================================*/
277 281
282//FIXME same as above ( Qobject )
278class OWaveLanManagementIBSS : public QObject 283class OWaveLanManagementIBSS : public QObject
279{ 284{
280 Q_OBJECT 285 Q_OBJECT
281 286
282 public: 287 public:
283 OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 ); 288 OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 );
284 virtual ~OWaveLanManagementIBSS(); 289 virtual ~OWaveLanManagementIBSS();
285 290
286 private: 291 private:
287 const struct ibss_t* _data; 292 const struct ibss_t* _data;
288}; 293};
289 294
290/*====================================================================================== 295/*======================================================================================
291 * OWaveLanManagementChallenge 296 * OWaveLanManagementChallenge
292 *======================================================================================*/ 297 *======================================================================================*/
293 298
299// Qobject do we need that??
294class OWaveLanManagementChallenge : public QObject 300class OWaveLanManagementChallenge : public QObject
295{ 301{
296 Q_OBJECT 302 Q_OBJECT
297 303
298 public: 304 public:
299 OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 ); 305 OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 );
300 virtual ~OWaveLanManagementChallenge(); 306 virtual ~OWaveLanManagementChallenge();
301 307
302 private: 308 private:
303 const struct challenge_t* _data; 309 const struct challenge_t* _data;
304}; 310};
305 311
306/*====================================================================================== 312/*======================================================================================
307 * OWaveLanDataPacket - type: data (T_DATA) 313 * OWaveLanDataPacket - type: data (T_DATA)
308 *======================================================================================*/ 314 *======================================================================================*/
309 315// Qobject?
310class OWaveLanDataPacket : public QObject 316class OWaveLanDataPacket : public QObject
311{ 317{
312 Q_OBJECT 318 Q_OBJECT
313 319
314 public: 320 public:
315 OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 ); 321 OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 );
316 virtual ~OWaveLanDataPacket(); 322 virtual ~OWaveLanDataPacket();
317 323
318 private: 324 private:
319 const struct ieee_802_11_data_header* _header; 325 const struct ieee_802_11_data_header* _header;
320}; 326};
321 327
322/*====================================================================================== 328/*======================================================================================
323 * OWaveLanControlPacket - type: control (T_CTRL) 329 * OWaveLanControlPacket - type: control (T_CTRL)
324 *======================================================================================*/ 330 *======================================================================================*/
325 331// Qobject needed?
326class OWaveLanControlPacket : public QObject 332class OWaveLanControlPacket : public QObject
327{ 333{
328 Q_OBJECT 334 Q_OBJECT
329 335
330 public: 336 public:
331 OWaveLanControlPacket( const unsigned char*, const struct ieee_802_11_control_header*, OWaveLanPacket* parent = 0 ); 337 OWaveLanControlPacket( const unsigned char*, const struct ieee_802_11_control_header*, OWaveLanPacket* parent = 0 );
332 virtual ~OWaveLanControlPacket(); 338 virtual ~OWaveLanControlPacket();
333 339
334 private: 340 private:
335 const struct ieee_802_11_control_header* _header; 341 const struct ieee_802_11_control_header* _header;
336}; 342};
337 343
338/*====================================================================================== 344/*======================================================================================
339 * OLLCPacket - IEEE 802.2 Link Level Control 345 * OLLCPacket - IEEE 802.2 Link Level Control
340 *======================================================================================*/ 346 *======================================================================================*/
341 347
348// QObject needed?
342class OLLCPacket : public QObject 349class OLLCPacket : public QObject
343{ 350{
344 Q_OBJECT 351 Q_OBJECT
345 352
346 public: 353 public:
347 OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 ); 354 OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 );
348 virtual ~OLLCPacket(); 355 virtual ~OLLCPacket();
349 356
350 private: 357 private:
358 //FIXME how to get that header?
351 const struct ieee_802_11_802_2_header* _header; 359 const struct ieee_802_11_802_2_header* _header;
352}; 360};
353 361
354/*====================================================================================== 362/*======================================================================================
355 * OIPPacket 363 * OIPPacket
356 *======================================================================================*/ 364 *======================================================================================*/
357 365
366// Qobject as baseclass?
358class OIPPacket : public QObject 367class OIPPacket : public QObject
359{ 368{
360 Q_OBJECT 369 Q_OBJECT
361 370
362 public: 371 public:
363 OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 ); 372 OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 );
364 virtual ~OIPPacket(); 373 virtual ~OIPPacket();
365 374
366 QHostAddress fromIPAddress() const; 375 QHostAddress fromIPAddress() const;
367 QHostAddress toIPAddress() const; 376 QHostAddress toIPAddress() const;
368 377
369 int tos() const; 378 int tos() const;
@@ -372,44 +381,45 @@ class OIPPacket : public QObject
372 int offset() const; 381 int offset() const;
373 int ttl() const; 382 int ttl() const;
374 int protocol() const; 383 int protocol() const;
375 int checksum() const; 384 int checksum() const;
376 385
377 private: 386 private:
378 const struct iphdr* _iphdr; 387 const struct iphdr* _iphdr;
379}; 388};
380 389
381/*====================================================================================== 390/*======================================================================================
382 * OUDPPacket 391 * OUDPPacket
383 *======================================================================================*/ 392 *======================================================================================*/
384 393// QObject?
385class OUDPPacket : public QObject 394class OUDPPacket : public QObject
386{ 395{
387 Q_OBJECT 396 Q_OBJECT
388 397
389 public: 398 public:
390 OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 ); 399 OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 );
391 virtual ~OUDPPacket(); 400 virtual ~OUDPPacket();
392 401
393 int fromPort() const; 402 int fromPort() const;
394 int toPort() const; 403 int toPort() const;
395 404
396 private: 405 private:
397 const struct udphdr* _udphdr; 406 const struct udphdr* _udphdr;
398}; 407};
399 408
400/*====================================================================================== 409/*======================================================================================
401 * OTCPPacket 410 * OTCPPacket
402 *======================================================================================*/ 411 *======================================================================================*/
403 412
413// Qobect needed?
404class OTCPPacket : public QObject 414class OTCPPacket : public QObject
405{ 415{
406 Q_OBJECT 416 Q_OBJECT
407 417
408 public: 418 public:
409 OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 ); 419 OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 );
410 virtual ~OTCPPacket(); 420 virtual ~OTCPPacket();
411 421
412 int fromPort() const; 422 int fromPort() const;
413 int toPort() const; 423 int toPort() const;
414 424
415 private: 425 private: