+z2Wc@sddkZddkZddkZddkZddkZddkZddkZddkl Z l Z ddk l Z ddk Z dZe eZyeieidWnDeij o5ZddkZdeid6e3d?6e9d@6e5dA6Z<edBZ=edCZ>dDZ?dEZ@dFZAhedGe?6edHe@6edIeA6ZBdJZCeDaEdKZFdLZGdaHdMZIdNZJdaKdOZLdPZMdQeNfdRYZOdSdTZPdUZQddVZRddWZSeiTdXZUeiTdYZVeiTdZZWd[ZXd\ZYd]ZZda[d^Z\da]d_Z^d`Z_e0ddaZ`e0dbZadcZbddZcdeZddfZeddgZfdhZgdiZhdZidjZjdkZkdlZldmZmdnZndoZodpZpdqZqdrZrdsZsdatddtdddduZudavddvddddwZwdaxddvddddxZydazddyddddzZ{da|ddydddd{Z}da~dd|dd}dddddd~ Zdadd|dd}ddZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdefdYZdZd|adZdZdZde i fdYZeDaeDdZdZdS(iN(t ConfShellVartConfPAP(tLogFilessystem-config-networkttCtLC_ALLs/usr/share/localecCs ti|S((tgettexttlgettext(tx((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt.st_cCsttpiti\}}}}}|iddjo|idd\}}n|}|iddantS(Nt-iit.i(t_kernel_versiontostunametfindtsplit(tsysnametnodenametreleasetversiontmachinetvertrel((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytkernel_version3scCsvxodD]g}||||joLy t||t||SWqn||||jodSdSqnXqqWdS(Niiiii(iii(tint(tv1tv2ti((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytcmp_kernel_version?s s!/usr/share/system-config-network/s/etc/sysconfig/network-scripts/s/etc/sysconfig/networking/sdevices/s profiles/s/etc/sysconfig/networks/etc/wvdial.confs /etc/hostss/etc/resolv.confs/etc/pppiiis/etc/modprobe.d/network.confs/etc/modules.confs/etc/sysconfig/hwconfs/etc/sysconfig/isdncards/etc/ppp/pap-secretss/etc/ppp/chap-secretstCommontEthernettModemtISDNtLoopbacktxDSLtWirelesst TokenRingtIPSECtQETHtHSIs /dev/modems /dev/ttyS0s /dev/ttyS1s /dev/ttyS2s /dev/ttyS3s /dev/ttyI0s /dev/ttyI1s /dev/ttyI2s /dev/ttyI3s/dev/input/ttyACM0s/dev/input/ttyACM1s/dev/input/ttyACM2s/dev/input/ttyACM3s /dev/ttyM0s /dev/ttyM1s^eth[0-9]*(:[0-9]+)?$s^ppp[0-9]*(:[0-9]+)?$s^ippp[0-9]*(:[0-9]+)?$s^isdn[0-9]*(:[0-9]+)?$s^tr[0-9]*(:[0-9]+)?$s^lo$s^hsi[0-9]*(:[0-9]+)?$s^wlan[0-9]*(:[0-9]+)?$tActivetInactivetCRTSCTStXONXOFFtNOFLOWsHardware (CRTSCTS)sSoftware (XON/XOFF)tNonecOsdS(N((targstkwargs((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytnopscCs |adS(N(t_testenv(tval((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt setTestEnvscCstS(N(R3(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt getTestEnvscCsti||adS(N(tlogt set_loglevelt_verbose(tl((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytsetVerboseLevels cCstS(N(R9(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytgetVerboseLevelscCs |adS(N(t_debug(R:((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt setDebugLevelscCstS(N(R=(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt getDebugLevelst TestErrorcBseZddZRS(cCsti||dS(N(t Exceptiont__init__(tselfR0((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyRBsN(t__name__t __module__R/RB(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyR@sicCsmddk}d}tdd}|idt|i|}x|D]}|d|}qGW|i|S(NiRs /dev/randomtrbs%dBs%02x(tstructtfiletunpacktlentreadtclose(tmlenRGtkeytftcharsR((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt gen_hexkeys  c Cs|pdSyddk}|id}|i|i|iB|i|it|djo |g}n|}xW|D]O}|i d|}x4|D],}||i |jo|i |PqqWqW~|SWndSXdS(Nit/itname( R/trpmtTransactionSett setVSFlagst RPMVSF_NORSAt RPMVSF_NODSAtsetFlagstRPMTRANS_FLAG_NOMD5RJtdbMatcht RPMTAG_NAMEtremove(tnamelistRTttst toinstallRStmitn((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytrpms_notinstalleds,    cCsYt|}t}|o<t|o/di|}ttd|dd}|S|S(Ns sLShall the following packages, which are needed on your system, be installed?t dialog_typetquestion(Rct RESPONSE_NORJtjointgeneric_longinfo_dialogR (tpkgsR`trtplist((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt assure_rpmss  cCsQt|}|o:t|o-di|}ttd|dddSdS(Ns sLYou have to install the following packages, which are needed on your system!Rdtinfoii(RcRJRgRhR (RiR`Rk((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt request_rpmss   s ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$s^([a-zA-Z]|[0-9]|_)(([a-zA-Z]|[0-9]|-|_)*([a-zA-Z]|[0-9]|_))?(\.([a-zA-Z]|[0-9]|_)(([a-zA-Z]|[0-9]|-|_)*([a-zA-Z]|[0-9]))?)*\.?$s2^[a-zA-Z0-9-_]{1,64}(\.([a-zA-Z0-9-_]{1,64}))*\.?$cCsg|ptSt|djoDti|otSti|ptSti|ptStSdS(Ni(tFalseRJt ip_patterntmatchtlength_patternthostname_patterntTrue(thostname((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt testHostnamescCs|id}t|djoCd}x>|D].}|d9}y|t|7}Wq/q/Xq/WndSd}x/|o'|d@o|d7}n|d?}qrW|S(NR iiii(RRJtlong(tnetmasktvalsR4tbits((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytnetmask_to_bits s$   cCsyt|}WndSXd|}td}x*|o"|d>}|dB}|d8}q4Wx |o|d>}|d8}qaWt|d?dt|d?d@dt|d ?d@dt|d@}|S( NRi iiiR iii(RRwtstr(RztremRxtnetstr((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytbits_to_netmask s$     =cCsBtdjptittjotittantS(N(t DVpapconfR/tfilenametgetRoottPAPFILER(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt getPAPConf:s$cCsBtdjptittjotittantS(N(t DVchapconfR/RRtCHAPFILER(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt getCHAPConfBs$c Cs|}d}x|D]}|i|jot|dd ot|i}|io|d|id7}ny |i|i}|||/dev/null 2>&1isln %s %s(RRRtlinktsystemR7tsymlink(tsrctdst((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyR4sc Cstii|pdSy]ti||ti||ytid|WnnXtidd||fWn>tt fj o,}t t d||t |fnXdS(Ns#/sbin/restorecon %s >/dev/null 2>&1iscp %s %ssError copying %s to %s: %s!( RRRtshutiltcopytcopymodeR5R7tIOErrorRRR R|(R7R8R1((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyR:"s cCstii|pdSy.ti||tidd||fWn8tj o,}ttd||t|fnXdS(Nis ln -s %s %ssError linking %s to %s: %s!( RRRR6R7RRR R|(R7R8R1((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyR61s cCstii| otii| odSy.ti||tidd||fWnAtttfj o,}t t d||t |fnXdS(Nismv %s %ssError renaming %s to %s: %s!( RRRR2trenameR7R<RtEnvironmentErrorRR R|(R7R8R1((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyR=;s( c Csy%ti|tidd|Wn5ttfj o#}ttdt|nXytid|WnnXdS(Nismkdir %ssError creating directory! %ss#/sbin/restorecon %s >/dev/null 2>&1( RtmkdirR7R<RRR R|R5(RR1((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyR?Es  cCsK|}tii|ptt}n|Stii|pdS|SdS(N(RRtexistst NETCONFDIRRHR/(Rtfn((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt get_filepathSst ConfDevicescBseZddZRS(cCs>ti||djott}n|d7}yti|}Wntj onXx|D]}t|djo|d djoti i ||o||ddjoq|i ddjo[|i ddjoE|i ddjo/ti ||ti o|i|dqeqeW|idS( NRRisifcfg-it~s.rpmsaves.rpmnews-range(tlistRBR/RtSYSCONFDEVICEDIRRtlistdirRRJRRRRtR_OKRR(RCtconfdirtmdirtentry((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyRB`s(   N(RDRER/RB(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyRD_scCst|ptSti|ti p'tii| ptii|otS|ddjotSt|djo|d djotSt|djo|d djotSt|djo|d djotStS(NiREis.rpmnewis.rpmsaves.rpmorig( RJRoRRRIRRR/Rt(R((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt testFilenamews $$$cCs |adS(N(t__root(R((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytsetRootscCstS(N(RN(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyRscCsutiddt|xTddtttttfD]7}tii |d|pt |d|q6q6WdS(Nis prepareRoot()s/etcs/etc/sysconfigRR( R7ROtSYSCONFNETWORKINGtOLDSYSCONFDEVICEDIRRGtSYSCONFPROFILEDIRtPPPDIRRRR2R?(RRK((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyt prepareRoots  tConfKeyscBseZdZRS(cCs3tii|ttd||iddS(Nskeys-i(RRBRRGtchmod(RCRS((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyRBs (RDRERB(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pyRUsc Cstiddto | odStitdtip tiddtddSttt}tii tt dpt }t tt dnd}|p8t i tt}|ido|d}qnttt}x|D]}|d joqnttd |}ttd |}t||oqntttd |t||tid td ||ftt d|d |}t|t||qWxhd t6dt6iD]r\} } t| } tt d|| } tii|  pt| |  ot| t| | qqWt adS(NisupdateNetworkScripts()RRsCannot write to %ss /default/s/defaulttdefaulttCURRENT_PROFILEtlos/ifcfg-is3Linking %s to devices and putting it in profile %s.s /resolv.confs/hosts(R7t__updatedNetworkScriptsRRRtW_OKRTRoRR2RRRtR?RtSYSCONFNETWORKthas_keyRDRQRGRR0R4R t RESOLVCONFt HOSTSCONFtitemsR( tforcet firsttimet curr_proftnwconftdevlistRtocfiletdfiletpfileRtcfilethostfiletconffile((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytupdateNetworkScriptssT       % s Harald Hoyer (t __builtin__RtlocaleRtos.pathRRR9tnetconfpkg.confRRtnetconfpkg.logRRRR7t setlocaleRtErrorRtenvirontbind_textdomain_codesett nl_langinfotCODESETtbindtextdomaint textdomainR t__dict__R/R RRRARQRPRGRRR\t WVDIALCONFR_R^RSt MODULESCONFtHWCONFt ISDNCARDCONFRRtDEFAULT_PROFILE_NAMERtMODEMR"tLOtDSLRRR'R(R)RtmodemDeviceListRtACTIVEtINACTIVER,R-R.tmodemFlowControlsR2RoR3R5R6R9R;R<R=R>R?RAR@RQRcRlRntcompileRpRsRrRvR{RRRRRRRRRRRRRRRt RESPONSE_NONEtRESPONSE_REJECTtRESPONSE_ACCEPTtRESPONSE_DELETE_EVENTt RESPONSE_OKtRESPONSE_CANCELtRESPONSE_CLOSEt RESPONSE_YESRftRESPONSE_APPLYt RESPONSE_HELPRRRRRRhRRRRRR$R%R&R(R)R*R+R,R-R.R0R3R4R:R6R=R?RCRFRDRMRNRORRTRURZRlt __author__(((s;/usr/share/system-config-network/netconfpkg/NC_functions.pytsZ                 "  !                            &  !      UN                 A