U •v«`ã@s´dZddlmZddlmZddlmZddlmZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZGdd„dejƒZGdd„dejƒZdZdd„Zdd„Zdd„ZdS) z%Stream Control Transmission Protocol.é)Úprint_function)Úabsolute_importé)Údpkt)Úcrc32céééééééé é é é é éc@s,eZdZdZdZdd„Zdd„Zdd„Zd S) ÚSCTPz™Stream Control Transmission Protocol. TODO: Longer class information.... Attributes: __hdr__: Header fields of SCTP. TODO. ))ÚsportÚHr)Údportrr)ZvtagÚIr)ÚsumrrcCsLtj ||¡g}|jrBt|jƒ}| |¡|jt|ƒd…|_q||_dS©N)rÚPacketÚunpackÚdataÚChunkÚappendÚlenÚchunks)ÚselfÚbufÚl_Úchunk©r&úa/private/var/folders/0j/yyfkg7712236ncpm167bvylc27vst9/T/pip-unpacked-wheel-y9gppv54/dpkt/sctp.pyr0s  z SCTP.unpackcCs|jtdd„|jDƒƒS)Ncss|]}t|ƒVqdSr)r ©Ú.0Úxr&r&r'Ú :szSCTP.__len__..)Ú __hdr_len__rr!©r"r&r&r'Ú__len__9sz SCTP.__len__cCs^dd„|jDƒ}|jdkrLt d| ¡¡}|D]}t ||¡}q.t |¡|_| ¡d |¡S)NcSsg|] }t|ƒ‘qSr&)Úbytesr(r&r&r'Ú =sz"SCTP.__bytes__..rlÿÿó)r!rrÚaddÚpack_hdrÚdoneÚjoin)r"r$Úsr*r&r&r'Ú __bytes__<s  zSCTP.__bytes__N)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú__hdr__rr.r7r&r&r&r'rs   rc@s4eZdZddefddfZdd„Zdd„Zd d „Zd S) rÚtypeÚB)Úflagsr>r)r rrcCsxtj ||¡|jd|j|j…|_d|_|jtkrt|jdrtd|jd}|rt|jt|jƒ}||||…|_dS)Nr1r ) rrrrr r,Úpaddingr=ÚDATA)r"r#ÚplenÚposr&r&r'rMsz Chunk.unpackcCs|jt|jƒSr)r r@r-r&r&r'r.Zsz Chunk.__len__cCs| ¡t|jƒ|jSr)r3r/rr@r-r&r&r'r7]szChunk.__bytes__N)r8r9r:ÚINITr<rr.r7r&r&r&r'rFsý rsH€DP0ºïT<;¹œF  ÿÿ+-~²›æ››æœ €ÀÀcCs2ttƒ}tt|ƒkst‚d|_tt|ƒks.t‚dS)Nr)rÚ__sr/ÚAssertionErrorr)Úsctpr&r&r'Útest_sctp_packgsrHcCspttƒ}|jdkst‚|jdks$t‚t|jƒdks6t‚t|ƒdksFt‚|jd}|jtks^t‚|jdkslt‚dS)NiD€éPréHré<) rrErrFrr r!r=rD)rGr%r&r&r'Útest_sctp_unpackns rLcCs d}t|ƒ}|jst‚t|jƒdks(t‚|jd}|jtks@t‚|jdksNt‚t|ƒdks^t‚|jdd…dkstt‚|jdks‚t‚t|ƒ|tjd…ksœt‚dS) Ns°€DPÒjÁåpå[L£+-~²GET / HTTP/1.1 Host: 203.255.252.194 User-Agent: Mozilla/5.0 (X11; U; Linux i686; ko-KR; rv:1.7.12) Gecko/20051007 Debian/1.7.12-1 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ko,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: EUC-KR,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive rri£i¤iòÿÿÿskeep-alive r1) rr!rFr r=rArr/r,)ÚdrGÚchr&r&r'Útest_sctp_data_chunkys  rON)r;Ú __future__rrÚrrrArDZINIT_ACKZSACKZ HEARTBEATZ HEARTBEAT_ACKZABORTZSHUTDOWNZ SHUTDOWN_ACKÚERRORZ COOKIE_ECHOZ COOKIE_ACKZECNEZCWRZSHUTDOWN_COMPLETErrrrErHrLrOr&r&r&r'Ús2    '