-rw-r--r-- | libopie2/opienet/opcap.h | 52 |
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 */ |
63 | typedef struct timeval timevalstruct; | 63 | typedef struct timeval timevalstruct; |
64 | typedef struct pcap_pkthdr packetheaderstruct; | 64 | typedef struct pcap_pkthdr packetheaderstruct; |
65 | 65 | ||
66 | /* FORWARDS */ | 66 | /* FORWARDS */ |
67 | class OPacketCapturer; | ||
68 | class QSocketNotifier; | 67 | class QSocketNotifier; |
68 | namespace Opie { | ||
69 | namespace Net { | ||
70 | class 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 | ||
146 | QTextStream& operator<<( QTextStream& s, const OPacket& p ); | 151 | QTextStream& operator<<( QTextStream& s, const OPacket& p ); |
147 | 152 | ||
148 | /*====================================================================================== | 153 | /*====================================================================================== |
149 | * OEthernetPacket - DLT_EN10MB frame | 154 | * OEthernetPacket - DLT_EN10MB frame |
150 | *======================================================================================*/ | 155 | *======================================================================================*/ |
151 | 156 | ||
152 | class OEthernetPacket : public QObject | 157 | class 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 | ||
172 | class OPrismHeaderPacket : public QObject | 180 | class 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 | ||
190 | class OWaveLanPacket : public QObject | 200 | class 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 | ||
220 | class OWaveLanManagementPacket : public QObject | 232 | class 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 | ||
249 | class OWaveLanManagementSSID : public QObject | 263 | class 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 | ||
267 | class OWaveLanManagementRates : public QObject | 283 | class 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 | ||
283 | class OWaveLanManagementCF : public QObject | 301 | class 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 | ||
299 | class OWaveLanManagementFH : public QObject | 319 | class 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 | ||
315 | class OWaveLanManagementDS : public QObject | 337 | class 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 | ||
333 | class OWaveLanManagementTim : public QObject | 357 | class 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 | ||
349 | class OWaveLanManagementIBSS : public QObject | 375 | class 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 | ||
365 | class OWaveLanManagementChallenge : public QObject | 393 | class 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 | ||
381 | class OWaveLanDataPacket : public QObject | 411 | class 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 | ||
397 | class OWaveLanControlPacket : public QObject | 429 | class 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 | ||
415 | class OLLCPacket : public QObject | 449 | class 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 | ||
431 | class OIPPacket : public QObject | 467 | class 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 | ||
458 | class OARPPacket : public QObject | 496 | class 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 | ||
482 | class OUDPPacket : public QObject | 522 | class 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 | ||
503 | class ODHCPPacket : public QObject | 545 | class 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 | ||
531 | class OTCPPacket : public QObject | 575 | class 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 | ||