diff --git a/qt/i2pd_qt/TunnelPane.cpp b/qt/i2pd_qt/TunnelPane.cpp
index c64b37ab..60b0b6d5 100644
--- a/qt/i2pd_qt/TunnelPane.cpp
+++ b/qt/i2pd_qt/TunnelPane.cpp
@@ -185,6 +185,34 @@ void TunnelPane::appendControlsForI2CPParameters(I2CPParameters& i2cpParameters,
tunnelGridLayout->addLayout(horizontalLayout_2);
}
+ {
+ //explicitPeers -- list of comma-separated b64 addresses of peers to use, default: unset
+ }
+
+ {
+ //i2p.streaming.initialAckDelay -- milliseconds to wait before sending Ack. 200 by default
+ }
+
+ {
+ //i2p.streaming.answerPings -- enable sending pongs. true by default
+ }
+
+ {
+ //i2cp.leaseSetType -- type of LeaseSet to be sent. 1, 3 or 5. 1 by default
+ }
+
+ {
+ //i2cp.leaseSetEncType -- comma separated encryption types to be used in LeaseSet type 3 or 5. Identity's type by default
+ }
+
+ {
+ //i2cp.leaseSetPrivKey -- decryption key for encrypted LeaseSet in base64. PSK or private DH
+ }
+
+ {
+ //i2cp.leaseSetAuthType -- authentication type for encrypted LeaseSet. 0 - no authentication(default), 1 - DH, 2 - PSK
+ }
+
retranslateI2CPParameters();
}
diff --git a/qt/i2pd_qt/TunnelPane.h b/qt/i2pd_qt/TunnelPane.h
index 71331b4e..6a13b7a0 100644
--- a/qt/i2pd_qt/TunnelPane.h
+++ b/qt/i2pd_qt/TunnelPane.h
@@ -133,6 +133,34 @@ private:
inbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of inbound tunnels:", 0));;
outbound_quantityLabel->setText(QApplication::translate("tunForm", "Number of outbound tunnels:", 0));;
crypto_tagsToSendLabel->setText(QApplication::translate("tunForm", "Number of ElGamal/AES tags to send:", 0));;
+
+ {
+ //explicitPeers -- list of comma-separated b64 addresses of peers to use, default: unset
+ }
+
+ {
+ //i2p.streaming.initialAckDelay -- milliseconds to wait before sending Ack. 200 by default
+ }
+
+ {
+ //i2p.streaming.answerPings -- enable sending pongs. true by default
+ }
+
+ {
+ //i2cp.leaseSetType -- type of LeaseSet to be sent. 1, 3 or 5. 1 by default
+ }
+
+ {
+ //i2cp.leaseSetEncType -- comma separated encryption types to be used in LeaseSet type 3 or 5. Identity's type by default
+ }
+
+ {
+ //i2cp.leaseSetPrivKey -- decryption key for encrypted LeaseSet in base64. PSK or private DH
+ }
+
+ {
+ //i2cp.leaseSetAuthType -- authentication type for encrypted LeaseSet. 0 - no authentication(default), 1 - DH, 2 - PSK
+ }
}
};
diff --git a/qt/i2pd_qt/generalsettingswidget.ui b/qt/i2pd_qt/generalsettingswidget.ui
index 9e59132f..e64f9e35 100644
--- a/qt/i2pd_qt/generalsettingswidget.ui
+++ b/qt/i2pd_qt/generalsettingswidget.ui
@@ -7,7 +7,7 @@
0
0
679
- 3033
+ 4152
@@ -25,14 +25,38 @@
0
0
679
- 3052
+ 4151
-
+
- QLayout::SetMinAndMaxSize
+ QLayout::SetDefaultConstraint
- -
+
-
+
+
+
+ 0
+ 60
+
+
+
+
+ 16777215
+ 60
+
+
+
+
+ 13
+
+
+
+ General options
+
+
+
+ -
@@ -100,14 +124,8 @@
- -
-
-
-
- 0
- 0
-
-
+
-
+
0
@@ -121,44 +139,26 @@
- Tunnels configuration file:
+ Data folder (for storage of i2pd data — RI, keys, peer profiles, …):
-
+
0
- 18
+ 20
661
31
-
+
QLayout::SetMaximumSize
-
-
+
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 27
-
-
-
-
- 16777215
- 27
-
-
+
Browse…
@@ -168,7 +168,7 @@
- -
+
-
@@ -236,183 +236,86 @@
- -
-
+
-
+
+
+
+ 0
+ 0
+
+
0
- 98
+ 51
16777215
- 98
+ 51
- SAM interface
+ Tunnels configuration file:
-
-
-
- 0
- 20
- 97
- 22
-
-
-
- Enabled
-
-
-
+
0
- 40
+ 18
661
31
-
-
-
-
-
- IP address to listen on:
-
-
-
+
+
+ QLayout::SetMaximumSize
+
-
-
+
-
-
-
- Qt::Horizontal
+
+
+
+ 0
+ 0
+
-
+
- 40
- 20
+ 0
+ 27
-
-
-
-
-
-
-
- 0
- 70
- 661
- 31
-
-
-
- -
-
-
- Port to listen on:
-
-
-
- -
-
- 80
- 16777215
+ 16777215
+ 27
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
+
+ Browse…
-
+
- -
-
-
-
- 0
- 60
-
-
-
-
- 16777215
- 60
-
-
-
-
- 13
-
-
-
- Windows-specific options
-
-
-
- -
-
-
-
- 0
- 44
-
-
-
-
- 16777215
- 44
-
-
-
- Cryptography
-
-
-
-
- 0
- 20
- 661
- 22
-
-
-
- Use ElGamal precomputed tables
-
-
-
-
- -
+
-
0
- 107
+ 112
16777215
- 107
+ 112
@@ -432,7 +335,7 @@
- QLayout::SetMinimumSize
+ QLayout::SetMinAndMaxSize
-
@@ -539,95 +442,260 @@
+ -
+
+
+ Write full CLF-formatted date and time to log
+
+
+
- -
-
+
-
+
+
+
+ 0
+ 0
+
+
0
- 68
+ 390
16777215
- 68
+ 390
- UPnP
+ Router options
-
+
0
20
- 97
- 22
-
-
-
- Enable
-
-
-
-
-
- 0
- 40
661
- 31
+ 368
-
+
-
-
+
- Name i2pd appears in UPnP forwardings list:
+ Enable communication through ipv4
-
-
+
+
+ Enable communication through ipv6
+
+
-
-
-
- Qt::Horizontal
+
+
+ Router will not accept transit tunnels at startup
-
-
- 40
- 20
-
+
+
+ -
+
+
+ Router will be floodfill
-
+
+
+ -
+
+
+ Enable SSU transport protocol (use UDP)
+
+
+
+ -
+
+
+ Assume we are behind NAT
+
+
+
+ -
+
+
-
+
+
+ Bandwidth limit (integer or a letter):
+
+
+
+ -
+
+
+ -
+
+
+ KBps
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Family (name of a family router belongs to):
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ QLayout::SetMaximumSize
+
+
-
+
+
+ NetID (network ID router belongs to. The main I2P ID is 2):
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Network interface to bind to for IPv4:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Network interface to bind to for IPv6:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Max % of bandwidth limit for transit. 0-100:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
- -
-
+
-
+
0
- 98
+ 230
16777215
- 98
+ 230
- I2CP interface
+ HTTP webconsole
-
+
0
@@ -640,7 +708,7 @@
Enabled
-
+
0
@@ -649,19 +717,19 @@
31
-
+
-
-
+
IP address to listen on:
-
-
+
-
-
+
Qt::Horizontal
@@ -675,7 +743,7 @@
-
+
0
@@ -684,16 +752,16 @@
31
-
+
-
-
+
Port to listen on:
-
-
+
80
@@ -703,7 +771,7 @@
-
-
+
Qt::Horizontal
@@ -717,60 +785,41 @@
-
-
- -
-
-
-
- 0
- 98
-
-
-
-
- 16777215
- 98
-
-
-
- BOB interface
-
-
+
0
- 20
- 97
+ 100
+ 321
22
- Enabled
+ Enable basic HTTP auth
-
+
- 0
- 40
- 661
+ 60
+ 120
+ 601
31
-
+
-
-
+
- IP address to listen on:
+ Username:
-
-
+
-
-
+
Qt::Horizontal
@@ -784,35 +833,28 @@
-
+
- 0
- 70
- 661
+ 60
+ 150
+ 601
31
-
+
-
-
+
- Port to listen on:
+ Password:
-
-
-
-
- 80
- 16777215
-
-
-
+
-
-
+
Qt::Horizontal
@@ -826,143 +868,57 @@
-
-
- -
-
-
-
- 0
- 60
-
-
-
-
- 16777215
- 60
-
-
-
-
- 13
-
-
-
- General options
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 98
-
-
-
-
- 16777215
- 98
-
-
-
- Router external address (for incoming connections)
-
-
- Qt::AlignJustify|Qt::AlignTop
-
-
+
- 0
- 20
+ 1
+ 182
661
- 81
+ 21
-
-
- QLayout::SetMinAndMaxSize
-
+
+ Enable strict host checking on web UI
+
+
+
+
+
+ -1
+ 200
+ 661
+ 27
+
+
+
-
-
-
- QLayout::SetMinAndMaxSize
+
+
+ Expected hostname for web UI:
-
-
-
-
- Host:
-
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
+
-
-
-
- QLayout::SetMinAndMaxSize
+
+
+ -
+
+
+ Qt::Horizontal
-
-
-
-
- Port (leave 0 to auto-assign):
-
-
-
- -
-
-
-
- 80
- 16777215
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
+
+
+ 40
+ 20
+
+
+
- -
+
-
@@ -1025,37 +981,37 @@
- -
-
+
-
+
0
- 280
+ 190
16777215
- 280
+ 190
- HTTP proxy
+ Reseeding
-
+
0
20
- 97
+ 661
22
- Enabled
+ Request SU3 signature verification
-
+
0
@@ -1064,138 +1020,105 @@
31
-
+
-
-
+
- IP address to listen on:
+ SU3 file to reseed from:
-
-
+
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
+
+
+ Browse…
-
+
-
+
0
- 70
+ 100
661
31
-
+
-
-
+
- Port to listen on:
-
-
-
- -
-
-
-
- 80
- 16777215
-
+ Reseed URLs, separated by comma:
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
+
-
+
0
- 100
+ 70
661
31
-
+
-
-
+
- Keys file:
+ Path to local .zip file to reseed from:
-
-
+
-
-
+
- Browse…
+ Browse...
-
+
0
- 160
+ 130
661
31
-
+
-
-
+
- Inbound tunnels length:
+ Minimum number of known routers before requesting reseed:
-
-
-
-
- 80
- 16777215
-
-
-
+
-
-
+
Qt::Horizontal
- 40
+ 50
20
@@ -1203,77 +1126,82 @@
-
+
0
- 190
+ 160
661
31
-
+
-
-
+
- Inbound tunnels quantity:
+ URL for https/socks reseed proxy:
-
-
-
-
- 80
- 16777215
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
+
-
+
+
+ -
+
+
+
+ 0
+ 68
+
+
+
+
+ 16777215
+ 68
+
+
+
+ UPnP
+
+
0
- 220
+ 20
+ 97
+ 22
+
+
+
+ Enable
+
+
+
+
+
+ 0
+ 40
661
31
-
+
-
-
+
- Outbound tunnels length:
+ Name i2pd appears in UPnP forwardings list:
-
-
-
-
- 80
- 16777215
-
-
-
+
-
-
+
Qt::Horizontal
@@ -1287,35 +1215,60 @@
-
+
+
+ -
+
+
+
+ 0
+ 98
+
+
+
+
+ 16777215
+ 98
+
+
+
+ BOB interface
+
+
0
- 250
+ 20
+ 97
+ 22
+
+
+
+ Enabled
+
+
+
+
+
+ 0
+ 40
661
31
-
+
-
-
+
- Outbound tunnels quantity:
+ IP address to listen on:
-
-
-
-
- 80
- 16777215
-
-
-
+
-
-
+
Qt::Horizontal
@@ -1329,35 +1282,35 @@
-
+
0
- 130
+ 70
661
31
-
+
-
-
+
- Signature type:
+ Port to listen on:
-
-
-
- -
-
-
- Edit
+
+
+
+ 80
+ 16777215
+
-
-
+
Qt::Horizontal
@@ -1373,297 +1326,264 @@
- -
-
+
-
+
0
- 60
+ 170
16777215
- 60
+ 170
-
-
- 13
-
-
-
- Various options
+
+ Trust options
+
+
+
+ 0
+ 20
+ 661
+ 21
+
+
+
+ Enable explicit trust options
+
+
+
+
+
+ 390
+ 40
+ 271
+ 23
+
+
+
+
+
+
+ 0
+ 40
+ 391
+ 42
+
+
+
+ Make direct I2P connections only to
+routers in specified Family:
+
+
+
+
+
+ 0
+ 82
+ 661
+ 42
+
+
+
+ Make direct I2P connections only to routers specified here.
+Comma separated list of base64 identities:
+
+
+
+
+
+ 0
+ 124
+ 661
+ 23
+
+
+
+
+
+
+ 0
+ 147
+ 661
+ 21
+
+
+
+ Should we hide our router from other routers?
+
+
- -
-
+
-
+
0
- 51
+ 400
16777215
- 51
+ 400
- Data folder (for storage of i2pd data — RI, keys, peer profiles, …):
+ HTTP proxy
-
+
0
20
+ 97
+ 22
+
+
+
+ Enabled
+
+
+
+
+
+ 0
+ 40
661
31
-
-
- QLayout::SetMaximumSize
-
+
-
-
-
- -
-
+
- Browse…
+ IP address to listen on:
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 215
-
-
-
-
- 16777215
- 215
-
-
-
- Router options
-
-
+
0
- 20
+ 70
661
- 188
+ 31
-
+
-
-
+
- Enable communication through ipv6
+ Port to listen on:
-
-
-
- Router will not accept transit tunnels at startup
+
+
+
+ 80
+ 16777215
+
-
-
-
- Router will be floodfill
+
+
+ Qt::Horizontal
-
-
- -
-
-
-
-
-
- Bandwidth limit (integer or a letter):
-
-
-
- -
-
-
- -
-
-
- KBps
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
-
-
-
- Family (name of a family router belongs to):
-
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
- QLayout::SetMaximumSize
+
+
+ 40
+ 20
+
-
-
-
-
- NetID (network ID router belongs to. The main I2P ID is 2):
-
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
+
-
-
- -
-
-
-
- 0
- 108
-
-
-
-
- 16777215
- 108
-
-
-
- Limits
-
-
+
0
- 20
+ 100
661
31
-
+
-
-
+
- Maximum number of transit tunnels:
+ Keys file:
-
-
+
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
+
+
+ Browse…
-
+
-
+
0
- 50
+ 160
661
31
-
+
-
-
+
- Maximum number of open files (0 — use system limit):
+ Inbound tunnels length:
-
-
+
+
+
+ 80
+ 16777215
+
+
+
-
-
+
Qt::Horizontal
@@ -1677,28 +1597,35 @@
-
+
0
- 80
+ 190
661
31
-
+
-
-
+
- Maximum size of core file in Kb (0 — use system limit):
+ Inbound tunnels quantity:
-
-
+
+
+
+ 80
+ 16777215
+
+
+
-
-
+
Qt::Horizontal
@@ -1712,279 +1639,498 @@
-
-
- -
-
-
-
- 0
- 98
-
-
-
-
- 16777215
- 98
-
-
-
- Reseeding
-
-
+
0
- 20
+ 220
661
- 22
+ 31
-
- Request SU3 signature verification
-
+
+
-
+
+
+ Outbound tunnels length:
+
+
+
+ -
+
+
+
+ 80
+ 16777215
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
-
+
0
- 40
+ 250
661
31
-
+
-
-
+
- SU3 file to reseed from:
+ Outbound tunnels quantity:
-
-
+
+
+
+ 80
+ 16777215
+
+
+
-
-
-
- Browse…
+
+
+ Qt::Horizontal
-
+
+
+ 40
+ 20
+
+
+
-
+
0
- 70
+ 130
661
31
-
+
-
-
+
- Reseed URLs, separated by comma:
+ Signature type:
-
-
+
+
+ -
+
+
+ Edit
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+ 0
+ 280
+ 661
+ 23
+
+
+
+ Enable address helper (jump)
+
+
+
+
+
+ 0
+ 300
+ 661
+ 95
+
+
+
+ -
+
+
-
+
+
+ HTTP proxy upstream out proxy URL (like http://false.i2p):
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Type of LeaseSet to be sent. 1, 3 or 5:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Comma-separated encryption types to be used in LeaseSet type 3 or 5:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
- -
-
+
-
+
0
- 170
+ 121
16777215
- 170
+ 121
- Trust options
+ SAM interface
-
+
0
20
- 661
- 21
+ 97
+ 22
- Enable explicit trust options
+ Enabled
-
+
- 390
+ 0
40
- 271
- 23
+ 661
+ 31
+
+
-
+
+
+ IP address to listen on:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
-
+
0
- 40
- 391
- 42
+ 70
+ 661
+ 31
-
- Make direct I2P connections only to
-routers in specified Family:
-
-
-
-
-
- 0
- 82
- 661
- 42
-
-
-
- Make direct I2P connections only to routers specified here.
-Comma separated list of base64 identities:
-
+
+ -
+
+
+ Port to listen on:
+
+
+
+ -
+
+
+
+ 80
+ 16777215
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
-
+
0
- 124
- 661
+ 100
+ 621
23
-
-
-
-
- 0
- 147
- 661
- 21
-
-
- Should we hide our router from other routers?
+ Single thread for all SAM sessions
- -
-
-
-
- 0
- 60
-
-
-
-
- 16777215
- 60
-
-
-
-
- 13
-
-
-
- Ports
+
-
+
+
+
+ 0
+ 0
+
-
-
- -
-
0
- 22
+ 98
16777215
- 22
+ 98
-
- Insomnia (prevent system from sleeping)
+
+ Router external address (for incoming connections)
+
+
+ Qt::AlignJustify|Qt::AlignTop
+
+
+
+ 0
+ 20
+ 661
+ 81
+
+
+
+
+ QLayout::SetMinAndMaxSize
+
+
-
+
+
+ QLayout::SetMinAndMaxSize
+
+
-
+
+
+ Host:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ QLayout::SetMinAndMaxSize
+
+
-
+
+
+ Port (leave 0 to auto-assign):
+
+
+
+ -
+
+
+
+ 80
+ 16777215
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
- -
-
+
-
+
0
- 189
+ 108
16777215
- 189
+ 108
- I2PControl interface
+ Limits
-
+
0
20
- 97
- 22
-
-
-
- Enabled
-
-
-
-
-
- 0
- 40
661
31
-
+
-
-
+
- IP address to listen on:
+ Maximum number of transit tunnels:
-
-
+
-
-
+
Qt::Horizontal
@@ -1998,35 +2144,28 @@ Comma separated list of base64 identities:
-
+
0
- 70
+ 50
661
31
-
+
-
-
+
- Port to listen on:
+ Maximum number of open files (0 — use system limit):
-
-
-
-
- 80
- 16777215
-
-
-
+
-
-
+
Qt::Horizontal
@@ -2040,28 +2179,28 @@ Comma separated list of base64 identities:
-
+
0
- 100
+ 80
661
31
-
+
-
-
+
- Password:
+ Maximum size of core file in Kb (0 — use system limit):
-
-
+
-
-
+
Qt::Horizontal
@@ -2075,59 +2214,245 @@ Comma separated list of base64 identities:
-
-
-
- 0
- 130
- 661
- 31
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 128
+
+
+
+
+ 16777215
+ 128
+
+
+
+ Nettime options
+
+
+
+
+ 0
+ 20
+ 671
+ 101
-
+
+
+ QLayout::SetMinAndMaxSize
+
-
-
+
- Certificate file:
+ Enable NTP sync
-
-
+
+
-
+
+
+ Comma-separated list of NTP servers:
+
+
+
+ -
+
+
+
-
-
-
- Browse…
-
-
+
+
-
+
+
+ NTP time sync interval in hours:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
-
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 215
+
+
+
+
+ 16777215
+ 215
+
+
+
+ NTCP2 options
+
+
- 0
- 160
- 661
- 31
+ -1
+ 19
+ 671
+ 191
-
+
+
+ QLayout::SetMinAndMaxSize
+
-
-
+
- Key file:
+ Enable NTCP2
-
-
+
+
+ Enable incoming NTCP2 connections
+
+
-
-
+
+
-
+
+
+ Port to listen for incoming NTCP2 connections:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ External IPv6 address for incoming connections:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Specify proxy server for NTCP2:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
- Browse…
+ Proxy server should be http://address:port or socks://address:port
@@ -2135,24 +2460,24 @@ Comma separated list of base64 identities:
- -
-
+
-
+
0
- 179
+ 189
16777215
- 179
+ 189
- HTTP webconsole
+ I2PControl interface
-
+
0
@@ -2165,7 +2490,7 @@ Comma separated list of base64 identities:
Enabled
-
+
0
@@ -2174,19 +2499,19 @@ Comma separated list of base64 identities:
31
-
+
-
-
+
IP address to listen on:
-
-
+
-
-
+
Qt::Horizontal
@@ -2200,7 +2525,7 @@ Comma separated list of base64 identities:
-
+
0
@@ -2209,16 +2534,16 @@ Comma separated list of base64 identities:
31
-
+
-
-
+
Port to listen on:
-
-
+
80
@@ -2228,7 +2553,7 @@ Comma separated list of base64 identities:
-
-
+
Qt::Horizontal
@@ -2242,41 +2567,28 @@ Comma separated list of base64 identities:
-
+
0
100
- 321
- 22
-
-
-
- Enable basic HTTP auth
-
-
-
-
-
- 60
- 120
- 601
+ 661
31
-
+
-
-
+
- Username:
+ Password:
-
-
+
-
-
+
Qt::Horizontal
@@ -2290,31 +2602,195 @@ Comma separated list of base64 identities:
-
+
- 60
- 150
- 601
+ 0
+ 130
+ 661
31
-
+
-
-
+
- Password:
+ Certificate file:
-
-
+
-
-
-
- Qt::Horizontal
-
+
+
+ Browse…
+
+
+
+
+
+
+
+
+ 0
+ 160
+ 661
+ 31
+
+
+
+ -
+
+
+ Key file:
+
+
+
+ -
+
+
+ -
+
+
+ Browse…
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 44
+
+
+
+
+ 16777215
+ 44
+
+
+
+ Cryptography
+
+
+
+
+ 0
+ 20
+ 661
+ 22
+
+
+
+ Use ElGamal precomputed tables
+
+
+
+
+ -
+
+
+
+ 0
+ 121
+
+
+
+
+ 16777215
+ 121
+
+
+
+ I2CP interface
+
+
+
+
+ 0
+ 20
+ 97
+ 22
+
+
+
+ Enabled
+
+
+
+
+
+ 0
+ 40
+ 661
+ 31
+
+
+
+
-
+
+
+ IP address to listen on:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+ 0
+ 70
+ 661
+ 31
+
+
+
+ -
+
+
+ Port to listen on:
+
+
+
+ -
+
+
+
+ 80
+ 16777215
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
40
@@ -2325,20 +2801,57 @@ Comma separated list of base64 identities:
+
+
+
+ 0
+ 100
+ 651
+ 23
+
+
+
+ Single thread for all I2CP sessions
+
+
+
+
+ -
+
+
+
+ 0
+ 60
+
+
+
+
+ 16777215
+ 60
+
+
+
+
+ 13
+
+
+
+ Ports
+
- -
+
-
0
- 335
+ 405
16777215
- 335
+ 405
@@ -2750,6 +3263,479 @@ Comma separated list of base64 identities:
+
+
+
+ -1
+ 340
+ 661
+ 62
+
+
+
+ -
+
+
-
+
+
+ Type of LeaseSet to be sent. 1, 3 or 5:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Comma-separated encryption types to be used in LeaseSet type 3 or 5:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 128
+
+
+
+
+ 16777215
+ 128
+
+
+
+ Websocket Server
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+
+
+ -1
+ 19
+ 681
+ 101
+
+
+
+
+ QLayout::SetMinAndMaxSize
+
+
-
+
+
+ Enable websocket server
+
+
+
+ -
+
+
-
+
+
+ Address to bind websocket server on:
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Port to bind websocket server on:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 60
+
+
+
+
+ 16777215
+ 60
+
+
+
+
+ 13
+
+
+
+ Various options
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 160
+
+
+
+
+ 16777215
+ 160
+
+
+
+ Exploratory Tunnels
+
+
+
+
+ -1
+ 19
+ 671
+ 131
+
+
+
+
+ QLayout::SetMinAndMaxSize
+
+
-
+
+
-
+
+
+ Exploratory inbound tunnels length:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Exploratory inbound tunnels quantity:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Exploratory outbound tunnels length:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Exploratory outbound tunnels quantity:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 56
+
+
+
+
+ 16777215
+ 56
+
+
+
+ Persist profiles
+
+
+
+
+ 0
+ 20
+ 681
+ 31
+
+
+
+
+ QLayout::SetMinAndMaxSize
+
+
-
+
+
+ Enable peer profile persisting to disk
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 60
+
+
+
+
+ 16777215
+ 60
+
+
+
+
+ 13
+
+
+
+ Windows-specific options
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 22
+
+
+
+
+ 16777215
+ 22
+
+
+
+ Insomnia (prevent system from sleeping)
+
diff --git a/qt/i2pd_qt/mainwindow.cpp b/qt/i2pd_qt/mainwindow.cpp
index 14a57f8a..d4d34109 100644
--- a/qt/i2pd_qt/mainwindow.cpp
+++ b/qt/i2pd_qt/mainwindow.cpp
@@ -81,10 +81,10 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
onResize();
ui->stackedWidget->setCurrentIndex(0);
- ui->settingsScrollArea->resize(uiSettings->settingsContentsGridLayout->sizeHint().width()+10,380);
+ ui->settingsScrollArea->resize(uiSettings->settingsContentsQVBoxLayout->sizeHint().width()+10,380);
//QScrollBar* const barSett = ui->settingsScrollArea->verticalScrollBar();
int w = 683;
- int h = 3060;
+ int h = 4000;
ui->settingsContents->setFixedSize(w, h);
ui->settingsContents->setGeometry(QRect(0,0,w,h));
@@ -172,24 +172,24 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
logFileNameOption=initFileChooser( OPTION("","logfile",[]{return "";}), uiSettings->logFileLineEdit, uiSettings->logFileBrowsePushButton);
initLogLevelCombobox(OPTION("","loglevel",[]{return "";}), uiSettings->logLevelComboBox);
- //TODO add option "logclftime" "Write full CLF-formatted date and time to log (default: write only time)"
+ initCheckBox( OPTION("","logclftime",[]{return "false";}), uiSettings->logclftimeCheckBox);//"Write full CLF-formatted date and time to log (default: write only time)"
initFolderChooser( OPTION("","datadir",[]{return "";}), uiSettings->dataFolderLineEdit, uiSettings->dataFolderBrowsePushButton);
initIPAddressBox( OPTION("","host",[]{return "";}), uiSettings->routerExternalHostLineEdit, tr("Router external address -> Host"));
initTCPPortBox( OPTION("","port",[]{return "";}), uiSettings->routerExternalPortLineEdit, tr("Router external address -> Port"));
daemonOption=initNonGUIOption( OPTION("","daemon",[]{return "";}));
serviceOption=initNonGUIOption( OPTION("","service",[]{return "";}));
- //TODO add option "ifname4" Network interface to bind to for IPv4
- //TODO add option "ifname6" Network interface to bind to for IPv6
- //TODO add option "nat" If true, assume we are behind NAT. true by default
- //TODO add option "ipv4" Enable communication through IPv4. true by default
+ initStringBox( OPTION("","ifname4",[]{return "";}), uiSettings->ifname4LineEdit);//Network interface to bind to for IPv4
+ initStringBox( OPTION("","ifname6",[]{return "";}), uiSettings->ifname6LineEdit);//Network interface to bind to for IPv6
+ initCheckBox( OPTION("","nat",[]{return "true";}), uiSettings->natCheckBox);//If true, assume we are behind NAT. true by default
+ initCheckBox( OPTION("","ipv4",[]{return "true";}), uiSettings->ipv4CheckBox);//Enable communication through IPv4. true by default
initCheckBox( OPTION("","ipv6",[]{return "false";}), uiSettings->ipv6CheckBox);
initCheckBox( OPTION("","notransit",[]{return "false";}), uiSettings->notransitCheckBox);
initCheckBox( OPTION("","floodfill",[]{return "false";}), uiSettings->floodfillCheckBox);
initStringBox( OPTION("","bandwidth",[]{return "";}), uiSettings->bandwidthLineEdit);
- //TODO add option "share" Max % of bandwidth limit for transit. 0-100. 100 by default
+ initIntegerBox( OPTION("","share",[]{return "100";}), uiSettings->shareLineEdit, tr("Share"));//Max % of bandwidth limit for transit. 0-100. 100 by default
initStringBox( OPTION("","family",[]{return "";}), uiSettings->familyLineEdit);
initIntegerBox( OPTION("","netid",[]{return "2";}), uiSettings->netIdLineEdit, tr("NetID"));
- //TODO add option "ssu" Enable SSU transport protocol (use UDP). true by default
+ initCheckBox( OPTION("","ssu",[]{return "true";}), uiSettings->ssuCheckBox);//Enable SSU transport protocol (use UDP). true by default
#ifdef Q_OS_WIN
initNonGUIOption( OPTION("","svcctl",[]{return "";}));
@@ -205,22 +205,22 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
initCheckBox( OPTION("http","auth",[]{return "";}), uiSettings->webconsoleBasicAuthCheckBox);
initStringBox( OPTION("http","user",[]{return "i2pd";}), uiSettings->webconsoleUserNameLineEditBasicAuth);
initStringBox( OPTION("http","pass",[]{return "";}), uiSettings->webconsolePasswordLineEditBasicAuth);
- //TODO add option "http.strictheaders Enable strict host checking on WebUI. true by default
- //TODO add option "http.hostname Expected hostname for WebUI (default: localhost)
+ initCheckBox( OPTION("http","strictheaders",[]{return "true";}), uiSettings->httpStrictHeadersCheckBox);//TODO add option Enable strict host checking on WebUI. true by default
+ initStringBox( OPTION("http","hostname",[]{return "localhost";}), uiSettings->httpHostnameLineEdit);//TODO add option Expected hostname for WebUI (default: localhost)
initCheckBox( OPTION("httpproxy","enabled",[]{return "";}), uiSettings->httpProxyEnabledCheckBox);
initIPAddressBox( OPTION("httpproxy","address",[]{return "";}), uiSettings->httpProxyAddressLineEdit, tr("HTTP proxy -> IP address"));
initTCPPortBox( OPTION("httpproxy","port",[]{return "4444";}), uiSettings->httpProxyPortLineEdit, tr("HTTP proxy -> Port"));
- //TODO add option "httpproxy.addresshelper Enable address helper (jump). true by default
+ initCheckBox( OPTION("httpproxy","addresshelper",[]{return "true";}), uiSettings->httpProxyAddressHelperCheckBox);//TODO add option Enable address helper (jump). true by default
initFileChooser( OPTION("httpproxy","keys",[]{return "";}), uiSettings->httpProxyKeyFileLineEdit, uiSettings->httpProxyKeyFilePushButton);
initSignatureTypeCombobox(OPTION("httpproxy","signaturetype",[]{return "7";}), uiSettings->comboBox_httpPorxySignatureType);
initStringBox( OPTION("httpproxy","inbound.length",[]{return "3";}), uiSettings->httpProxyInboundTunnelsLenLineEdit);
initStringBox( OPTION("httpproxy","inbound.quantity",[]{return "5";}), uiSettings->httpProxyInboundTunnQuantityLineEdit);
initStringBox( OPTION("httpproxy","outbound.length",[]{return "3";}), uiSettings->httpProxyOutBoundTunnLenLineEdit);
initStringBox( OPTION("httpproxy","outbound.quantity",[]{return "5";}), uiSettings->httpProxyOutboundTunnQuantityLineEdit);
- //TODO add option "httpproxy.outproxy HTTP proxy upstream out proxy url (like http://false.i2p)
- //TODO add option "httpproxy.i2cp.leaseSetType Type of LeaseSet to be sent. 1, 3 or 5. 1 by default
- //TODO add option "httpproxy.i2cp.leaseSetEncType Comma separated encryption types to be used in LeaseSet type 3 or 5
+ initStringBox( OPTION("httpproxy","outproxy",[]{return "";}), uiSettings->httpProxyOutproxyLineEdit);//TODO add option HTTP proxy upstream out proxy url (like http://false.i2p)
+ initStringBox( OPTION("httpproxy","i2cp.leaseSetType",[]{return "1";}), uiSettings->httpProxyI2cpLeaseSetTypeLineEdit);//TODO add option Type of LeaseSet to be sent. 1, 3 or 5. 1 by default
+ initStringBox( OPTION("httpproxy","i2cp.leaseSetEncType",[]{return "";}), uiSettings->httpProxyI2cpLeaseSetEncTypeLineEdit);//TODO add option Comma separated encryption types to be used in LeaseSet type 3 or 5
initCheckBox( OPTION("socksproxy","enabled",[]{return "";}), uiSettings->socksProxyEnabledCheckBox);
initIPAddressBox( OPTION("socksproxy","address",[]{return "";}), uiSettings->socksProxyAddressLineEdit, tr("Socks proxy -> IP address"));
@@ -231,15 +231,15 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
initStringBox( OPTION("socksproxy","inbound.quantity",[]{return "";}), uiSettings->socksProxyInboundTunnQuantityLineEdit);
initStringBox( OPTION("socksproxy","outbound.length",[]{return "";}), uiSettings->socksProxyOutBoundTunnLenLineEdit);
initStringBox( OPTION("socksproxy","outbound.quantity",[]{return "";}), uiSettings->socksProxyOutboundTunnQuantityLineEdit);
- initIPAddressBox( OPTION("socksproxy","outproxy",[]{return "";}), uiSettings->outproxyAddressLineEdit, tr("Socks proxy -> Outproxy address"));
- initTCPPortBox( OPTION("socksproxy","outproxyport",[]{return "";}), uiSettings->outproxyPortLineEdit, tr("Socks proxy -> Outproxy port"));
- //TODO add option "socksproxy.i2cp.leaseSetType Type of LeaseSet to be sent. 1, 3 or 5. 1 by default
- //TODO add option "socksproxy.i2cp.leaseSetEncType Comma separated encryption types to be used in LeaseSet type 3 or 5
+ initIPAddressBox( OPTION("socksproxy","outproxy",[]{return "";}), uiSettings->outproxyAddressLineEdit, tr("Socks proxy -> Outproxy address"));
+ initTCPPortBox( OPTION("socksproxy","outproxyport",[]{return "";}), uiSettings->outproxyPortLineEdit, tr("Socks proxy -> Outproxy port"));
+ initStringBox( OPTION("socksproxy","i2cp.leaseSetType",[]{return "1";}), uiSettings->socksProxyI2cpLeaseSetTypeLineEdit);//TODO add option Type of LeaseSet to be sent. 1, 3 or 5. 1 by default
+ initStringBox( OPTION("socksproxy","i2cp.leaseSetEncType",[]{return "";}), uiSettings->socksProxyI2cpLeaseSetEncTypeLineEdit);//TODO add option Comma separated encryption types to be used in LeaseSet type 3 or 5
initCheckBox( OPTION("sam","enabled",[]{return "false";}), uiSettings->samEnabledCheckBox);
initIPAddressBox( OPTION("sam","address",[]{return "";}), uiSettings->samAddressLineEdit, tr("SAM -> IP address"));
initTCPPortBox( OPTION("sam","port",[]{return "7656";}), uiSettings->samPortLineEdit, tr("SAM -> Port"));
- //TODO add option "sam.singlethread If false every SAM session runs in own thread. true by default
+ initCheckBox( OPTION("sam","singlethread",[]{return "true";}), uiSettings->samSingleThreadCheckBox);//If false every SAM session runs in own thread. true by default
initCheckBox( OPTION("bob","enabled",[]{return "false";}), uiSettings->bobEnabledCheckBox);
initIPAddressBox( OPTION("bob","address",[]{return "";}), uiSettings->bobAddressLineEdit, tr("BOB -> IP address"));
@@ -248,7 +248,7 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
initCheckBox( OPTION("i2cp","enabled",[]{return "false";}), uiSettings->i2cpEnabledCheckBox);
initIPAddressBox( OPTION("i2cp","address",[]{return "";}), uiSettings->i2cpAddressLineEdit, tr("I2CP -> IP address"));
initTCPPortBox( OPTION("i2cp","port",[]{return "7654";}), uiSettings->i2cpPortLineEdit, tr("I2CP -> Port"));
- //TODO add option "i2cp.singlethread If false every I2CP session runs in own thread. true by default
+ //initCheckBox( OPTION("i2cp","singlethread",[]{return "true";}), uiSettings->i2cpSingleThreadCheckBox);//If false every I2CP session runs in own thread. true by default
initCheckBox( OPTION("i2pcontrol","enabled",[]{return "false";}), uiSettings->i2pControlEnabledCheckBox);
initIPAddressBox( OPTION("i2pcontrol","address",[]{return "";}), uiSettings->i2pControlAddressLineEdit, tr("I2PControl -> IP address"));
@@ -265,9 +265,9 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
initCheckBox( OPTION("reseed","verify",[]{return "";}), uiSettings->reseedVerifyCheckBox);
initFileChooser( OPTION("reseed","file",[]{return "";}), uiSettings->reseedFileLineEdit, uiSettings->reseedFileBrowsePushButton);
initStringBox( OPTION("reseed","urls",[]{return "";}), uiSettings->reseedURLsLineEdit);
- //TODO add option "reseed.zipfile Path to local .zip file to reseed from
- //TODO add option "reseed.threshold Minimum number of known routers before requesting reseed. 25 by default
- //TODO add option "reseed.proxy Url for https/socks reseed proxy
+ initFileChooser( OPTION("reseed","zipfile",[]{return "";}), uiSettings->reseedZipFileLineEdit, uiSettings->reseedZipFileBrowsePushButton); //Path to local .zip file to reseed from
+ initUInt16Box( OPTION("reseed","threshold",[]{return "25";}), uiSettings->reseedThresholdNumberLineEdit, tr("reseedThreshold")); //Minimum number of known routers before requesting reseed. 25 by default
+ initStringBox( OPTION("reseed","proxy",[]{return "";}), uiSettings->reseedProxyLineEdit);//URL for https/socks reseed proxy
initStringBox( OPTION("addressbook","defaulturl",[]{return "";}), uiSettings->addressbookDefaultURLLineEdit);
initStringBox( OPTION("addressbook","subscriptions",[]{return "";}), uiSettings->addressbookSubscriptionsURLslineEdit);
@@ -275,34 +275,32 @@ MainWindow::MainWindow(std::shared_ptr logStream_, QWidget *paren
initUInt16Box( OPTION("limits","transittunnels",[]{return "2500";}), uiSettings->maxNumOfTransitTunnelsLineEdit, tr("maxNumberOfTransitTunnels"));
initUInt16Box( OPTION("limits","openfiles",[]{return "0";}), uiSettings->maxNumOfOpenFilesLineEdit, tr("maxNumberOfOpenFiles"));
initUInt32Box( OPTION("limits","coresize",[]{return "0";}), uiSettings->coreFileMaxSizeNumberLineEdit, tr("coreFileMaxSize"));
- //TODO add option "limits.ntcpsoft Threshold to start probabalistic backoff with ntcp sessions (0 - use system limit)
- //TODO add option "limits.ntcphard Maximum number of ntcp sessions (0 - use system limit)
initCheckBox( OPTION("trust","enabled",[]{return "false";}), uiSettings->checkBoxTrustEnable);
initStringBox( OPTION("trust","family",[]{return "";}), uiSettings->lineEditTrustFamily);
initStringBox( OPTION("trust","routers",[]{return "";}), uiSettings->lineEditTrustRouters);
initCheckBox( OPTION("trust","hidden",[]{return "false";}), uiSettings->checkBoxTrustHidden);
- //TODO add option "websockets.enabled Enable websocket server. Disabled by default
- //TODO add option "websockets.address Address to bind websocket server on. 127.0.0.1 by default
- //TODO add option "websockets.port Port to bind websocket server on. 7666 by default
+ initCheckBox( OPTION("websockets","enabled",[]{return "false";}), uiSettings->checkBoxWebsocketsEnable); //Enable websocket server. Disabled by default
+ initIPAddressBox( OPTION("websockets","address",[]{return "127.0.0.1";}), uiSettings->websocketsAddressLineEdit, tr("Websockets -> IP address")); //Address to bind websocket server on. 127.0.0.1 by default
+ initTCPPortBox( OPTION("websockets","port",[]{return "7666";}), uiSettings->websocketsPortLineEdit, tr("Websockets -> Port")); //Port to bind websocket server on. 7666 by default
- //TODO add option "exploratory.inbound.length Exploratory inbound tunnels length. 2 by default
- //TODO add option "exploratory.inbound.quantity Exploratory inbound tunnels quantity. 3 by default
- //TODO add option "exploratory.outbound.length Exploratory outbound tunnels length. 2 by default
- //TODO add option "exploratory.outbound.quantity Exploratory outbound tunnels length. 3 by default
+ initIntegerBox( OPTION("exploratory","inbound.length",[]{return "2";}), uiSettings->exploratoryInboundTunnelsLengthNumberLineEdit, tr("exploratoryInboundTunnelsLength"));//Exploratory inbound tunnels length. 2 by default
+ initIntegerBox( OPTION("exploratory","inbound.quantity",[]{return "3";}), uiSettings->exploratoryInboundTunnelsQuantityNumberLineEdit, tr("exploratoryInboundTunnelsQuantity"));//Exploratory inbound tunnels quantity. 3 by default
+ initIntegerBox( OPTION("exploratory","outbound.length",[]{return "2";}), uiSettings->exploratoryOutboundTunnelsLengthNumberLineEdit, tr("exploratoryOutboundTunnelsLength"));//Exploratory outbound tunnels length. 2 by default
+ initIntegerBox( OPTION("exploratory","outbound.quantity",[]{return "3";}), uiSettings->exploratoryOutboundTunnelsQuantityNumberLineEdit, tr("exploratoryOutboundTunnelsQuantity"));//Exploratory outbound tunnels length. 3 by default
- //TODO add option "ntcp2.enabled Enable NTCP2. Enabled by default
- //TODO add option "ntcp2.published Enable incoming NTCP2 connections. Disabled by default
- //TODO add option "ntcp2.port Port to listen for incoming NTCP2 connections (default: auto)
- //TODO add option "ntcp2.addressv6 External IPv6 for incoming connections
- //TODO add option "ntcp2.proxy Specify proxy server for NTCP2. Should be http://address:port or socks://address:port
+ initCheckBox( OPTION("ntcp2","enabled",[]{return "true";}), uiSettings->checkBoxNtcp2Enable); //Enable NTCP2. Enabled by default
+ initCheckBox( OPTION("ntcp2","published",[]{return "false";}), uiSettings->checkBoxNtcp2Published); //Enable incoming NTCP2 connections. Disabled by default
+ initTCPPortBox( OPTION("ntcp2","port",[]{return "0";}), uiSettings->ntcp2PortLineEdit, tr("NTCP2 -> Port")); //Port to listen for incoming NTCP2 connections (default: auto)
+ initIPAddressBox( OPTION("ntcp2","addressv6",[]{return "::";}), uiSettings->ntcp2AddressV6LineEdit, tr("NTCP2 -> IPv6 address")); //External IPv6 for incoming connections
+ initStringBox( OPTION("ntcp2","proxy",[]{return "";}), uiSettings->lineEditNtcp2Proxy); //Specify proxy server for NTCP2. Should be http://address:port or socks://address:port
- //TODO add option "nettime.enabled Enable NTP sync. Disabled by default
- //TODO add option "nettime.ntpservers Comma-separated list of NTP server. pool.ntp.org by default
- //TODO add option "nettime.ntpsyncinterval NTP time sync interval in hours. 72 by default
+ initCheckBox( OPTION("nettime","enabled",[]{return "false";}), uiSettings->checkBoxNettimeEnable); //Enable NTP sync. Disabled by default
+ initStringBox( OPTION("nettime","ntpservers",[]{return "pool.ntp.org";}), uiSettings->lineEditNetTimeNtpServers); //Comma-separated list of NTP servers. pool.ntp.org by default
+ initIntegerBox( OPTION("nettime","ntpsyncinterval",[]{return "72";}), uiSettings->nettimeNtpSyncIntervalNumberLineEdit, tr("nettimeNtpSyncInterval")); //NTP time sync interval in hours. 72 by default
- //TODO add option "persist.profiles Enable peer profile persisting to disk. Enabled by default
+ initCheckBox( OPTION("persist","profiles",[]{return "true";}), uiSettings->checkBoxPersistProfiles);//Enable peer profile persisting to disk. Enabled by default
# undef OPTION
//widgetlocks.add(new widgetlock(widget,lockbtn));
diff --git a/qt/i2pd_qt/mainwindow.h b/qt/i2pd_qt/mainwindow.h
index 6e187b5b..b4f57f8f 100644
--- a/qt/i2pd_qt/mainwindow.h
+++ b/qt/i2pd_qt/mainwindow.h
@@ -116,7 +116,7 @@ public:
std::string optName="";
if(!option.section.isEmpty())optName=option.section.toStdString()+std::string(".");
optName+=option.option.toStdString();
- //qDebug() << "loadFromConfigOption[" << optName.c_str() << "]";
+ qDebug() << "loadFromConfigOption[" << optName.c_str() << "]";
boost::any programOption;
i2p::config::GetOptionAsAny(optName, programOption);
optionValue=programOption.empty()?boost::any(std::string(""))
@@ -281,6 +281,7 @@ public:
virtual void installListeners(MainWindow *mainWindow);
virtual void loadFromConfigOption(){
MainWindowItem::loadFromConfigOption();
+ qDebug() << "setting value for checkbox " << checkBox->text();
checkBox->setChecked(boost::any_cast(optionValue));
}
virtual void saveToStringStream(std::stringstream& out){