summaryrefslogtreecommitdiff
path: root/monitor
diff options
context:
space:
mode:
authorJosef Gustafsson <josef.gson@gmail.com>2015-09-11 15:52:55 +0200
committerJosef Gustafsson <josef.gson@gmail.com>2015-09-11 15:52:55 +0200
commita8a6e53a026bddb04948b2a9c52b70c4bc63c2c2 (patch)
treee1bf171a7660a624e62dbf9c9e59e460e518d364 /monitor
parent7523d471cebb7650b9aee7160aa46229e3048276 (diff)
using separate cert database, key hahses in other databases
Diffstat (limited to 'monitor')
-rwxr-xr-xmonitor/josef_leveldb.py69
1 files changed, 35 insertions, 34 deletions
diff --git a/monitor/josef_leveldb.py b/monitor/josef_leveldb.py
index b4b3255..d10514e 100755
--- a/monitor/josef_leveldb.py
+++ b/monitor/josef_leveldb.py
@@ -58,8 +58,13 @@ def db_append(db, key, val):
tmpl.append(val)
db.Put(key,SEP.join(tmpl))
-def db_add_domain_2(db_dir, key_in, val, db_in=None):
+def db_add_domain_2(db_dir, key_in, val_in, db_in=None):
if db_in == None:
+ val = str(hash(val_in))
+ cert_db = db_open(db_dir + "certificates")
+ print "Storing cert " + val_in + " with key " + val
+ cert_db.Put(val, val_in)
+
key_list = key_in.split('/')[0].split(',')[0].split('.')
if key_list[-1] == "com":
key = '.'.join(key_list[:-1])
@@ -67,16 +72,13 @@ def db_add_domain_2(db_dir, key_in, val, db_in=None):
else:
key = '.'.join(key_list)
db = db_open(db_dir + "other")
- # key = '.'.join(key_list)
- # db = db_open(db_dir + key_list[-1])
- # key = '.'.join(key_list)
- # db = db_open(db_dir)
- # print "DB: " + db_dir + key_list[-1]
else:
db = db_in
key = key_in
+ val = val_in
# print "key: ", key, " val: ", val
+ # hash_val = hash(val)
try:
tmp = db.Get(key)
tmpl = tmp.split(SEP)
@@ -85,28 +87,17 @@ def db_add_domain_2(db_dir, key_in, val, db_in=None):
else:
tmpl.append(val)
db.Put(key,SEP.join(tmpl))
+
+ # cert_db = db_open(db_dir + "certificates")
+ # cert_db.Put(str(hash_val), val)
except KeyError:
+ # cert_db = db_open(db_dir + "certificates")
+ # cert_db.Put(str(hash_val), val)
+
db.Put(key,SEP.join([val]))
new_key = key.split('.',1)[-1]
if new_key != key:
- db_add_domain_2(db,new_key,key, db)
-
-
-def db_add_domain(db, domain, data):
- if db is None:
- print "ERROR: NO DATABASE SET!"
- return
-
- tmpl = domain.split('.')
- k = ""
- for item in reversed(tmpl):
- if k == "":
- next_k = item
- else:
- next_k = item + '.' + k
- db_append(db, k, next_k)
- k = next_k
- db_append(db, k, data)
+ db_add_domain_2(db_dir,new_key,key, db)
def db_add_certs(db_dir, data):
@@ -131,11 +122,16 @@ def db_add_certs(db_dir, data):
def db_lookup_domain(db_dir, domain):
domain_list = domain.split('.')
res = []
- db = db_open(db_dir + domain_list[-1])
- domain_list = domain_list[:-1]
+ if domain_list[-1] == "com":
+ key = '.'.join(domain_list[:-1])
+ db = db_open(db_dir + domain_list[-1])
+ else:
+ key = '.'.join(domain)
+ db = db_open(db_dir + "other")
+
+ domain_list = domain_list[:-1]
cur_domain = domain_list.pop()
- # print cur_domain
intermediate = db.Get(cur_domain).split(SEP)
last = False
one_more = False
@@ -148,24 +144,29 @@ def db_lookup_domain(db_dir, domain):
try:
cur_domain = domain_list.pop() + "." + cur_domain
except IndexError:
- return res
+ break
# Prune
next_level = []
- # print intermediate
for item in intermediate:
if match_domain(cur_domain, item):
try:
tmp = db.Get(item).split(SEP)
for tmp_item in tmp:
- if tmp_item[0] == '{':
- res.append(tmp_item)
- else:
+ try:
+ res.append(int(tmp_item))
+ except:
next_level.append(tmp_item)
except KeyError:
pass
-
intermediate = next_level
- return res
+
+ certs = []
+ cert_db = db_open(db_dir + "certificates")
+ for item in res:
+ tmp = cert_db.Get(str(item))
+ certs.append(tmp)
+
+ return certs