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.h52
1 files changed, 51 insertions, 1 deletions
diff --git a/libopie2/opienet/opcap.h b/libopie2/opienet/opcap.h
index b873b49..dc609a3 100644
--- a/libopie2/opienet/opcap.h
+++ b/libopie2/opienet/opcap.h
@@ -55,26 +55,28 @@ extern "C" // work around a bpf/pcap conflict in recent headers
55#include <time.h> 55#include <time.h>
56 56
57/* Custom Network Includes (must go here, don't reorder!) */ 57/* Custom Network Includes (must go here, don't reorder!) */
58#include "802_11_user.h" 58#include "802_11_user.h"
59#include "dhcp.h" 59#include "dhcp.h"
60 60
61 61
62/* TYPEDEFS */ 62/* TYPEDEFS */
63typedef struct timeval timevalstruct; 63typedef struct timeval timevalstruct;
64typedef struct pcap_pkthdr packetheaderstruct; 64typedef struct pcap_pkthdr packetheaderstruct;
65 65
66/* FORWARDS */ 66/* FORWARDS */
67class OPacketCapturer;
68class QSocketNotifier; 67class QSocketNotifier;
68namespace Opie {
69namespace Net {
70class OPacketCapturer;
69 71
70/*====================================================================================== 72/*======================================================================================
71 * OPacket - A frame on the wire 73 * OPacket - A frame on the wire
72 *======================================================================================*/ 74 *======================================================================================*/
73 75
74/** @brief A class representing a data frame on the wire. 76/** @brief A class representing a data frame on the wire.
75 * 77 *
76 * The whole family of the packet classes are used when capturing frames from a network. 78 * The whole family of the packet classes are used when capturing frames from a network.
77 * Most standard network protocols in use share a common architecture, which mostly is 79 * Most standard network protocols in use share a common architecture, which mostly is
78 * a packet header and then the packet payload. In layered architectures, each lower layer 80 * a packet header and then the packet payload. In layered architectures, each lower layer
79 * encapsulates data from its upper layer - that is it 81 * encapsulates data from its upper layer - that is it
80 * treats the data from its upper layer as payload and prepends an own header to the packet, 82 * treats the data from its upper layer as payload and prepends an own header to the packet,
@@ -132,64 +134,72 @@ class OPacket : public QObject
132 134
133 void updateStats( QMap<QString,int>&, QObjectList* ); 135 void updateStats( QMap<QString,int>&, QObjectList* );
134 136
135 private: 137 private:
136 138
137 QString dumpStructure() const; 139 QString dumpStructure() const;
138 QString _dumpStructure( QObjectList* ) const; 140 QString _dumpStructure( QObjectList* ) const;
139 141
140 private: 142 private:
141 const packetheaderstruct _hdr; // pcap packet header 143 const packetheaderstruct _hdr; // pcap packet header
142 const unsigned char* _data; // pcap packet data 144 const unsigned char* _data; // pcap packet data
143 const unsigned char* _end; // end of pcap packet data 145 const unsigned char* _end; // end of pcap packet data
146 private:
147 class Private;
148 Private *d;
144}; 149};
145 150
146QTextStream& operator<<( QTextStream& s, const OPacket& p ); 151QTextStream& operator<<( QTextStream& s, const OPacket& p );
147 152
148/*====================================================================================== 153/*======================================================================================
149 * OEthernetPacket - DLT_EN10MB frame 154 * OEthernetPacket - DLT_EN10MB frame
150 *======================================================================================*/ 155 *======================================================================================*/
151 156
152class OEthernetPacket : public QObject 157class OEthernetPacket : public QObject
153{ 158{
154 Q_OBJECT 159 Q_OBJECT
155 160
156 public: 161 public:
157 OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 ); 162 OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 );
158 virtual ~OEthernetPacket(); 163 virtual ~OEthernetPacket();
159 164
160 OMacAddress sourceAddress() const; 165 OMacAddress sourceAddress() const;
161 OMacAddress destinationAddress() const; 166 OMacAddress destinationAddress() const;
162 int type() const; 167 int type() const;
163 168
164 private: 169 private:
165 const struct ether_header* _ether; 170 const struct ether_header* _ether;
171 private:
172 class Private;
173 Private *d;
166}; 174};
167 175
168/*====================================================================================== 176/*======================================================================================
169 * OPrismHeaderPacket - DLT_PRISM_HEADER frame 177 * OPrismHeaderPacket - DLT_PRISM_HEADER frame
170 *======================================================================================*/ 178 *======================================================================================*/
171 179
172class OPrismHeaderPacket : public QObject 180class OPrismHeaderPacket : public QObject
173{ 181{
174 Q_OBJECT 182 Q_OBJECT
175 183
176 public: 184 public:
177 OPrismHeaderPacket( const unsigned char*, const struct prism_hdr*, QObject* parent = 0 ); 185 OPrismHeaderPacket( const unsigned char*, const struct prism_hdr*, QObject* parent = 0 );
178 virtual ~OPrismHeaderPacket(); 186 virtual ~OPrismHeaderPacket();
179 187
180 unsigned int signalStrength() const; 188 unsigned int signalStrength() const;
181 189
182 private: 190 private:
183 const struct prism_hdr* _header; 191 const struct prism_hdr* _header;
192 class Private;
193 Private *d;
184}; 194};
185 195
186/*====================================================================================== 196/*======================================================================================
187 * OWaveLanPacket - DLT_IEEE802_11 frame 197 * OWaveLanPacket - DLT_IEEE802_11 frame
188 *======================================================================================*/ 198 *======================================================================================*/
189 199
190class OWaveLanPacket : public QObject 200class OWaveLanPacket : public QObject
191{ 201{
192 Q_OBJECT 202 Q_OBJECT
193 203
194 public: 204 public:
195 OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 ); 205 OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 );
@@ -201,24 +211,26 @@ class OWaveLanPacket : public QObject
201 virtual OMacAddress macAddress1() const; 211 virtual OMacAddress macAddress1() const;
202 virtual OMacAddress macAddress2() const; 212 virtual OMacAddress macAddress2() const;
203 virtual OMacAddress macAddress3() const; 213 virtual OMacAddress macAddress3() const;
204 virtual OMacAddress macAddress4() const; 214 virtual OMacAddress macAddress4() const;
205 bool usesPowerManagement() const; 215 bool usesPowerManagement() const;
206 int type() const; 216 int type() const;
207 int subType() const; 217 int subType() const;
208 int version() const; 218 int version() const;
209 bool usesWep() const; 219 bool usesWep() const;
210 220
211 private: 221 private:
212 const struct ieee_802_11_header* _wlanhdr; 222 const struct ieee_802_11_header* _wlanhdr;
223 class Private;
224 Private *d;
213}; 225};
214 226
215 227
216/*====================================================================================== 228/*======================================================================================
217 * OWaveLanManagementPacket - type: management (T_MGMT) 229 * OWaveLanManagementPacket - type: management (T_MGMT)
218 *======================================================================================*/ 230 *======================================================================================*/
219 231
220class OWaveLanManagementPacket : public QObject 232class OWaveLanManagementPacket : public QObject
221{ 233{
222 Q_OBJECT 234 Q_OBJECT
223 235
224 public: 236 public:
@@ -230,207 +242,231 @@ class OWaveLanManagementPacket : public QObject
230 int beaconInterval() const; 242 int beaconInterval() const;
231 int capabilities() const; // generic 243 int capabilities() const; // generic
232 244
233 bool canESS() const; 245 bool canESS() const;
234 bool canIBSS() const; 246 bool canIBSS() const;
235 bool canCFP() const; 247 bool canCFP() const;
236 bool canCFP_REQ() const; 248 bool canCFP_REQ() const;
237 bool canPrivacy() const; 249 bool canPrivacy() const;
238 250
239 private: 251 private:
240 const struct ieee_802_11_mgmt_header* _header; 252 const struct ieee_802_11_mgmt_header* _header;
241 const struct ieee_802_11_mgmt_body* _body; 253 const struct ieee_802_11_mgmt_body* _body;
254 class Private;
255 Private *d;
242}; 256};
243 257
244 258
245/*====================================================================================== 259/*======================================================================================
246 * OWaveLanManagementSSID 260 * OWaveLanManagementSSID
247 *======================================================================================*/ 261 *======================================================================================*/
248 262
249class OWaveLanManagementSSID : public QObject 263class OWaveLanManagementSSID : public QObject
250{ 264{
251 Q_OBJECT 265 Q_OBJECT
252 266
253 public: 267 public:
254 OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 ); 268 OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 );
255 virtual ~OWaveLanManagementSSID(); 269 virtual ~OWaveLanManagementSSID();
256 270
257 QString ID( bool decloak = false ) const; 271 QString ID( bool decloak = false ) const;
258 272
259 private: 273 private:
260 const struct ssid_t* _data; 274 const struct ssid_t* _data;
275 class Private;
276 Private *d;
261}; 277};
262 278
263/*====================================================================================== 279/*======================================================================================
264 * OWaveLanManagementRates 280 * OWaveLanManagementRates
265 *======================================================================================*/ 281 *======================================================================================*/
266 282
267class OWaveLanManagementRates : public QObject 283class OWaveLanManagementRates : public QObject
268{ 284{
269 Q_OBJECT 285 Q_OBJECT
270 286
271 public: 287 public:
272 OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 ); 288 OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 );
273 virtual ~OWaveLanManagementRates(); 289 virtual ~OWaveLanManagementRates();
274 290
275 private: 291 private:
276 const struct rates_t* _data; 292 const struct rates_t* _data;
293 class Private;
294 Private *d;
277}; 295};
278 296
279/*====================================================================================== 297/*======================================================================================
280 * OWaveLanManagementCF 298 * OWaveLanManagementCF
281 *======================================================================================*/ 299 *======================================================================================*/
282 300
283class OWaveLanManagementCF : public QObject 301class OWaveLanManagementCF : public QObject
284{ 302{
285 Q_OBJECT 303 Q_OBJECT
286 304
287 public: 305 public:
288 OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 ); 306 OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 );
289 virtual ~OWaveLanManagementCF(); 307 virtual ~OWaveLanManagementCF();
290 308
291 private: 309 private:
292 const struct cf_t* _data; 310 const struct cf_t* _data;
311 class Private;
312 Private *d;
293}; 313};
294 314
295/*====================================================================================== 315/*======================================================================================
296 * OWaveLanManagementFH 316 * OWaveLanManagementFH
297 *======================================================================================*/ 317 *======================================================================================*/
298 318
299class OWaveLanManagementFH : public QObject 319class OWaveLanManagementFH : public QObject
300{ 320{
301 Q_OBJECT 321 Q_OBJECT
302 322
303 public: 323 public:
304 OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 ); 324 OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 );
305 virtual ~OWaveLanManagementFH(); 325 virtual ~OWaveLanManagementFH();
306 326
307 private: 327 private:
308 const struct fh_t* _data; 328 const struct fh_t* _data;
329 class Private;
330 Private *d;
309}; 331};
310 332
311/*====================================================================================== 333/*======================================================================================
312 * OWaveLanManagementDS 334 * OWaveLanManagementDS
313 *======================================================================================*/ 335 *======================================================================================*/
314 336
315class OWaveLanManagementDS : public QObject 337class OWaveLanManagementDS : public QObject
316{ 338{
317 Q_OBJECT 339 Q_OBJECT
318 340
319 public: 341 public:
320 OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 ); 342 OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 );
321 virtual ~OWaveLanManagementDS(); 343 virtual ~OWaveLanManagementDS();
322 344
323 int channel() const; 345 int channel() const;
324 346
325 private: 347 private:
326 const struct ds_t* _data; 348 const struct ds_t* _data;
349 class Private;
350 Private *d;
327}; 351};
328 352
329/*====================================================================================== 353/*======================================================================================
330 * OWaveLanManagementTim 354 * OWaveLanManagementTim
331 *======================================================================================*/ 355 *======================================================================================*/
332 356
333class OWaveLanManagementTim : public QObject 357class OWaveLanManagementTim : public QObject
334{ 358{
335 Q_OBJECT 359 Q_OBJECT
336 360
337 public: 361 public:
338 OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 ); 362 OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 );
339 virtual ~OWaveLanManagementTim(); 363 virtual ~OWaveLanManagementTim();
340 364
341 private: 365 private:
342 const struct tim_t* _data; 366 const struct tim_t* _data;
367 class Private;
368 Private *d;
343}; 369};
344 370
345/*====================================================================================== 371/*======================================================================================
346 * OWaveLanManagementIBSS 372 * OWaveLanManagementIBSS
347 *======================================================================================*/ 373 *======================================================================================*/
348 374
349class OWaveLanManagementIBSS : public QObject 375class OWaveLanManagementIBSS : public QObject
350{ 376{
351 Q_OBJECT 377 Q_OBJECT
352 378
353 public: 379 public:
354 OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 ); 380 OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 );
355 virtual ~OWaveLanManagementIBSS(); 381 virtual ~OWaveLanManagementIBSS();
356 382
357 private: 383 private:
358 const struct ibss_t* _data; 384 const struct ibss_t* _data;
385 class Private;
386 Private *d;
359}; 387};
360 388
361/*====================================================================================== 389/*======================================================================================
362 * OWaveLanManagementChallenge 390 * OWaveLanManagementChallenge
363 *======================================================================================*/ 391 *======================================================================================*/
364 392
365class OWaveLanManagementChallenge : public QObject 393class OWaveLanManagementChallenge : public QObject
366{ 394{
367 Q_OBJECT 395 Q_OBJECT
368 396
369 public: 397 public:
370 OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 ); 398 OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 );
371 virtual ~OWaveLanManagementChallenge(); 399 virtual ~OWaveLanManagementChallenge();
372 400
373 private: 401 private:
374 const struct challenge_t* _data; 402 const struct challenge_t* _data;
403 class Private;
404 Private *d;
375}; 405};
376 406
377/*====================================================================================== 407/*======================================================================================
378 * OWaveLanDataPacket - type: data (T_DATA) 408 * OWaveLanDataPacket - type: data (T_DATA)
379 *======================================================================================*/ 409 *======================================================================================*/
380 410
381class OWaveLanDataPacket : public QObject 411class OWaveLanDataPacket : public QObject
382{ 412{
383 Q_OBJECT 413 Q_OBJECT
384 414
385 public: 415 public:
386 OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 ); 416 OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 );
387 virtual ~OWaveLanDataPacket(); 417 virtual ~OWaveLanDataPacket();
388 418
389 private: 419 private:
390 const struct ieee_802_11_data_header* _header; 420 const struct ieee_802_11_data_header* _header;
421 class Private;
422 Private *d;
391}; 423};
392 424
393/*====================================================================================== 425/*======================================================================================
394 * OWaveLanControlPacket - type: control (T_CTRL) 426 * OWaveLanControlPacket - type: control (T_CTRL)
395 *======================================================================================*/ 427 *======================================================================================*/
396 428
397class OWaveLanControlPacket : public QObject 429class OWaveLanControlPacket : public QObject
398{ 430{
399 Q_OBJECT 431 Q_OBJECT
400 432
401 public: 433 public:
402 OWaveLanControlPacket( const unsigned char*, const struct ieee_802_11_control_header*, OWaveLanPacket* parent = 0 ); 434 OWaveLanControlPacket( const unsigned char*, const struct ieee_802_11_control_header*, OWaveLanPacket* parent = 0 );
403 virtual ~OWaveLanControlPacket(); 435 virtual ~OWaveLanControlPacket();
404 436
405 QString controlType() const; 437 QString controlType() const;
406 438
407 private: 439 private:
408 const struct ieee_802_11_control_header* _header; 440 const struct ieee_802_11_control_header* _header;
441 class Private;
442 Private *d;
409}; 443};
410 444
411/*====================================================================================== 445/*======================================================================================
412 * OLLCPacket - IEEE 802.2 Link Level Control 446 * OLLCPacket - IEEE 802.2 Link Level Control
413 *======================================================================================*/ 447 *======================================================================================*/
414 448
415class OLLCPacket : public QObject 449class OLLCPacket : public QObject
416{ 450{
417 Q_OBJECT 451 Q_OBJECT
418 452
419 public: 453 public:
420 OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 ); 454 OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 );
421 virtual ~OLLCPacket(); 455 virtual ~OLLCPacket();
422 456
423 private: 457 private:
424 const struct ieee_802_11_802_2_header* _header; 458 const struct ieee_802_11_802_2_header* _header;
459 class Private;
460 Private *d;
425}; 461};
426 462
427/*====================================================================================== 463/*======================================================================================
428 * OIPPacket 464 * OIPPacket
429 *======================================================================================*/ 465 *======================================================================================*/
430 466
431class OIPPacket : public QObject 467class OIPPacket : public QObject
432{ 468{
433 Q_OBJECT 469 Q_OBJECT
434 470
435 public: 471 public:
436 OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 ); 472 OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 );
@@ -440,69 +476,75 @@ class OIPPacket : public QObject
440 QHostAddress toIPAddress() const; 476 QHostAddress toIPAddress() const;
441 477
442 int tos() const; 478 int tos() const;
443 int len() const; 479 int len() const;
444 int id() const; 480 int id() const;
445 int offset() const; 481 int offset() const;
446 int ttl() const; 482 int ttl() const;
447 int protocol() const; 483 int protocol() const;
448 int checksum() const; 484 int checksum() const;
449 485
450 private: 486 private:
451 const struct iphdr* _iphdr; 487 const struct iphdr* _iphdr;
488 class Private;
489 Private *d;
452}; 490};
453 491
454/*====================================================================================== 492/*======================================================================================
455 * OARPPacket 493 * OARPPacket
456 *======================================================================================*/ 494 *======================================================================================*/
457 495
458class OARPPacket : public QObject 496class OARPPacket : public QObject
459{ 497{
460 Q_OBJECT 498 Q_OBJECT
461 499
462 public: 500 public:
463 OARPPacket( const unsigned char*, const struct myarphdr*, QObject* parent = 0 ); 501 OARPPacket( const unsigned char*, const struct myarphdr*, QObject* parent = 0 );
464 virtual ~OARPPacket(); 502 virtual ~OARPPacket();
465 503
466 QHostAddress senderIPV4Address() const; 504 QHostAddress senderIPV4Address() const;
467 OMacAddress senderMacAddress() const; 505 OMacAddress senderMacAddress() const;
468 QHostAddress targetIPV4Address() const; 506 QHostAddress targetIPV4Address() const;
469 OMacAddress targetMacAddress() const; 507 OMacAddress targetMacAddress() const;
470 508
471 //int type() const; 509 //int type() const;
472 QString type() const; 510 QString type() const;
473 511
474 private: 512 private:
475 const struct myarphdr* _arphdr; 513 const struct myarphdr* _arphdr;
514 class Private;
515 Private *d;
476}; 516};
477 517
478/*====================================================================================== 518/*======================================================================================
479 * OUDPPacket 519 * OUDPPacket
480 *======================================================================================*/ 520 *======================================================================================*/
481 521
482class OUDPPacket : public QObject 522class OUDPPacket : public QObject
483{ 523{
484 Q_OBJECT 524 Q_OBJECT
485 525
486 public: 526 public:
487 OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 ); 527 OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 );
488 virtual ~OUDPPacket(); 528 virtual ~OUDPPacket();
489 529
490 int fromPort() const; 530 int fromPort() const;
491 int toPort() const; 531 int toPort() const;
492 int length() const; 532 int length() const;
493 int checksum() const; 533 int checksum() const;
494 534
495 private: 535 private:
496 const struct udphdr* _udphdr; 536 const struct udphdr* _udphdr;
537 class Private;
538 Private *d;
497}; 539};
498 540
499/*====================================================================================== 541/*======================================================================================
500 * ODHCPPacket 542 * ODHCPPacket
501 *======================================================================================*/ 543 *======================================================================================*/
502 544
503class ODHCPPacket : public QObject 545class ODHCPPacket : public QObject
504{ 546{
505 Q_OBJECT 547 Q_OBJECT
506 548
507 public: 549 public:
508 ODHCPPacket( const unsigned char*, const struct dhcp_packet*, QObject* parent = 0 ); 550 ODHCPPacket( const unsigned char*, const struct dhcp_packet*, QObject* parent = 0 );
@@ -513,47 +555,51 @@ class ODHCPPacket : public QObject
513 QHostAddress serverAddress() const; 555 QHostAddress serverAddress() const;
514 QHostAddress relayAddress() const; 556 QHostAddress relayAddress() const;
515 557
516 OMacAddress clientMacAddress() const; 558 OMacAddress clientMacAddress() const;
517 559
518 bool isRequest() const; 560 bool isRequest() const;
519 bool isReply() const; 561 bool isReply() const;
520 QString type() const; 562 QString type() const;
521 563
522 private: 564 private:
523 const struct dhcp_packet* _dhcphdr; 565 const struct dhcp_packet* _dhcphdr;
524 unsigned char _type; 566 unsigned char _type;
567 class Private;
568 Private *d;
525}; 569};
526 570
527/*====================================================================================== 571/*======================================================================================
528 * OTCPPacket 572 * OTCPPacket
529 *======================================================================================*/ 573 *======================================================================================*/
530 574
531class OTCPPacket : public QObject 575class OTCPPacket : public QObject
532{ 576{
533 Q_OBJECT 577 Q_OBJECT
534 578
535 public: 579 public:
536 OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 ); 580 OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 );
537 virtual ~OTCPPacket(); 581 virtual ~OTCPPacket();
538 582
539 int fromPort() const; 583 int fromPort() const;
540 int toPort() const; 584 int toPort() const;
541 int seq() const; 585 int seq() const;
542 int ack() const; 586 int ack() const;
543 int window() const; 587 int window() const;
544 int checksum() const; 588 int checksum() const;
545 589
546 private: 590 private:
547 const struct tcphdr* _tcphdr; 591 const struct tcphdr* _tcphdr;
592 class Private;
593 Private *d;
548}; 594};
549 595
550 596
551/*====================================================================================== 597/*======================================================================================
552 * OPacketCapturer 598 * OPacketCapturer
553 *======================================================================================*/ 599 *======================================================================================*/
554 600
555/** 601/**
556 * @brief A class based wrapper for network packet capturing. 602 * @brief A class based wrapper for network packet capturing.
557 * 603 *
558 * This class is the base of a high-level interface to the well known packet capturing 604 * This class is the base of a high-level interface to the well known packet capturing
559 * library libpcap. 605 * library libpcap.
@@ -656,16 +702,20 @@ class OPacketCapturer : public QObject
656 702
657 protected slots: 703 protected slots:
658 void readyToReceive(); 704 void readyToReceive();
659 705
660 protected: 706 protected:
661 QString _name; // devicename 707 QString _name; // devicename
662 bool _open; // check this before doing pcap calls 708 bool _open; // check this before doing pcap calls
663 pcap_t* _pch; // pcap library handle 709 pcap_t* _pch; // pcap library handle
664 pcap_dumper_t* _pcd; // pcap dumper handle 710 pcap_dumper_t* _pcd; // pcap dumper handle
665 QSocketNotifier* _sn; // socket notifier for main loop 711 QSocketNotifier* _sn; // socket notifier for main loop
666 mutable char _errbuf[PCAP_ERRBUF_SIZE]; // holds error strings from libpcap 712 mutable char _errbuf[PCAP_ERRBUF_SIZE]; // holds error strings from libpcap
667 QMap<QString, int> _stats; // statistics; 713 QMap<QString, int> _stats; // statistics;
714 class Private; // Private Forward declaration
715 Private *d; // if we need to add data
668}; 716};
717}
718}
669 719
670#endif // OPCAP_H 720#endif // OPCAP_H
671 721