provide a clean access mechanism to access and switch protocols from an ITransport provider
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 6k
- Forks
- 1.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 10
Description
| @glyph reported | |
|---|---|
| Trac ID | trac#3204 |
| Type | enhancement |
| Created | 2008-04-24 04:46:00Z |
| Branch | https://github.com/twisted/twisted/tree/switch-protocols-3204 |
Some protocols - such as any protocol with a "STARTTLS" command - allow you to switch to a different application-level protocol in the middle of a connection.
Currently, Twisted contains two kinds of hacks to make this happen. One, as in TLS support, gets into the guts of the reactor implementation to allow you to switch protocols. Another, as in AMP's protocol switch command, adds an additional layer of (inefficient, overcomplex) wrapping in order to connect a different protocol to the available transport.
Currently, tcp.Connection happens to have a protocol attribute, but this is a mostly undocumented accident; it would be good to have an explicit API to switch protocols associated with ITransport.
I don't have a specific use-case at the moment for accessing the protocol attribute, but it seems like it would be nice to provide access along with mutation.
Searchable metadata
trac-id__3204 3204
type__enhancement enhancement
reporter__glyph glyph
priority__normal normal
milestone__
branch__branches_switch_protocols_3204 branches/switch-protocols-3204
branch_author__itamar itamar
status__new new
resolution__None None
component__core core
keywords__
time__1209012360000000 1209012360000000
changetime__1409665900096027 1409665900096027
version__None None
owner__itamar itamar
cc__davidsarah cc__adiroiban cc__daniele_athome
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the ITransport API and the tcp.Connection protocol attribute, then review the existing TLS and AMP protocol-switching approaches mentioned in the issue. Define an explicit transport API for accessing and switching the associated protocol, with behavior that replaces reliance on the undocumented attribute and avoids the existing wrapping workaround.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100