mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2024-12-03 15:05:25 +00:00
fix conflicts with memleak bugfix
This commit is contained in:
commit
cfd8641925
25
CHANGELOG.md
25
CHANGELOG.md
@ -25,6 +25,31 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||||||
- in case of vulnerabilities.
|
- in case of vulnerabilities.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
## [0.3.13] - 2020-02-21
|
||||||
|
### Added
|
||||||
|
- Support for the Wireguard TUN driver, which now replaces Water and provides far better support and performance on Windows
|
||||||
|
- Windows `.msi` installer files are now supported (bundling the Wireguard TUN driver)
|
||||||
|
- NodeInfo code is now actorised, should be more reliable
|
||||||
|
- The DHT now tries to store the two closest nodes in either direction instead of one, such that if a node goes offline, the replacement is already known
|
||||||
|
- The Yggdrasil API now supports dialing a remote node using the public key instead of the Node ID
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- The `-loglevel` command line parameter is now cumulative and automatically includes all levels below the one specified
|
||||||
|
- DHT search code has been significantly simplified and processes rumoured nodes in parallel, speeding up search time
|
||||||
|
- DHT search results are now sorted
|
||||||
|
- The systemd service now handles configuration generation in a different unit
|
||||||
|
- The Yggdrasil API now returns public keys instead of node IDs when querying for local and remote addresses
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- The multicast code no longer panics when shutting down the node
|
||||||
|
- A potential OOB error when calculating IPv4 flow labels (when tunnel routing is enabled) has been fixed
|
||||||
|
- A bug resulting in incorrect idle notifications in the switch should now be fixed
|
||||||
|
- MTUs are now using a common datatype throughout the codebase
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- TAP mode has been removed entirely, since it is no longer supported with the Wireguard TUN package. Please note that if you are using TAP mode, you may need to revise your config!
|
||||||
|
- NetBSD support has been removed until the Wireguard TUN package supports NetBSD
|
||||||
|
|
||||||
## [0.3.12] - 2019-11-24
|
## [0.3.12] - 2019-11-24
|
||||||
### Added
|
### Added
|
||||||
- New API functions `SetMaximumSessionMTU` and `GetMaximumSessionMTU`
|
- New API functions `SetMaximumSessionMTU` and `GetMaximumSessionMTU`
|
||||||
|
@ -34,7 +34,6 @@ some of the below:
|
|||||||
- Windows
|
- Windows
|
||||||
- FreeBSD
|
- FreeBSD
|
||||||
- OpenBSD
|
- OpenBSD
|
||||||
- NetBSD
|
|
||||||
- OpenWrt
|
- OpenWrt
|
||||||
|
|
||||||
Please see our [Platforms](https://yggdrasil-network.github.io/platforms.html) pages for more
|
Please see our [Platforms](https://yggdrasil-network.github.io/platforms.html) pages for more
|
||||||
|
@ -110,11 +110,12 @@ EOF
|
|||||||
|
|
||||||
cp yggdrasil /tmp/$PKGNAME/usr/bin/
|
cp yggdrasil /tmp/$PKGNAME/usr/bin/
|
||||||
cp yggdrasilctl /tmp/$PKGNAME/usr/bin/
|
cp yggdrasilctl /tmp/$PKGNAME/usr/bin/
|
||||||
cp contrib/systemd/yggdrasil.service /tmp/$PKGNAME/etc/systemd/system/
|
cp contrib/systemd/*.service /tmp/$PKGNAME/etc/systemd/system/
|
||||||
|
|
||||||
tar -czvf /tmp/$PKGNAME/data.tar.gz -C /tmp/$PKGNAME/ \
|
tar -czvf /tmp/$PKGNAME/data.tar.gz -C /tmp/$PKGNAME/ \
|
||||||
usr/bin/yggdrasil usr/bin/yggdrasilctl \
|
usr/bin/yggdrasil usr/bin/yggdrasilctl \
|
||||||
etc/systemd/system/yggdrasil.service
|
etc/systemd/system/yggdrasil.service \
|
||||||
|
etc/systemd/system/yggdrasil-default-config.service
|
||||||
tar -czvf /tmp/$PKGNAME/control.tar.gz -C /tmp/$PKGNAME/debian .
|
tar -czvf /tmp/$PKGNAME/control.tar.gz -C /tmp/$PKGNAME/debian .
|
||||||
echo 2.0 > /tmp/$PKGNAME/debian-binary
|
echo 2.0 > /tmp/$PKGNAME/debian-binary
|
||||||
|
|
||||||
|
@ -804,7 +804,7 @@ func (t *switchTable) _handleIdle(port switchPort) bool {
|
|||||||
now := time.Now()
|
now := time.Now()
|
||||||
pbufs := t.queues.bufs[port]
|
pbufs := t.queues.bufs[port]
|
||||||
for psize < 65535 {
|
for psize < 65535 {
|
||||||
var best string
|
var best *string
|
||||||
var bestPriority float64
|
var bestPriority float64
|
||||||
for streamID, buf := range pbufs {
|
for streamID, buf := range pbufs {
|
||||||
// Filter over the streams that this node is closer to
|
// Filter over the streams that this node is closer to
|
||||||
@ -812,25 +812,27 @@ func (t *switchTable) _handleIdle(port switchPort) bool {
|
|||||||
packet := buf.packets[0]
|
packet := buf.packets[0]
|
||||||
priority := float64(now.Sub(packet.time)) / float64(buf.size)
|
priority := float64(now.Sub(packet.time)) / float64(buf.size)
|
||||||
if priority >= bestPriority {
|
if priority >= bestPriority {
|
||||||
best = streamID
|
b := streamID // copy since streamID is mutated in the loop
|
||||||
|
best = &b
|
||||||
bestPriority = priority
|
bestPriority = priority
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if best != "" {
|
if best != nil {
|
||||||
buf := pbufs[best]
|
buf := pbufs[*best]
|
||||||
var packet switch_packetInfo
|
var packet switch_packetInfo
|
||||||
// TODO decide if this should be LIFO or FIFO
|
// TODO decide if this should be LIFO or FIFO
|
||||||
packet, buf.packets = buf.packets[0], buf.packets[1:]
|
packet, buf.packets = buf.packets[0], buf.packets[1:]
|
||||||
buf.size -= uint64(len(packet.bytes))
|
buf.size -= uint64(len(packet.bytes))
|
||||||
t.queues.size -= uint64(len(packet.bytes))
|
t.queues.size -= uint64(len(packet.bytes))
|
||||||
if len(buf.packets) == 0 {
|
if len(buf.packets) == 0 {
|
||||||
delete(pbufs, best)
|
delete(pbufs, *best)
|
||||||
if len(pbufs) == 0 {
|
if len(pbufs) == 0 {
|
||||||
delete(t.queues.bufs, port)
|
delete(t.queues.bufs, port)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Need to update the map, since buf was retrieved by value
|
// Need to update the map, since buf was retrieved by value
|
||||||
pbufs[best] = buf
|
pbufs[*best] = buf
|
||||||
|
|
||||||
}
|
}
|
||||||
packets = append(packets, packet.bytes)
|
packets = append(packets, packet.bytes)
|
||||||
psize += len(packet.bytes)
|
psize += len(packet.bytes)
|
||||||
|
Loading…
Reference in New Issue
Block a user