Ñò þIc @s6dZddkZddkZyVeieieidƒZeid/ƒ[d„Zd„Zd„Z dd„Z Wnoei j o`yddk Z Wne j oe d ƒ‚nXd „Zd „Zd „Z dd „Z nXdZdZdZdZdZdZdZdZdZdd0d„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdZdZdZdZ dZ!d Z"d!Z#d"Z$dZ%d#Z&d$Z'd%Z(d&Z)d'Z*d(Z+d)Z,dZ-d*d1d+„ƒYZ.d,d2d-„ƒYZ/d.„Z0dS(3sf Netlink message generation/parsing Copyright 2007 Johannes Berg GPLv2 iÿÿÿÿNicCs|i|ƒdS(N(tbind(t descriptortaddr((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt_nl_bindscCs |iƒS(N(t getsockname(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt_nl_getsocknamescCs|i|ƒdS(N(tsend(Rtmsg((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt_nl_sendsi@cCs |i|ƒS(N(trecvfrom(Rtbufs((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt_nl_recvssBThis is neither python 2.5 nor is the _netlink C module available!cCsti|iƒ|dƒdS(Ni(t_netlinkRtfileno(RR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRscCsti|iƒƒS(N(R RR (R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR!scCsti|iƒ|ƒdS(N(R RR (RR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR#scCsti|iƒ|ƒS(N(R R R (RR ((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR %siiiiiitAttrcBsbeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z RS( cGs<||_t|ƒoti||Œ|_n ||_dS(N(ttypetlentstructtpacktdata(tselft attr_typeRtvalues((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt__init__6s  cCs]tidt|iƒd|iƒ}t|iƒ}|ddd@|}||id|S(NtHHiiitiüÿÿÿ(RRRRR(Rthdrtlengthtpad((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt_dump=s%cCsd|it|iƒfS(Ns(RtreprR(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyt__repr__CscCstid|iƒdS(NtHi(RtunpackR(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytu16FscCstid|iƒdS(Nthi(RR!R(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyts16HscCstid|iƒdS(NtIi(RR!R(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytu32JscCstid|iƒdS(Ntii(RR!R(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyts32LscCs|iS(N(R(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytstrNscCs|iidƒdS(NRi(Rtsplit(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytnulstrPscCs t|iƒS(N(tparse_attributesR(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytnestedRs( t__name__t __module__RRRR"R$R&R(R)R+R-(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR5s         tStrAttrcBseZd„ZRS(cCs$ti||dt|ƒ|ƒdS(Ns%ds(RRR(RRR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRVs(R.R/R(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR0Ust NulStrAttrcBseZd„ZRS(cCs'ti||dt|ƒ|dƒdS(Ns%dsBi(RRR(RRR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRZs(R.R/R(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR1YstU32AttrcBseZd„ZRS(cCsti||d|ƒdS(NtL(RR(RRtval((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR^s(R.R/R(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR2]stU8AttrcBseZd„ZRS(cCsti||d|ƒdS(NtB(RR(RRR4((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRbs(R.R/R(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR5astNestedcBseZd„Zd„ZRS(cCs||_||_dS(N(tattrsR(RRR8((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRfs cCslg}x$|iD]}|i|iƒƒqWdi|ƒ}t|ƒ}tid|d|iƒ}||S(NtRi(R8tappendRtjoinRRRR(RtcontentstattrRR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRjs  (R.R/RR(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR7es iiii i i i i iitMessagecBs,eZdddd„Zd„Zd„ZRS(iiÿÿÿÿcCsŽ||_||_||_d|_|pg}t|tƒo@g}x!|D]}|i|iƒƒqNWdi|ƒ|_ n ||_ dS(NiÿÿÿÿR9( Rtflagstseqtpidt isinstancetlistR:RR;tpayload(Rtmsg_typeR?R@RDR<R=((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR†s     cCs„|idjo|iƒ|_n|i|_t|iƒ}tid|d|i|i|i|iƒ}|i||iƒdS(NiÿÿÿÿtIHHIIii( R@RARRDRRRR?R(RtconnRR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR”s cCs,d|i|i|i|it|iƒfS(Ns:(RRAR@R?RRD(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRŸsN(R.R/tNoneRRR(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR>…s t ConnectioncBs2eZddd„Zd„Zd„Zd„ZRS(icCstititi|ƒ|_|iititidƒ|iititidƒt|id|fƒt |iƒ\|_ |_ d|_ ||_ dS(Nii(tsockett AF_NETLINKtSOCK_RAWRt setsockoptt SOL_SOCKETt SO_SNDBUFt SO_RCVBUFRRRAtgroupst_seqt unexpected(RtnltypeRQtunexpected_msg_handler((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR¤s  cCst|i|ƒdS(N(RR(RR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR­sc Csãt|iƒ\}\}}tid|d ƒ\}}}}}t||||dƒ} || _| itjomddk} tid| i d ƒd } | djo2t d| i | ƒ| fƒ} | | _ | ‚qßn| S(NRFiiÿÿÿÿR'iisNetlink error: %s (%d)( R RRR!R>RARt NLMSG_ERRORtosRDtOSErrortstrerrorterrno( RR<tnlpidtnlgrpstmsglenRER?R@RARRWRZterr((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytrecv¯s     cCs|id7_|iS(Ni(RR(R((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR@ÀsN(R.R/RHRRR_R@(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyRI£s  cCsqh}xdt|ƒoVtid|d ƒ\}}t||d|!ƒ||<|ddd@}||}q W|S(NRiiiiüÿÿÿ(RRR!R(RR8tattr_lenR((s1/usr/lib/python2.6/site-packages/iotop/netlink.pyR,Äs (ii((((1t__doc__RRJRKRLt _dummysockRRRRR terrorR t ImportErrort NLM_F_REQUESTt NLM_F_MULTIt NLM_F_ACKt NLM_F_ECHOt NLMSG_NOOPRVt NLMSG_DONEt NLMSG_OVERRUNtNLMSG_MIN_TYPERR0R1R2R5R7t NETLINK_ROUTEtNETLINK_UNUSEDtNETLINK_USERSOCKtNETLINK_FIREWALLtNETLINK_INET_DIAGt NETLINK_NFLOGt NETLINK_XFRMtNETLINK_SELINUXt NETLINK_ISCSIt NETLINK_AUDITtNETLINK_FIB_LOOKUPtNETLINK_CONNECTORtNETLINK_NETFILTERtNETLINK_IP6_FWtNETLINK_DNRTMSGtNETLINK_KOBJECT_UEVENTtNETLINK_GENERICR>RIR,(((s1/usr/lib/python2.6/site-packages/iotop/netlink.pytsj        !