Skip to content

Commit 31f8f3c

Browse files
committed
porting sqlite operations to APSW and making necessary changes with unittests for db.py
1 parent 4fd743a commit 31f8f3c

File tree

9 files changed

+2074
-297
lines changed

9 files changed

+2074
-297
lines changed

nettacker/config.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,11 @@ class DbConfig(ConfigBase):
6363
For sqlite database:
6464
fill the name of the DB as sqlite,
6565
DATABASE as the name of the db user wants
66-
other details can be left empty
66+
Set the journal_mode (default="WAL") and
67+
synchronous_mode (deafault="NORMAL"). Rest
68+
of the fields can be left emptyAdd commentMore actions
69+
This is the default database:
70+
str(CWD / ".data/nettacker.db")
6771
For mysql users:
6872
fill the ENGINE name of the DB as mysql
6973
NAME as the name of the database you want to create
@@ -85,6 +89,8 @@ class DbConfig(ConfigBase):
8589
username = ""
8690
password = ""
8791
ssl_mode = "disable"
92+
journal_mode = "WAL"
93+
synchronous_mode = "NORMAL"
8894

8995

9096
class PathConfig:
@@ -130,6 +136,8 @@ class DefaultSettings(ConfigBase):
130136
random_chars=generate_random_token(10),
131137
)
132138
retries = 1
139+
max_retries = 3
140+
retry_delay = 0.1
133141
scan_ip_range = False
134142
scan_subdomains = False
135143
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)