Comments (5)
I suppose we could add ConnectionIdGenerator::expire_time()
with a default implementation that yields None
such that it wouldn't be breaking, so that sounds like we don't have to hold the release for it.
from quinn.
Add
fn expire_time() -> Option<Duration>
to the trait ConnectionIdGenerator.
This already exists: ConnectionIdGenerator::cid_lifetime
. Is anything else needed?
See also the queue machinery in CidState
, Timer::PushNewCid
, etc.
from quinn.
I think we'd be open to that, but it's unclear to me how this would affect the API. Do you want to submit a PR in that direction? Should we hold the release for that so that we can change the API some more?
from quinn.
I think we'd be open to that, but it's unclear to me how this would affect the API.
I think the first part can be implemented without API change.
On the second part, I currently come up two way to implementing it:
-
Add
fn cid_expire_time(duration: Option<Duration>)
toEndpointConfig
. -
Add
fn expire_time() -> Option<Duration>
to the traitConnectionIdGenerator
.
The former should be cleaner and requires no breaking change, the latter seems reasonable that the implementation should know an expiration time of a cid and can even perform cid validation when parsing but could be over complicated.
Do you want to submit a PR in that direction? Should we hold the release for that so that we can change the API some more?
Yes, I definitely want to submit PRs for it but I don't have a schedule for it yet. And unless we decided to add expire_time
to ConnectionIdGenerator
so it'd better to land it together with #1879, I think we don't need hold the release for it.
from quinn.
This already exists: ConnectionIdGenerator::cid_lifetime. Is anything else needed?
Ahh, no idea why I missed it, it should be enough for rotating Connection ID.
from quinn.
Related Issues (20)
- Create my own AsyncUdpSocket HOT 1
- "SendableFrames was SendableFrames { acks: false, other: true }, but only ACKs have been written" HOT 11
- Black hole detection false-positives HOT 5
- Expose Packet Decoder? HOT 2
- ReadExactError::FinishedEarly byte count is sometimes incorrect HOT 1
- How to receive data in blocking way HOT 3
- Inconsistent documentation on platform availability of `local_ip` HOT 3
- long running bi stream HOT 5
- seems like quinn 0.11 not working well under heavy load HOT 12
- API for awaiting for stream reset on the reader HOT 5
- build fails on Solaris HOT 1
- How to run insecure connection example? HOT 1
- Weird issue when transferring large file HOT 3
- `ACKs are delivered in order` panic when packets are reordered
- Allow a client to specify Initial Connection ID HOT 2
- Bundle flow control and ACK frames opportunistically
- RTT calculation of connection is pretty unreliable when _just_ using the library as is HOT 7
- `SendStream::stopped` suffers excessive delay in terminating with `ZeroRttRejected`
- Dropping `Endpoint` can cause unnecessary "Incoming dropped without passing to..." warnings
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 quinn.