Comments (5)
Haven't seen that yet. But also haven't looked closely. EPERM
in our scenario is most likely due to the send buffer not being drained quickly enough. A low memory situation could possibly also contribute to this.
I have been working on asyncio
Python 3.7+ rewrite of the broker lately to sharpen my asyncio
skills and noticed quite a few weird things both client and broker do (i.e. both client and broker seem to send keepalive packets instead of the broker just responding to the client's keepalive packets).
We can probably backport my findings into this implementation once I finish my research.
from tunneldigger.
Yeah I noticed that thing about the keepalives, too... but honestly it would seem rather arbitrary otherwise who responds to whose keepalives, so why not.
I have been working on asyncio Python 3.7+ rewrite of the broker
Honestly if a rewrite happens I'd rather do it in a language where I get help from the compiler to ensure that anything makes any sense... but I'm not doing the work so whatever. ;)
from tunneldigger.
Honestly if a rewrite happens I'd rather do it in a language where I get help from the compiler to ensure that anything makes any sense... but I'm not doing the work so whatever. ;)
Haha, yes, you're absolutely right. For some odd reason that didn't occur to me. It was more dabbling in Python with asyncio
anyway and I wasn't planning on merging it back into this codebase.
Also, I have wanted to learn Go for quite some time now.
Given that I, by now, fully understand how this whole thing works it might be a good starter project.
from tunneldigger.
I never wrote any Go (I'm more of a Rust person), but the language is supposed to be easy to pick up so I could probably do some reviewing of that.
from tunneldigger.
If I had more time at my hands I'd rewrite client and server in Rust so they could share the packet parsing... okay I'd have to convince the Gluon devs to take on a Rust dependency, not sure if that would work (or if Rust is even available for all these crazy platforms Gluon is built on), but it could still help to have a client in a saner language than C.
But I don't have that time so these are just idle thoughts anyway.
from tunneldigger.
Related Issues (20)
- [Docs] max_tunnels HOT 3
- High CPU load due to a single misbehaving client HOT 2
- Change rate limiting to be per-UUID HOT 1
- No releases since 2017? HOT 3
- The client can get stuck in a high-frequency retry loop despite working brokers HOT 10
- TC/Traffic Control: Error: Invalid handle. HOT 1
- Review CI Tooling HOT 19
- Newer Kernels log error "recv short packet" for every broker packet HOT 7
- How does tunneldigger work compared to l2tp? HOT 5
- TC/Traffic Control does not always work HOT 1
- Proposal: Broker usage check on reconnect
- tunneldigger-broker: connection fails with `Error: Invalid handle.` HOT 3
- Silence `tc` output when `ignore_fails` is true
- teardown script crashes tunneldigger-broker HOT 5
- broker throwing OSError on creation of timers HOT 1
- Frequent reconnection of clients HOT 70
- setup.py is deprecated HOT 4
- Broker: Wait for interface to have an IP before listening HOT 2
- Update CI to ubuntu-22.04
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tunneldigger.