summaryrefslogtreecommitdiffstats
path: root/retiolum/scripts/adv_graphgen/find_super.py
diff options
context:
space:
mode:
Diffstat (limited to 'retiolum/scripts/adv_graphgen/find_super.py')
-rw-r--r--retiolum/scripts/adv_graphgen/find_super.py59
1 files changed, 0 insertions, 59 deletions
diff --git a/retiolum/scripts/adv_graphgen/find_super.py b/retiolum/scripts/adv_graphgen/find_super.py
deleted file mode 100644
index ae0fae8f..00000000
--- a/retiolum/scripts/adv_graphgen/find_super.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/python
-
-def find_potential_super(path="/etc/tinc/retiolum/hosts"):
- import os
- import re
-
- needle_addr = re.compile("Address\s*=\s*(.*)")
- needle_port = re.compile("Port\s*=\s*(.*)")
- for f in os.listdir(path):
- with open(path+"/"+f) as of:
- addrs = []
- port = "655"
-
- for line in of.readlines():
-
- addr_found = needle_addr.match(line)
- if addr_found:
- addrs.append(addr_found.group(1))
-
- port_found = needle_port.match(line)
- if port_found:
- port = port_found.group(1)
-
- if addrs : yield (f ,[(addr ,int(port)) for addr in addrs])
-
-def try_connect(addr):
- try:
- from socket import socket,AF_INET,SOCK_STREAM
- s = socket(AF_INET,SOCK_STREAM)
- s.settimeout(2)
- s.connect(addr)
- s.settimeout(None)
- s.close()
- return addr
- except Exception as e:
- pass
- #return ()
-
-def check_one_super(ha):
- host,addrs = ha
- valid_addrs = []
- for addr in addrs:
- ret = try_connect(addr)
- if ret: valid_addrs.append(ret)
- if valid_addrs: return (host,valid_addrs)
-
-def check_all_the_super(path="/etc/tinc/retiolum/hosts"):
- from multiprocessing import Pool
- p = Pool(20)
- return filter(None,p.map(check_one_super,find_potential_super(path)))
-
-
-
-if __name__ == "__main__":
- """
- usage
- """
- for host,addrs in check_all_the_super():
- print host,addrs