summaryrefslogtreecommitdiff
path: root/net-p2p/reticulum/files/patch-RNS_Reticulum.py
blob: 9b9049e157a7c34fdc765f21a31bfbe41b059136 (plain) (blame)
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.