-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cache capabilities and add capability?(name) #31
Closed
Labels
IMAP4rev1
Requirement for IMAP4rev1, RFC3501
Comments
This was referenced Nov 23, 2021
This was referenced Nov 21, 2022
Merged
nevans
added a commit
that referenced
this issue
Jan 2, 2023
This simplifies caching of the server capabilities, as many servers will send their capabilities inside the greeting. Needed for #31.
nevans
added a commit
that referenced
this issue
Jan 6, 2023
This simplifies caching of the server capabilities, as many servers will send their capabilities inside the greeting. Needed for #31.
nevans
added a commit
that referenced
this issue
Jan 7, 2023
This simplifies caching of the server capabilities, as many servers will send their capabilities inside the greeting. Needed for #31.
nevans
added a commit
that referenced
this issue
Jan 8, 2023
This simplifies caching of the server capabilities, as many servers will send their capabilities inside the greeting. Needed for #31.
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 16, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#capabilities` - calls `capability` when needed * `#cached_capabilities` - accessor for cache; never contacts server * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 17, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 17, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 17, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 17, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 19, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#auth_capable?(name)` - returns whether SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 20, 2023
Added methods: * `#capable?(name)` - the main API for discovering capabilities * `#auth_capable?(name)` - returns whether SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache; is thread safe Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 20, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 20, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 21, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 21, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Fixes ruby#31
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 22, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Also, many docs related to capabilities wer reorganized and rewritten. Fixes ruby#31.
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 22, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Also, many docs related to capabilities were reorganized and rewritten. Fixes ruby#31.
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 22, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#capabilities` - calls `capability` when needed * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Also, many docs related to capabilities were reorganized and rewritten. Fixes ruby#31.
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 22, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#auth_mechanisms` - returns the server's supported SASL mechanisms * `#capabilities` - cached version of `capability` * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Also, the docs related to capabilities were reorganized and rewritten. Fixes ruby#31.
nevans
added a commit
to nevans/net-imap
that referenced
this issue
Jul 22, 2023
Updated methods: * `#initialize` - save capabilities in `OK` or `PREAUTH` greeting * `#capability` - always update saved capabilities * `#starttls` - always clear capabilities after tagged OK response * `#authenticate` - clear capabilities or update from tagged OK response * `#login` - clear capabilities or update from tagged OK response New methods: * `#capable?(name)` - the primary API for discovering capabilities * `#auth_capable?(name)` - returns whether a SASL mechanism is supported * `#auth_mechanisms` - returns the server's supported SASL mechanisms * `#capabilities` - cached version of `capability` * `#capabilities_cached?` - whether capabilities are cached * `#clear_cached_capabilities` - clears the cache Also, the docs related to capabilities were reorganized and rewritten. Fixes ruby#31.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The client should keep track of server
CAPABILITY
responses and response codes. And it should invalidate previously cached values at the appropriate times (e.g. afterSTARTTLS
).The base spec requires this: (e.g. #32
LOGINDISABLED
, #48AUTH=
). And many other extensions require the client to keep track (e.g. #37LITERAL-
). And the parser will also need to be able to "enable" different behavior for some extensions (e.g.BINARY
,UTF8=ACCEPT
,IMAPrev2
).The text was updated successfully, but these errors were encountered: