コード例 #1
0
ファイル: gui.py プロジェクト: vaginessa/kismon
	def add_network(self, mac):
		network = self.networks.get_network(mac)
		try:
			crypt = self.crypt_cache[network["cryptset"]]
		except KeyError:
			crypt = decode_cryptset(network["cryptset"], True)
			self.crypt_cache[network["cryptset"]] = crypt
		
		if network["ssid"] == "":
			ssid_str = "<no ssid>"
		else:
			ssid_str = network["ssid"]
			
		if "signal_dbm" in network and len(network["signal_dbm"]) == 3:
			signal = network["signal_dbm"]["last"]
		else:
			signal = 0
		
		line = [mac,
				network["type"],
				ssid_str,
				network["channel"],
				crypt,
				show_timestamp(network["firsttime"]),
				show_timestamp(network["lasttime"]),
				network["lat"],
				network["lon"],
				signal,
				network['comment'],
				signal+100
				]
		try:
			old_line = self.network_lines[mac]
		except:
			old_line = None
		self.network_lines[mac] = line
		
		if mac in self.network_iter:
			network_iter = self.network_iter[mac]
			num = 0
			for value in line:
				if old_line is not None and old_line.pop(0) == value:
					num += 1
					continue
				self.store.set_value(network_iter, num, value)
				num += 1
		else:
			self.network_iter[mac] = self.store.append(line)
			
			adj = self.treeview.get_vadjustment()
			self.scroll_value = int(adj.get_value())
			if self.scroll_value == 0:
				GLib.idle_add(self.treeview.scroll_to_point, -1, 0)
コード例 #2
0
    def add_network(self, mac):
        network = self.networks.get_network(mac)
        try:
            crypt = self.crypt_cache[network["cryptset"]]
        except KeyError:
            crypt = decode_cryptset(network["cryptset"], True)
            self.crypt_cache[network["cryptset"]] = crypt

        if network["ssid"] == "":
            ssid_str = "<no ssid>"
        else:
            ssid_str = network["ssid"]

        if "signal_dbm" in network and len(network["signal_dbm"]) == 3:
            signal = network["signal_dbm"]["last"]
        else:
            signal = 0

        line = [
            mac, network["type"], ssid_str, network["channel"], crypt,
            show_timestamp(network["firsttime"]),
            show_timestamp(network["lasttime"]), network["lat"],
            network["lon"], signal, network['comment'], signal + 100
        ]
        try:
            old_line = self.network_lines[mac]
        except:
            old_line = None
        self.network_lines[mac] = line

        if mac in self.network_iter:
            network_iter = self.network_iter[mac]
            num = 0
            for value in line:
                if old_line is not None and old_line.pop(0) == value:
                    num += 1
                    continue
                self.store.set_value(network_iter, num, value)
                num += 1
        else:
            self.network_iter[mac] = self.store.append(line)

            adj = self.treeview.get_vadjustment()
            self.scroll_value = int(adj.get_value())
            if self.scroll_value == 0:
                GLib.idle_add(self.treeview.scroll_to_point, -1, 0)
コード例 #3
0
ファイル: test.py プロジェクト: krzotr/kismon
	def test_client(self):
		try:
			from .client import Client, ClientThread, encode_cryptset, decode_cryptset
		except SystemError:
			from client import Client, ClientThread, encode_cryptset, decode_cryptset
		class TestClient(Client):
			def send(self, msg):
				return
				
		test_lines, result_split_line, result_parse_line = get_client_test_data()
		
		client = TestClient()
		client.server = "invalid:xyz"
		client.start()
		
		test_dump_name = "%s%skismet_dump_test-%s.dump" % (tempfile.gettempdir(), os.sep, int(time.time()))
		test_dump = open(test_dump_name, "w")
		
		client = TestClient()
		client.set_capabilities(["bssid", "ssid"])
		pos = 0
		errors = 0
		for line in test_lines:
			result = client.split_line(line.split(":", 1)[1])
			if result != result_split_line[pos]:
				print("split_line error %s" % pos)
				print("%s\n!=\n%s" % (result, result_split_line[pos]))
				errors += 1
			
			result = client.parse_line(line)
			if result != result_parse_line[pos]:
				print("parse_line error %s" % pos)
				print("%s\n!=\n%s" % (result, result_parse_line[pos]))
				errors += 1
			pos += 1
			test_dump.write(line)
			
		crypt_test = [
			(0, "none"),
			(2, "WEP"),
			(226, "WEP,TKIP,WPA,PSK"),
			(706, "WEP,WPA,PSK,AES_CCM"),
			(738, "WEP,TKIP,WPA,PSK,AES_CCM"),
		]
		for cryptset, result in crypt_test:
			crypt_str = decode_cryptset(cryptset, True)
			if crypt_str != result:
				print("decode_cryptset error: %s\n%s!=%s" % (cryptset, crypt_str, result))
			
			test_cryptset = encode_cryptset(crypt_str.lower().split(","))
			if test_cryptset != cryptset:
				print("encode_cryptset error: %s\n%s!=%s" % (crypt_str, test_cryptset, cryptset))
		
		if errors != 0:
			sys.exit("client test failed, %s errors" % errors)
			
		test_dump.close()
		
		client.load_dump(test_dump_name)
		client.loop()
		
		client_thread = ClientThread()
		client_thread.client = client
		client.load_dump(test_dump_name)
		client_thread.run()
コード例 #4
0
ファイル: test.py プロジェクト: mark-ankit/kismon
	def test_client(self):
		try:
			from .client import Client, ClientThread, encode_cryptset, decode_cryptset
		except SystemError:
			from client import Client, ClientThread, encode_cryptset, decode_cryptset
		class TestClient(Client):
			def send(self, msg):
				return
				
		test_lines, result_split_line, result_parse_line = get_client_test_data()
		
		client = TestClient()
		client.server = "invalid:xyz"
		client.start()
		
		test_dump_name = "%s%skismet_dump_test-%s.dump" % (tempfile.gettempdir(), os.sep, int(time.time()))
		test_dump = open(test_dump_name, "w")
		
		client = TestClient()
		client.set_capabilities(["bssid", "ssid"])
		pos = 0
		errors = 0
		for line in test_lines:
			result = client.split_line(line.split(":", 1)[1])
			if result != result_split_line[pos]:
				print("split_line error %s" % pos)
				print("%s\n!=\n%s" % (result, result_split_line[pos]))
				errors += 1
			
			result = client.parse_line(line)
			if result != result_parse_line[pos]:
				print("parse_line error %s" % pos)
				print("%s\n!=\n%s" % (result, result_parse_line[pos]))
				errors += 1
			pos += 1
			test_dump.write(line)
			
		crypt_test = [
			(0, "none"),
			(2, "WEP"),
			(226, "WEP,TKIP,WPA,PSK"),
			(706, "WEP,WPA,PSK,AES_CCM"),
			(738, "WEP,TKIP,WPA,PSK,AES_CCM"),
		]
		for cryptset, result in crypt_test:
			crypt_str = decode_cryptset(cryptset, True)
			if crypt_str != result:
				print("decode_cryptset error: %s\n%s!=%s" % (cryptset, crypt_str, result))
			
			test_cryptset = encode_cryptset(crypt_str.lower().split(","))
			if test_cryptset != cryptset:
				print("encode_cryptset error: %s\n%s!=%s" % (crypt_str, test_cryptset, cryptset))
		
		if errors != 0:
			sys.exit("client test failed, %s errors" % errors)
			
		test_dump.close()
		
		client.load_dump(test_dump_name)
		client.loop()
		
		client_thread = ClientThread()
		client_thread.client = client
		client.load_dump(test_dump_name)
		client_thread.run()