mirror of https://github.com/dswd/vpncloud.git
Plan
This commit is contained in:
parent
89d058134e
commit
a9b960b04e
|
@ -24,9 +24,9 @@
|
|||
"serayuzgur.crates",
|
||||
"editorconfig.editorconfig",
|
||||
"swellaby.vscode-rust-test-adapter",
|
||||
"matklad.rust-analyzer",
|
||||
"asciidoctor.asciidoctor-vscode",
|
||||
"ms-vscode.test-adapter-converter"
|
||||
"ms-vscode.test-adapter-converter",
|
||||
"rust-lang.rust-analyzer"
|
||||
],
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
|
|
@ -1213,7 +1213,7 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
|||
|
||||
[[package]]
|
||||
name = "vpncloud"
|
||||
version = "2.3.0"
|
||||
version = "2.4.0"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"chrono",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "vpncloud"
|
||||
version = "2.3.0"
|
||||
version = "2.4.0"
|
||||
authors = ["Dennis Schwerdel <schwerdel@googlemail.com>"]
|
||||
build = "build.rs"
|
||||
license = "GPL-3.0"
|
||||
|
|
17
ROADMAP.md
17
ROADMAP.md
|
@ -11,4 +11,21 @@
|
|||
- [x] Fix Ctrl-C
|
||||
- [x] Fix auto-claim IP
|
||||
|
||||
## More threads
|
||||
|
||||
- [ ] abstract socket + peers + traffic + table into one class + shared part
|
||||
- [ ] management thread
|
||||
- [ ] Send peer list
|
||||
- [ ] Statsd
|
||||
- [ ] Write out stats
|
||||
- [ ] Port forwarding
|
||||
|
||||
## VIA Feature
|
||||
|
||||
- [ ] Implement message type VIA for relaying messages
|
||||
- [ ] Advertize VIA addresses (optional) as claims from own peers
|
||||
- [ ] Use VIA if no peer found
|
||||
- [ ] Make sure VIA does not recurse
|
||||
- [ ] Allow enabling VIA in config
|
||||
|
||||
## REST API
|
|
@ -109,6 +109,7 @@ impl<S: Socket, D: Device, P: Protocol, TS: TimeSource> DeviceThread<S, D, P, TS
|
|||
debug!("Found destination for {} => {}", dst, addr);
|
||||
self.send_msg(addr, MESSAGE_TYPE_DATA)?;
|
||||
}
|
||||
//TODO: VIA: find relay peer and relay message
|
||||
None => {
|
||||
if self.broadcast {
|
||||
debug!("No destination for {} found, broadcasting", dst);
|
||||
|
|
|
@ -349,6 +349,7 @@ impl<S: Socket, D: Device, P: Protocol, TS: TimeSource> SocketThread<S, D, P, TS
|
|||
match msg_result {
|
||||
MessageResult::Message(type_) => match type_ {
|
||||
MESSAGE_TYPE_DATA => self.handle_payload_from(src)?,
|
||||
//TODO: VIA: relay message
|
||||
MESSAGE_TYPE_NODE_INFO => {
|
||||
let info = match NodeInfo::decode(Cursor::new(self.buffer.message())) {
|
||||
Ok(val) => val,
|
||||
|
@ -445,6 +446,7 @@ impl<S: Socket, D: Device, P: Protocol, TS: TimeSource> SocketThread<S, D, P, TS
|
|||
self.table.housekeep();
|
||||
self.crypto_housekeep()?;
|
||||
// Periodically extend the port-forwarding
|
||||
//TODO: extra thread
|
||||
if let Some(ref mut pfw) = self.port_forwarding {
|
||||
pfw.check_extend();
|
||||
}
|
||||
|
@ -463,7 +465,9 @@ impl<S: Socket, D: Device, P: Protocol, TS: TimeSource> SocketThread<S, D, P, TS
|
|||
self.reconnect_to_peers()?;
|
||||
if self.next_stats_out < now {
|
||||
// Write out the statistics
|
||||
//TODO: extra thread
|
||||
self.write_out_stats().map_err(|err| Error::FileIo("Failed to write stats file", err))?;
|
||||
//TODO: extra thread
|
||||
self.send_stats_to_statsd()?;
|
||||
self.next_stats_out = now + STATS_INTERVAL;
|
||||
self.traffic.period(Some(5));
|
||||
|
|
|
@ -36,6 +36,7 @@ pub struct NodeInfo {
|
|||
pub claims: RangeList,
|
||||
pub peer_timeout: Option<u16>,
|
||||
pub addrs: AddrList,
|
||||
//TODO: VIA: Add via ranges
|
||||
}
|
||||
|
||||
impl NodeInfo {
|
||||
|
|
Loading…
Reference in New Issue