U v` @srdZddlmZddlmZddlmZdZdZGdddejZ Gd d d ejZ Gd d d ejZ d dZ dS)zRouting Information Protocol.)print_function)absolute_import)dpktc@s8eZdZdZddefddfZddZdd Zd d Zd S) RIPzRouting Information Protocol. TODO: Longer class information.... Attributes: __hdr__: Header fields of RIP. TODO. cmdB)vr r)rsvdHrcCs|tj||g}d|_|jrlt|jdd}|jdkrPt|jdd|_n |||jdd|_q||_|_ dS)N) rPacketunpackauthdataRTEfamilyAuthappendrtes)selfbufZl_rter`/private/var/folders/0j/yyfkg7712236ncpm167bvylc27vst9/T/pip-unpacked-wheel-y9gppv54/dpkt/rip.pyr s  z RIP.unpackcCs2|j}|jr|t|j7}|ttt|j7}|S)N)Z __hdr_len__rlensummapr)rnrrr__len__-s z RIP.__len__cCs2d}|jrt|j}||dtt|jS)N)rbytesZpack_hdrjoinrr)rrrrr __bytes__4s z RIP.__bytes__N) __name__ __module__ __qualname____doc__REQUEST__hdr__rr!r%rrrrrs  rc@seZdZdZdS)r))rr r) route_tagr r)addrIr)Zsubnetr.r)Znext_hopr.r)metricr.rNr&r'r(r+rrrrr;src@seZdZdZdS)r))r r r)typer r)rZ16srNr0rrrrrFsrcCs(ddlm}|d}t|}t||ks,t|d}t|}t||ksLt|d}t|||}|jsnt|jjdks~t|jj dkst|jj|ddkstt |j d kst|j d}|j dkst|j dkst|jd kstt||||kstt |t |||ks$tdS) Nr) unhexlifyZ(ffff00020123456789abcdef0123456789abcdefZ(0002000001020300ffffff000000000000000001Z02020000rr0123456789abcdefr)binasciir2rr#AssertionErrorrrrr r1rrrr,r/)r2Zbuf_authZ auth_directZbuf_rterZbuf_ripZriprrrtest_creation_with_authNs4    r6N) r) __future__rrrr*ZRESPONSErrrrr6rrrrs   +