o ¯bã@s^dZddlZddlmZddlmZddlmZGdd„dƒZeej ƒGdd „d ej ƒƒZ dS) z1 Implementation of raw packet interfaces for UDP éN)Ú implementer)Úprotocol)Úrawc@seZdZdd„ZdS)Ú UDPHeadercCs(t d|dd…¡\|_|_|_|_dS)Nz!HHHHé)ÚstructÚunpackÚsourceÚdestÚlenÚcheck)ÚselfÚdata©rú5/usr/lib/python3/dist-packages/twisted/pair/rawudp.pyÚ__init__s ÿzUDPHeader.__init__N)Ú__name__Ú __module__Ú __qualname__rrrrrrs rc@s$eZdZdd„Zdd„Zdd„ZdS)ÚRawUDPProtocolcCs i|_dS)N)Ú udpProtos)r rrrrs zRawUDPProtocol.__init__cCs\t|tjƒs tdƒ‚|dkrtdƒ‚|dkrtdƒ‚||jvr$g|j|<|j| |¡dS)Nz6Added protocol must be an instance of DatagramProtocolrz'Added protocol must be positive or zeroiz"Added protocol must fit in 16 bits)Ú isinstancerÚDatagramProtocolÚ TypeErrorrÚappend)r ÚnumÚprotorrrÚaddProtos   zRawUDPProtocol.addProtocCs<t|ƒ}|j |jd¡D]}| |dd…||jf¡q dS)Nrr)rrÚgetr ÚdatagramReceivedr )r rÚpartialr r rÚversionÚihlÚtosÚtot_lenÚ fragment_idÚfragment_offsetÚ dont_fragmentÚmore_fragmentsÚttlÚheaderrrrrr)sÿzRawUDPProtocol.datagramReceivedN)rrrrrrrrrrrs r) Ú__doc__rÚzope.interfacerÚtwisted.internetrÚ twisted.pairrrÚIRawDatagramProtocolÚAbstractDatagramProtocolrrrrrÚs