-
Notifications
You must be signed in to change notification settings - Fork 256
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
Allow multiple services associated to the same port #7790
Conversation
RFC6335 Section 5 allows more than one service associated with a particular port. In this case always return the first result returned by sysdb_getservbyport(). Signed-off-by: Samuel Cabrero <[email protected]>
Signed-off-by: Samuel Cabrero <[email protected]>
RFC6335 section 5 allow multiple services associated to the same transport and port. This commit allows storing multiple service entries in the cache for the same port and the lookup functions will return all matching entries. The cache_req plugin will pick the first result. Signed-off-by: Samuel Cabrero <[email protected]>
Signed-off-by: Samuel Cabrero <[email protected]>
c35f648
to
48c2de6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, ack.
We are currently trying to get rid of intg tests and we are converting them to tests/system. Would you like to convert it yourself as part of this pull request? It may however be little bit more complicated as it needs some new bits in https://github.com/SSSD/sssd-test-framework
I am fine approving it as is though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thank you.
Pushed PR: #7790
|
When the backend has multiple services are associated to the same port then concurrent NSS lookups fail.
Example:
RFC6335 Section 5 allows more than one service associated with a particular port, but
sysdb_store_service()
does not and replaces the previously cached entries for that port, causing the NSS queries to fail.This MR allows storing multiple entries for the same port, returning only the first result on service-by-port lookup.