+z2Wc@sqddkZddkZddklZddklZlZlZlZl Z ddk l Z l Z l Z lZlZlZlZlZlZlZlZlZlZlZlZlZddklZlZlZddkl Z l!Z!ddk"l#Z#ddk$l%Z%l&Z&ddk'Z'dd k(l)Z)e*a+gZ,y,e)d d d d d gZ-e-i.Z,WnnXgZ/y,e)d d d dd gZ-e-i.Z/WnnXdZ0de!fdYZ1e*a2e a3e*dZ4e*a5e a6e*dZ7defdYZ8de%fdYZ9de9fdYZ:e*a;e a<e*dZ=dZ>dZ?dS(iN(tNCisdnhardware(tHW_CONFt HW_SYSTEMtHW_OKtCardtHardware(t_tgetRoottHWCONFt NETCONFDIRt WVDIALCONFtlogtISDNtMODEMtCRTSCTStETHERNETtQETHt getDeviceTypet TOKENRINGtWIRELESSt MODULESCONFt getTestEnv(tConft FileMissingtVersionMismatch(t ConfModInfot ConfModules(tConfSMB(tGdtlisttgdtlist_properties(texecWithCaptures/bin/shs-cs,find /lib/modules/$(uname -r)/*/drivers/isdns' -name '*.?o' -printf '%f ' 2>/dev/nulls4find /lib/modules/$(uname -r)/*/drivers/net/wirelesscCsutodStdjoUxRdtddgD]9}ytd|aWnttfj o q0nXPq0WntS(Ns/boot/module-infos /module-infos ./module-infotfilename(RtNonetModInfoR RRR(tpath((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt getModInfoDs   t MyConfModulescBs/eZddZdZdZdZRS(cCs2|djott}nti||dS(N(R RRRt__init__(tselfR((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyR%hs cCs|i}x|i|iD]x}|id|d|}x|i|o|iqEWd|d|}x|i|o|iqyWq W|i|=tid|i||i |dS(Ns^[\t ]*s[\t ]+s[\t ]+\-k[\t ]+i( ttelltvarstkeystrewindt findnextlinet deletelineR tldelRtseek(R&tvarnametplacetkeytrestr((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt __delitem__ps   cCsA|id}|djo|| ||dfS|dfSdS(Nt=ii(tfindR (R&toptteq((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pytsplitopts cCs^d}xQ|iD]C}||djo||d||d}q||d}qW|S(NtR4t (R)R (R&tmdictt optstringR1((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt joinoptlists N(t__name__t __module__R R%R3R8R=(((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyR$gs   cCs>tdjp|pttjotatantS(N(t_MyConfModulesR t_MyConfModules_rootRR$(trefresh((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pytgetMyConfModuless   cCsGtdjpttjo&tttd|atantS(Ntcreate_if_missing(t _MyWvDialR t_MyWvDial_rootRRR (RD((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt getMyWvDials   t ConfHWConfcBs;eZdZdZdZdZdZdZRS(sSpecial Hardware Conf ClasscCs$ti|tth|_dS(N(RR%RRR((R&((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyR%scCsti||idS(N(Rtreadtinitvars(R&((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRIs c Cs:h|_titttipdStttd}|i}|id}d}x|D]}t |pqin|id}h}x|D]x}t |pqn|id}t |djoqn|di } | |dR?t__doc__R%RIRJR_R)(((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRHs     tHardwareList_basecBseZeeRS((R>R?RR(((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRast HardwareListcBseZhdd6dd6dd6dd6dd6ZdZddZd Zd Zd Zd Z dd Z dZ dZ dZ RS(tlcsR9tosadtqethteththsittrcCsti|h|_dS(N(RaR%tkeydict(R&((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyR%s cCsWddkl}|}|i|}|o|}|i|nt|dS(Ni(tgetHardwareFactoryi(tnetconfpkg.NCHardwareFactoryRjtgetHardwareClasstappendRR(R&tmtypeRjthwfthwctnewhw((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt addHardwares  cCst}t}xtitdD]}tii|}d}y=d|}tidd|tiiti |}WnnXy}t d|}|i } |i di | } | itidd|| ft| } | djow)nWnnXtidd ||fd} x#|D]} | i|joPq<q<W| o'| i|jo| itjoq)n|id d joq)n|djo|d jo x|D]~} | i|jo?| ii|jo,tidd ||f|i| Pqtidd| i|| ii|fqWx|D].} | i|jo| ii|joPqPqPWt|d|} |i| } || }||_||_t|_| |_t|_||i_|oUxR|iD]@}||jo-||ido||d|_q=qqWnxu|iiD]d\}}||iioG||iidi|o)t|i|||iid|qUqUW|i q)q)W|S(Ns/sys/class/net/*s%s/device/driveris Checking %ss%s/typeR:s type %s = %sis%s = %sRLiR9s*Found %s:%s, which is already in our list!s%s != %s and %s != %stmodulet descriptiontoptions(!RCR#tglobRRMR"tbasenameR R treadlinkRPt readlinestcloseRTRStinttNametStatusRR5Rt ModuleNametremoveRRrt DescriptiontTypeR)R^RiRYtsetattrt setunmodified(R&thdellisttmodulestmodinfotsyspathtdevicetmodtmpathRUtlineRnththwtypetiRXtinfotselfkeytconfkey((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt updateFromSyss          '#    #          !    c Csuddkl}|i}|i}xF|D]>}x5|D]}|i|ijoN|ii|iijo5tidd|i|iif|i|Pq<tidd|i|i|ii|iifq<Wx|D]i}|i|ijo|ii|iijoPqtidd|i|i|ii|iifqWt|_ |i ||i q/W|S(Ni(t NCBackendHalis*Found %s:%s, which is already in our list!s%s != %s and %s != %s( t netconfpkgRt probeCardsR|RR~R RRR}RmR(R&RRthaltcardsRXR((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt updateFromHal`s>            cCs tiddg}x/|D]'}|itjo|i|qqWtiddy|i|}WnnXtidt|tiddy|i|}WnnXtidt|x2|D]*}tidd|i|i|qW~tidt|dS(NitupdateFromSystemRRsRemoving %s from HWList( R R}RRmRtstrRR|R(R&RR((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRs0c Cst}t}x|iD]}||ido||d}nd}t||}|tdjoqnd}x#|D]}|i|joPqqW|o|i|joqn|i|}||}||_||_ ||_ t |_ ||i _ t |_|o\|oUxR|iD]@} | |jo-|| ido|| d|_ qtq4q4Wnx||iiD]k} |i| } ||i i oG||i i di| o)t|i | ||i i d| qqWqWdS(NtaliastUnknownRtRu(RCR#R)R^R RRR|RrRRRR~RR}RiR( R&RRRRsRnRRRXRRR((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pytupdateFromModulessL             !  cCsr|djo|ii}nd}xH|D]@}t|to*||id||i|if7}q*q*W|S(s&returns a string in gdt representationR9s%s.%s.%sN(R t __class__R>t isinstanceRttostrRR|(R&t prefix_stringtmstrtvalue((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRs   cCst|djodS|ddjo |d=ndSxy|D]q}|i|djoW|i|djo*|i|tidd|dPn|i|d|dSq?Wtidd|d|df|i|d}||}|d|_|i|d|dS(NiiRbsDeleting device %siisType = %s, Name = %s(RRR|RRR tfromstrRr(R&R\RtdevR((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRs&   "  c Cs|idt|t}to t}n|o|in|ixF|D]}|idjoPqVqVWti }|i djo|i t }||}d|_|i |_ t |_t|_t|_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_|i|i_nyttt}Wnt j onXx|i!D]}|d djoqn|i t"}||}||_d|_ t"|_t|_|i#||i$dpd||dR?ts390devsR%R RrRRRRRRRR(((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyRbs    [ $  -  ]cCsHtdjp|pttjo tatitantS(N(t__HWListR t __HWList_rootRRbR(RB((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pytgetHardwareLists    cCsht}d}xHtddD]7}x.|D]%}|i|t|joPq,q,WPqW|t|S(Niid(RtxrangeR|R(tbaseRVtnumRX((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pyt getNextDevs  s Harald Hoyer (@RvRMRRtnetconfpkg.NCHardwareRRRRRtnetconfpkg.NC_functionsRRRR R R R R RRRRRRRRtnetconfpkg.conf.ConfRRRtnetconfpkg.conf.ConfModulesRRtnetconfpkg.conf.ConfSMBRtnetconfpkg.gdtRRtethtooltnetconfpkg.executilRR R!t__isdnmodulelistt__msgRQt__wirelessmodulelistR#R$R@RARCRERFRGRHRaRbRRRRt __author__(((s=/usr/share/system-config-network/netconfpkg/NCHardwareList.pytsX  (j      #2    1