1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
--- RNS/Reticulum.py.orig 2025-05-15 20:24:33 UTC
+++ RNS/Reticulum.py
@@ -165,6 +165,7 @@ class Reticulum:
# named ".reticulum" inside the current users home directory
userdir = os.path.expanduser("~")
configdir = None
+ dbdir = ""
configpath = ""
storagepath = ""
cachepath = ""
@@ -231,8 +232,11 @@ class Reticulum:
if configdir != None:
Reticulum.configdir = configdir
else:
- if os.path.isdir("/etc/reticulum") and os.path.isfile("/etc/reticulum/config"):
+ if os.path.isdir("/usr/local/etc/reticulum") and os.path.isfile("/usr/local/etc/reticulum/config"):
Reticulum.configdir = "/etc/reticulum"
+ Reticulum.interfacepath = Reticulum.configdir+"interfaces"
+ elif os.path.isdir("/etc/reticulum") and os.path.isfile("/etc/reticulum/config"):
+ Reticulum.configdir = "/etc/reticulum"
elif os.path.isdir(Reticulum.userdir+"/.config/reticulum") and os.path.isfile(Reticulum.userdir+"/.config/reticulum/config"):
Reticulum.configdir = Reticulum.userdir+"/.config/reticulum"
else:
@@ -246,11 +250,8 @@ class Reticulum:
RNS.logcall = logdest
Reticulum.configpath = Reticulum.configdir+"/config"
- Reticulum.storagepath = Reticulum.configdir+"/storage"
- Reticulum.cachepath = Reticulum.configdir+"/storage/cache"
- Reticulum.resourcepath = Reticulum.configdir+"/storage/resources"
- Reticulum.identitypath = Reticulum.configdir+"/storage/identities"
Reticulum.interfacepath = Reticulum.configdir+"/interfaces"
+ Reticulum.dbdir = Reticulum.configdir
Reticulum.__transport_enabled = False
Reticulum.__link_mtu_discovery = Reticulum.LINK_MTU_DISCOVERY
@@ -291,21 +292,6 @@ class Reticulum:
self.last_data_persist = time.time()
self.last_cache_clean = 0
- if not os.path.isdir(Reticulum.storagepath):
- os.makedirs(Reticulum.storagepath)
-
- if not os.path.isdir(Reticulum.cachepath):
- os.makedirs(Reticulum.cachepath)
-
- if not os.path.isdir(os.path.join(Reticulum.cachepath, "announces")):
- os.makedirs(os.path.join(Reticulum.cachepath, "announces"))
-
- if not os.path.isdir(Reticulum.resourcepath):
- os.makedirs(Reticulum.resourcepath)
-
- if not os.path.isdir(Reticulum.identitypath):
- os.makedirs(Reticulum.identitypath)
-
if not os.path.isdir(Reticulum.interfacepath):
os.makedirs(Reticulum.interfacepath)
@@ -450,6 +436,9 @@ class Reticulum:
if "reticulum" in self.config:
for option in self.config["reticulum"]:
value = self.config["reticulum"][option]
+ if option == "dbdir":
+ value = self.config["reticulum"][option]
+ Reticulum.dbdir = value
if option == "share_instance":
value = self.config["reticulum"].as_bool(option)
self.share_instance = value
@@ -531,6 +520,27 @@ class Reticulum:
if self.local_socket_path == None and self.use_af_unix:
self.local_socket_path = "default"
+
+ Reticulum.storagepath = Reticulum.dbdir+"/storage"
+ Reticulum.cachepath = Reticulum.dbdir+"/storage/cache"
+ Reticulum.resourcepath = Reticulum.dbdir+"/storage/resources"
+ Reticulum.identitypath = Reticulum.dbdir+"/storage/identities"
+
+ if not os.path.isdir(Reticulum.storagepath):
+ os.makedirs(Reticulum.storagepath)
+
+ if not os.path.isdir(Reticulum.cachepath):
+ os.makedirs(Reticulum.cachepath)
+
+ if not os.path.isdir(os.path.join(Reticulum.cachepath, "announces")):
+ os.makedirs(os.path.join(Reticulum.cachepath, "announces"))
+
+ if not os.path.isdir(Reticulum.resourcepath):
+ os.makedirs(Reticulum.resourcepath)
+
+ if not os.path.isdir(Reticulum.identitypath):
+ os.makedirs(Reticulum.identitypath)
+
self.__start_local_interface()
if self.is_shared_instance or self.is_standalone_instance:
@@ -1360,6 +1370,9 @@ __default_rns_config__ = '''# This is the default Reti
[reticulum]
+
+# Define database directory
+dbdir = "/var/db/reticulum"
# If you enable Transport, your system will route traffic
# for other peers, pass announces and serve path requests.
|