Changeset 851:0121c0646f75
- Timestamp:
- 07/29/08 18:07:22
(5 months ago)
- Author:
- Phil <phil@secdev.org>
- Message:
Removed deprecated APIs
Changes introduced at f4590b70c916, 7d54b4bab41d and 2ca14f7e5bdb
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r846 |
r851 |
|
| 325 | 325 | Field.__init__(self, name, default, "d") |
|---|
| 326 | 326 | |
|---|
| 327 | | import traceback |
|---|
| 328 | | def FIELD_LENGTH_MANAGEMENT_DEPRECATION(x): |
|---|
| 329 | | try: |
|---|
| 330 | | for tb in traceback.extract_stack()+[("??",-1,None,"")]: |
|---|
| 331 | | f,l,_,line = tb |
|---|
| 332 | | if line.startswith("fields_desc"): |
|---|
| 333 | | break |
|---|
| 334 | | except: |
|---|
| 335 | | f,l="??",-1 |
|---|
| 336 | | log_loading.warning("Deprecated use of %s (%s l. %i). See http://trac.secdev.org/scapy/wiki/LengthFields" % (x,f,l)) |
|---|
| 337 | 327 | |
|---|
| 338 | 328 | class StrField(Field): |
|---|
| 339 | | def __init__(self, name, default, fmt="H", remain=0, shift=0): |
|---|
| | 329 | def __init__(self, name, default, fmt="H", remain=0): |
|---|
| 340 | 330 | Field.__init__(self,name,default,fmt) |
|---|
| 341 | 331 | self.remain = remain |
|---|
| 342 | | self.shift = shift |
|---|
| 343 | | if shift != 0: |
|---|
| 344 | | FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__) |
|---|
| 345 | 332 | def i2len(self, pkt, i): |
|---|
| 346 | | return len(i)+self.shift |
|---|
| | 333 | return len(i) |
|---|
| 347 | 334 | def i2m(self, pkt, x): |
|---|
| 348 | 335 | if x is None: |
|---|
| … | … | |
| 361 | 348 | class PacketField(StrField): |
|---|
| 362 | 349 | holds_packets=1 |
|---|
| 363 | | def __init__(self, name, default, cls, remain=0, shift=0): |
|---|
| 364 | | StrField.__init__(self, name, default, remain=remain, shift=shift) |
|---|
| | 350 | def __init__(self, name, default, cls, remain=0): |
|---|
| | 351 | StrField.__init__(self, name, default, remain=remain) |
|---|
| 365 | 352 | self.cls = cls |
|---|
| 366 | 353 | def i2m(self, pkt, i): |
|---|
| … | … | |
| 379 | 366 | class PacketLenField(PacketField): |
|---|
| 380 | 367 | holds_packets=1 |
|---|
| 381 | | def __init__(self, name, default, cls, fld=None, length_from=None, shift=0): |
|---|
| 382 | | PacketField.__init__(self, name, default, cls, shift=shift) |
|---|
| | 368 | def __init__(self, name, default, cls, length_from=None): |
|---|
| | 369 | PacketField.__init__(self, name, default, cls) |
|---|
| 383 | 370 | self.length_from = length_from |
|---|
| 384 | | if fld is not None or shift != 0: |
|---|
| 385 | | FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__) |
|---|
| 386 | | self.count_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift |
|---|
| 387 | 371 | def getfield(self, pkt, s): |
|---|
| 388 | 372 | l = self.length_from(pkt) |
|---|
| … | … | |
| 394 | 378 | islist = 1 |
|---|
| 395 | 379 | holds_packets=1 |
|---|
| 396 | | def __init__(self, name, default, cls, fld=None, count_from=None, length_from=None, shift=0): |
|---|
| | 380 | def __init__(self, name, default, cls, count_from=None, length_from=None): |
|---|
| 397 | 381 | if default is None: |
|---|
| 398 | 382 | default = [] # Create a new list for each instance |
|---|
| 399 | | PacketField.__init__(self, name, default, cls, shift=shift) |
|---|
| | 383 | PacketField.__init__(self, name, default, cls) |
|---|
| 400 | 384 | self.count_from = count_from |
|---|
| 401 | 385 | self.length_from = length_from |
|---|
| 402 | 386 | |
|---|
| 403 | | if fld is not None or shift != 0: |
|---|
| 404 | | FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__) |
|---|
| 405 | | if fld is not None: |
|---|
| 406 | | self.count_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift |
|---|
| 407 | 387 | |
|---|
| 408 | 388 | def any2i(self, pkt, x): |
|---|
| … | … | |
| 450 | 430 | |
|---|
| 451 | 431 | class StrFixedLenField(StrField): |
|---|
| 452 | | def __init__(self, name, default, length=None, length_from=None, shift=0): |
|---|
| 453 | | StrField.__init__(self, name, default, shift=shift) |
|---|
| | 432 | def __init__(self, name, default, length=None, length_from=None): |
|---|
| | 433 | StrField.__init__(self, name, default) |
|---|
| 454 | 434 | self.length_from = length_from |
|---|
| 455 | 435 | if length is not None: |
|---|
| … | … | |
| 469 | 449 | |
|---|
| 470 | 450 | class NetBIOSNameField(StrFixedLenField): |
|---|
| 471 | | def __init__(self, name, default, length=31, shift=0): |
|---|
| 472 | | StrFixedLenField.__init__(self, name, default, length, shift=shift) |
|---|
| | 451 | def __init__(self, name, default, length=31): |
|---|
| | 452 | StrFixedLenField.__init__(self, name, default, length) |
|---|
| 473 | 453 | def i2m(self, pkt, x): |
|---|
| 474 | 454 | l = self.length_from(pkt)/2 |
|---|
| … | … | |
| 485 | 465 | |
|---|
| 486 | 466 | class StrLenField(StrField): |
|---|
| 487 | | def __init__(self, name, default, fld=None, length_from=None, shift=0): |
|---|
| 488 | | StrField.__init__(self, name, default, shift=shift) |
|---|
| | 467 | def __init__(self, name, default, fld=None, length_from=None): |
|---|
| | 468 | StrField.__init__(self, name, default) |
|---|
| 489 | 469 | self.length_from = length_from |
|---|
| 490 | | if fld is not None or shift != 0: |
|---|
| 491 | | FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__) |
|---|
| 492 | | self.length_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift |
|---|
| 493 | 470 | def getfield(self, pkt, s): |
|---|
| 494 | 471 | l = self.length_from(pkt) |
|---|
| … | … | |
| 497 | 474 | class FieldListField(Field): |
|---|
| 498 | 475 | islist=1 |
|---|
| 499 | | def __init__(self, name, default, field, fld=None, shift=0, length_from=None, count_from=None): |
|---|
| | 476 | def __init__(self, name, default, field, length_from=None, count_from=None): |
|---|
| 500 | 477 | if default is None: |
|---|
| 501 | 478 | default = [] # Create a new list for each instance |
|---|
| … | … | |
| 503 | 480 | self.count_from = count_from |
|---|
| 504 | 481 | self.length_from = length_from |
|---|
| 505 | | self.field = field |
|---|
| 506 | | if fld is not None or shift != 0: |
|---|
| 507 | | FIELD_LENGTH_MANAGEMENT_DEPRECATION(self.__class__.__name__) |
|---|
| 508 | | self.count_from = lambda pkt,fld=fld,shift=shift: getattr(pkt,fld)-shift |
|---|
| 509 | | |
|---|
| | 482 | self.field = field |
|---|
| 510 | 483 | |
|---|
| 511 | 484 | def i2count(self, pkt, val): |
|---|
| r846 |
r851 |
|
| 286 | 286 | pkt = t(pkt) |
|---|
| 287 | 287 | pay = self.build_payload() |
|---|
| 288 | | try: |
|---|
| 289 | | p = self.post_build(pkt,pay) |
|---|
| 290 | | except TypeError: |
|---|
| 291 | | log_runtime.error("API changed! post_build() now takes 2 arguments. Compatibility is only assured for a short transition time") |
|---|
| 292 | | p = self.post_build(pkt+pay) |
|---|
| | 288 | p = self.post_build(pkt,pay) |
|---|
| 293 | 289 | if not internal: |
|---|
| 294 | 290 | pad = self.payload.getlayer(Padding) |
|---|