示例#1
0
文件: NetConf.py 项目: namili/blueman
	def reload_settings(self):
		self._kill_dhcp()
		self._restore_iptables()
		
		try:
			create_bridge()
		except BridgeException, msg:
			dprint("Unable to create bridge:", msg)
示例#2
0
    def apply_settings(self):
        if self.ip4_address == None or self.ip4_mask == None:
            if self.ip4_changed:
                self.ip4_changed = False
            self.store()
            return

        if self != NetConf.get_default():
            NetConf.get_default().remove_settings()
            NetConf.default_inst = self

        try:
            create_bridge("pan1")
        except BridgeException, e:
            if e.errno != errno.EEXIST:
                raise
示例#3
0
	def apply_settings(self):
		if self.ip4_address == None or self.ip4_mask == None:
			if self.ip4_changed:
				self.ip4_changed = False
			self.store()
			return
		
		if self != NetConf.get_default():
			NetConf.get_default().remove_settings()
			NetConf.default_inst = self
		
		try:
			create_bridge("pan1")
		except BridgeException, e:
			if e.errno != errno.EEXIST:
				raise
示例#4
0
    def apply_settings(self):
        if self.ip4_address == None or self.ip4_mask == None:
            if self.ip4_changed:
                self.ip4_changed = False
            self.store()
            return

        if self != NetConf.get_default():
            NetConf.get_default().remove_settings()
            NetConf.default_inst = self

        try:
            create_bridge("pan1")
        except BridgeException as e:
            if e.errno != errno.EEXIST:
                raise

        ip_str = inet_ntoa(self.ip4_address)
        mask_str = inet_ntoa(self.ip4_mask)

        if self.ip4_changed or not self.locked("ifconfig"):
            self.enable_ip4_forwarding()

            ret = call(["ifconfig", "pan1", ip_str, "netmask", mask_str, "up"])
            if ret != 0:
                raise Exception("Failed to setup interface pan1")
            self.lock("ifconfig")

        if self.ip4_changed or not self.locked("iptables"):
            self.del_ipt_rules()

            self.add_ipt_rule("nat", "POSTROUTING",
                              "-s %s/%s -j MASQUERADE" % (ip_str, mask_str))
            self.add_ipt_rule("filter", "FORWARD", "-i pan1 -j ACCEPT")
            self.add_ipt_rule("filter", "FORWARD", "-o pan1 -j ACCEPT")
            self.add_ipt_rule("filter", "FORWARD", "-i pan1 -j ACCEPT")
            self.lock("iptables")

        if self.dhcp_handler:
            self.dhcp_handler.do_apply()
        self.ip4_changed = False

        self.store()
示例#5
0
文件: NetConf.py 项目: GinoM/blueman
    def apply_settings(self):
        if self.ip4_address == None or self.ip4_mask == None:
            if self.ip4_changed:
                self.ip4_changed = False
            self.store()
            return

        if self != NetConf.get_default():
            NetConf.get_default().remove_settings()
            NetConf.default_inst = self

        try:
            create_bridge("pan1")
        except BridgeException as e:
            if e.errno != errno.EEXIST:
                raise

        ip_str = socket.inet_ntoa(self.ip4_address)
        mask_str = socket.inet_ntoa(self.ip4_mask)

        if self.ip4_changed or not self.locked("ifconfig"):
            self.enable_ip4_forwarding()

            ret = call(["ifconfig", "pan1", ip_str, "netmask", mask_str, "up"])
            if ret != 0:
                raise Exception("Failed to setup interface pan1")
            self.lock("ifconfig")

        if self.ip4_changed or not self.locked("iptables"):
            self.del_ipt_rules()

            self.add_ipt_rule("nat", "POSTROUTING", "-s %s/%s -j MASQUERADE" % (ip_str, mask_str))
            self.add_ipt_rule("filter", "FORWARD", "-i pan1 -j ACCEPT")
            self.add_ipt_rule("filter", "FORWARD", "-o pan1 -j ACCEPT")
            self.add_ipt_rule("filter", "FORWARD", "-i pan1 -j ACCEPT")
            self.lock("iptables")

        if self.dhcp_handler:
            self.dhcp_handler.do_apply()
        self.ip4_changed = False

        self.store()