;ò sòDc@sdZdkZdkZdkZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd „ƒYZd e fd „ƒYZ d e fd „ƒYZ dZ dd„Zy(dkZdkZd„Zd„ZWn.ej o"dkZd„Zd„ZnXd„ZdS(s#Simple packet creation and parsing.NsErrorcBstZRS(N(s__name__s __module__(((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pysErrorss UnpackErrorcBstZRS(N(s__name__s __module__(((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys UnpackError ssNeedDatacBstZRS(N(s__name__s __module__(((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pysNeedData ss PackErrorcBstZRS(N(s__name__s __module__(((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys PackError ss _MetaPacketcBstZd„ZRS(NcCsti||||ƒ}t|dtƒ}|oÎgi }|D]}||dƒq?~|_ t|ddƒdigi }|D]}||dƒq‚~ƒ|_ti|iƒ|_tt|i gi }|D]}||dƒqÕ~ƒƒ|_n|SdS(Ns__hdr__is__byte_order__s>sii(stypes__new__sclssclsnamesclsbasessclsdictstsgetattrsNonesstsappends_[1]sxs__hdr_fields__sjoins __hdr_fmt__sstructscalcsizes __hdr_len__sdictszips__hdr_defaults__(sclssclsnamesclsbasessclsdictssts_[1]stsx((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys__new__s.GD(s__name__s __module__s__new__(((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys _MetaPacket ssPacketcBs\tZdZeZd„Zd„Zd„Zd„Zd„Z d„Z d„Z d„Z RS( sBase packet class, with metaclass magic to generate members from self.__hdr__. __hdr__ should be defined as a list of (name, structfmt, default) tuples __byte_order__ can be set to override the default ('>') Example:: >>> class Foo(Packet): ... __hdr__ = (('foo', 'I', 1), ('bar', 'H', 2), ('baz', '4s', 'quux')) ... >>> foo = Foo(bar=3) >>> foo Foo(bar=3) >>> str(foo) 'quux' >>> foo.bar 3 >>> foo.baz 'quux' >>> foo.foo = 7 >>> foo.baz = 'whee' >>> foo Foo(baz='whee', foo=7, bar=3) >>> Foo('hello, world!') Foo(baz=' wor', foo=1751477356L, bar=28460, data='ld!') cOsëd|_|ovy|i|dƒWqçtij oKt|dƒ|ijo t‚nt d|i i |dfƒ‚qçXnbx1|i D]&}t||ti|i|ƒƒqWx*|iƒD]\}}t|||ƒqÇWdS(sPacket constructor with ([buf], [field=val,...]) prototype. Arguments: buf -- optional packet buffer to unpack Optional keyword arguments correspond to members to set (matching fields in self.__hdr__, or 'data'). sisinvalid %s: %rN(sselfsdatasargssunpacksstructserrorslens __hdr_len__sNeedDatas UnpackErrors __class__s__name__s__hdr_fields__skssetattrscopys__hdr_defaults__skwargss iteritemssv(sselfsargsskwargssvsk((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys__init__8s   ) $ cCs|it|iƒSdS(N(sselfs __hdr_len__slensdata(sself((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys__len__QscCs1yt||ƒSWntj o t‚nXdS(N(sgetattrsselfsksAttributeErrorsKeyError(sselfsk((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys __getitem__TscCs¡gi}|iD]D}t||ƒ|i|jo!|d|t||ƒfƒqq~}|io|id|iƒnd|ii di |ƒfSdS(Ns%s=%rsdata=%rs%s(%s)s, ( sappends_[1]sselfs__hdr_defaults__sksgetattrslsdatas __class__s__name__sjoin(sselfs_[1]sksl((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys__repr__Xs^ cCs|iƒt|iƒSdS(N(sselfspack_hdrsstrsdata(sself((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys__str__`scCsüyDti|igi}|iD]}|t||ƒƒq ~ŒSWn±ti j o¢g}xN|iD]C}t||ƒ}t |t ƒo|i|ƒqh|i|ƒqhWyti|i|ŒSWqøti j o}tt|ƒƒ‚qøXnXdS(sReturn packed header string.N(sstructspacksselfs __hdr_fmt__sappends_[1]s__hdr_fields__sksgetattrserrorsvalssvs isinstancestuplesextendses PackErrorsstr(sselfsesks_[1]svsvals((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pyspack_hdrcsD cCst|ƒSdS(s(Return packed header + self.data string.N(sstrsself(sself((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pyspackuscCs`xIti|iti|i||i ƒƒD]\}}t |||ƒq,W||i|_ dS(s8Unpack packet header fields from buf, and set self.data.N( s itertoolssizipsselfs__hdr_fields__sstructsunpacks __hdr_fmt__sbufs __hdr_len__sksvssetattrsdata(sselfsbufsvsk((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pysunpackys  ( s__name__s __module__s__doc__s _MetaPackets __metaclass__s__init__s__len__s __getitem__s__repr__s__str__spack_hdrspacksunpack(((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pysPackets        s................................ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[.]^_`abcdefghijklmnopqrstuvwxyz{|}~.................................................................................................................................icCsºd}g}xš|o’|| ||f\}}digi}|D]}|dt |ƒƒqD~ƒ}|i t ƒ}|id||d||fƒ||7}qWdi|ƒSdS(s3Return a hexdump output string of the given buffer.is s%02xs %04d: %-*s %sis N( snsressbufslengthslinesjoinsappends_[1]sxsordshexas translates __vis_filter(sbufslengthshexasressns_[1]sxsline((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pyshexdumpƒs:!cCsti||ƒSdS(N(sdnets ip_cksum_addsbufss(sssbuf((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys in_cksum_add‘scCstiti|ƒƒd@SdS(Niÿÿ(ssocketsntohssdnetsip_cksum_carryss(ss((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys in_cksum_done“scCst|ƒ}tid|ƒ}d}xD|djo6|||d||d7}|d7}|d8}q'W|o|||d7}n|SdS(NsBiiii(slensbufsnleftsarraysasiss(sssbufsasisnleft((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys in_cksum_add—s   cCs2x"|d?o|d?|d@}qW|d@SdS(Niiÿÿ(ss(ss((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys in_cksum_done¢s cCsttd|ƒƒSdS(s"Return computed Internet checksum.iN(s in_cksum_dones in_cksum_addsbuf(sbuf((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pysin_cksum§s(s__doc__scopys itertoolssstructs ExceptionsErrors UnpackErrorsNeedDatas PackErrorstypes _MetaPacketsobjectsPackets __vis_filtershexdumpsdnetssockets in_cksum_adds in_cksum_dones ImportErrorsarraysin_cksum(s __vis_filters _MetaPacketsstructs in_cksum_addsin_cksumshexdumps PackErrors in_cksum_dones itertoolss UnpackErrorsPacketsErrorsdnetsarrayscopysNeedDatassocket((s9/mnt/gmirror/ports/net/py-dpkt/work/dpkt-1.6/dpkt/dpkt.pys?s$ g