Skip to content

Commit d08f4a4

Browse files
committed
porting sqlite operations to APSW and making necessary changes with unittests for db.py
1 parent cd0d168 commit d08f4a4

File tree

9 files changed

+2058
-282
lines changed

9 files changed

+2058
-282
lines changed

nettacker/config.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ class DbConfig(ConfigBase):
8282
For sqlite database:
8383
fill the name of the DB as sqlite,
8484
DATABASE as the name of the db user wants
85-
other details can be left empty
85+
Set the journal_mode (default="WAL") and
86+
synchronous_mode (deafault="NORMAL"). Rest
87+
of the fields can be left emptyAdd commentMore actions
88+
This is the default database:
89+
str(CWD / ".data/nettacker.db")
8690
For mysql users:
8791
fill the ENGINE name of the DB as mysql
8892
NAME as the name of the database you want to create
@@ -104,6 +108,8 @@ class DbConfig(ConfigBase):
104108
username = ""
105109
password = ""
106110
ssl_mode = "disable"
111+
journal_mode = "WAL"
112+
synchronous_mode = "NORMAL"
107113

108114

109115
class PathConfig:
@@ -151,6 +157,8 @@ class DefaultSettings(ConfigBase):
151157
random_chars=generate_random_token(10),
152158
)
153159
retries = 1
160+
max_retries = 3
161+
retry_delay = 0.1
154162
scan_ip_range = False
155163
scan_subdomains = False
156164
selected_modules = None

nettacker/core/graph.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def build_text_table(events):
8484
table_headers = ["date", "target", "module_name", "port", "logs"]
8585
_table.add_rows([table_headers])
8686
for event in events:
87-
log = merge_logs_to_list(json.loads(event["json_event"]), [])
87+
log = merge_logs_to_list(event, [])
8888
_table.add_rows(
8989
[
9090
table_headers,
@@ -157,15 +157,15 @@ def create_report(options, scan_id):
157157
)
158158
index = 1
159159
for event in all_scan_logs:
160-
log_list = merge_logs_to_list(json.loads(event["json_event"]), [])
160+
log_list = merge_logs_to_list(event, [])
161161
html_table_content += log_data.table_items.format(
162162
event["date"],
163163
event["target"],
164164
event["module_name"],
165165
event["port"],
166166
"<br>".join(log_list) if log_list else "Detected", # event["event"], #log
167167
index,
168-
html.escape(event["json_event"]),
168+
html.escape(json.dumps(event)),
169169
)
170170
index += 1
171171
html_table_content += (

nettacker/core/lib/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def get_dependent_results_from_database(self, target, module_name, scan_id, even
5252
while True:
5353
event = find_temp_events(target, module_name, scan_id, event_name)
5454
if event:
55-
events.append(json.loads(event.event)["response"]["conditions_results"])
55+
events.append(event["response"]["conditions_results"])
5656
break
5757
time.sleep(0.1)
5858
return events

nettacker/core/module.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def load(self):
7878
if not self.skip_service_discovery and self.module_name not in self.ignored_core_modules:
7979
services = {}
8080
for service in find_events(self.target, "port_scan", self.scan_id):
81-
service_event = json.loads(service.json_event)
81+
service_event = json.loads(service)
8282
port = service_event["port"]
8383
protocols = service_event["response"]["conditions_results"].keys()
8484
for protocol in protocols:

nettacker/core/utils/common.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import math
77
import multiprocessing
88
import random
9+
import json
910
import re
1011
import string
1112
import sys
@@ -32,6 +33,10 @@ def replace_dependent_response(log, response_dependent):
3233

3334
def merge_logs_to_list(result, log_list=[]):
3435
if isinstance(result, dict):
36+
# Doesn't hurt normal operations
37+
if "json_event" in list(result.keys()):
38+
if not isinstance(result["json_event"], dict):
39+
result["json_event"] = json.loads(result["json_event"])
3540
for i in result:
3641
if "log" == i:
3742
log_list.append(result["log"])

0 commit comments

Comments
 (0)