Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| michaelbushkov:nsswitchmodulesseparation [2006/07/01 21:32] – MichaelBushkov | michaelbushkov:nsswitchmodulesseparation [2022/10/05 22:57] (current) – Move to personal namespace KubilayKocak | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| ==== Issue 1. Common functionality. ==== | ==== Issue 1. Common functionality. ==== | ||
| - | Common functionality was the almost ubiquitous problem of all nss-modules. As all nsswitch sources for the particular database usually reside in 1 file (i.e. getpwent.c), | + | Common functionality was the almost ubiquitous problem of all nss-modules. As all nsswitch sources for the particular database usually reside in 1 file (i.e. getpwent.c), |
| - | Another case of common functionality was the implementation of “files” and “compat” nsswitch source for “services” database (it was written by me during %%SoC%% 2005, I’m afraid). It uses 1 files_servent() function for satisfying all requests for getservbyname(), | + | Another case of common functionality was the implementation of “files” and “compat” nsswitch source for “services” database (it was written by me during %%SoC%% 2005, I’m afraid). It uses 1 files_servent() function for satisfying all requests for getservbyname(), |
| getipnodeby%%**%%() functions had a lot of common functionality issues. It turned out that the simples way to solve them is to implement getipnodeby%%**%%() functions not through nsdispatch() calls but through gethostby%%**%%() calls. Such modifications were made and tested for compatibility with current implementations. | getipnodeby%%**%%() functions had a lot of common functionality issues. It turned out that the simples way to solve them is to implement getipnodeby%%**%%() functions not through nsdispatch() calls but through gethostby%%**%%() calls. Such modifications were made and tested for compatibility with current implementations. | ||
| Line 63: | Line 63: | ||
| ===== Results ===== | ===== Results ===== | ||
| - | ==== Result 1. ==== | + | ==== Result 1. Nss-modules separated. ==== |
| All nss-modules were moved from the libc: nss_files, nss_compat, nss_dns, nss_nis, nss_icmp (experimental version). All these modules along with libnssutil reside in src/lib. | All nss-modules were moved from the libc: nss_files, nss_compat, nss_dns, nss_nis, nss_icmp (experimental version). All these modules along with libnssutil reside in src/lib. | ||
| - | ==== Result 2. ==== | + | ==== Result 2. " |
| Caching daemon (cached) was extended to support “perform-actual-lookups” mode for all implemented nsswitch databases. It was impossible before because of the built-in-the-libc nss-modules, | Caching daemon (cached) was extended to support “perform-actual-lookups” mode for all implemented nsswitch databases. It was impossible before because of the built-in-the-libc nss-modules, | ||
| - | ==== Result 3. ==== | + | ==== Result 3. " |
| “shells” nsswitch database implementation was rewritten to be more consistent with other nsswitch databases and usable by caching daemon. | “shells” nsswitch database implementation was rewritten to be more consistent with other nsswitch databases and usable by caching daemon. | ||