[v3,00/24] Move nss_dns and parts of libresolv into libc

Message ID cover.1626339931.git.fweimer@redhat.com
Headers
Series Move nss_dns and parts of libresolv into libc |

Message

Florian Weimer July 15, 2021, 9:08 a.m. UTC
  I've pushed six already-approved patches, but I didn't want to
resequence the rest.

ns_skip_name has been fixed.  I fuzz-tested it against the old
implementation and found what is arguably a bug in the old
implementation.

I updated the NEWS file with a list of deprecated functions, and a few
more based on a review of the remaining libresolv contents.

I hope I addressed all review comments.

Thanks,
Florian

Florian Weimer (24):
  resolv: Deprecate legacy interfaces in libresolv
  resolv: Move ns_name_skip to its own file and into libc (bug 28091)
  resolv: Move ns_name_uncompress into its own file and into libc
  resolv: Move ns_name_pton into its own file and into libc
  resolv: Move ns_name_pack into its own file and into libc
  resolv: Move ns_name_compress into its own file and into libc
  resolv: Move dn_expand to its own file and into libc
  resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  resolv: Move dn_comp to its own file and into libc
  resolv: Move dn_skipname to its own file and into libc
  resolv: Rename res_comp.c to res-name-checking.c and move into libc
  resolv: Move __res_get_nsaddr to its own file and into libc
  resolv: Move res_isourserver to its own file and reformat to GNU style
  resolv: Move ns_makecanon into its own file, and into libc
  resolv: Move ns_samename into its own file, and into libc
  resolv: Move res_nameinquery to its own file and into libc
  resolv: Move res_queriesmatch to its own file and into libc
  resolv: Move __res_context_hostalias into its own file and into libc
  resolv: Move res_hostalias into its own file, along with hostalias
  resolv: Move res_send, res_nsend into libc
  resolv: Move res_mkquery, res_nmkquery into libc
  resolv: Move res_query functions into libc
  resolv: Move nss_dns into libc
  nss: Directly load nss_dns, without going through dlsym/dlopen

 NEWS                                          |  14 +
 include/arpa/nameser.h                        |  21 +-
 include/nss_dns.h                             |  39 ++
 include/resolv.h                              |  22 +-
 inet/arpa/inet.h                              |   3 +-
 nss/nss_files_functions.c                     |   6 -
 nss/nss_module.c                              |  58 ++-
 nss/nss_module.h                              |  10 +-
 resolv/Makefile                               |  44 +-
 resolv/Versions                               | 121 ++++--
 resolv/arpa/nameser.h                         |  33 +-
 resolv/compat-gethnamaddr.c                   |  13 +-
 resolv/dn_comp.c                              | 103 +++++
 resolv/dn_expand.c                            | 112 +++++
 resolv/dn_skipname.c                          | 103 +++++
 resolv/ns_makecanon.c                         |  50 +++
 resolv/ns_name.c                              | 407 ------------------
 resolv/ns_name_compress.c                     |  50 +++
 resolv/ns_name_pack.c                         | 202 +++++++++
 resolv/ns_name_pton.c                         | 157 +++++++
 resolv/ns_name_skip.c                         |  70 +++
 resolv/ns_name_uncompress.c                   |  45 ++
 resolv/ns_parse.c                             |   4 +-
 resolv/ns_print.c                             |   8 +-
 resolv/ns_samedomain.c                        |  62 +--
 resolv/ns_samename.c                          |  38 ++
 resolv/nss_dns/dns-canon.c                    |  12 +-
 resolv/nss_dns/dns-host.c                     |  50 +--
 resolv/nss_dns/dns-network.c                  |  15 +-
 resolv/nss_dns_functions.c                    |  40 ++
 resolv/{res_comp.c => res-name-checking.c}    | 116 ++---
 resolv/res-putget.c                           | 112 +++++
 resolv/res_context_hostalias.c                | 132 ++++++
 resolv/res_debug.c                            |   4 +-
 resolv/res_enable_icmp.c                      |   4 +-
 resolv/res_get_nsaddr.c                       |  39 ++
 resolv/res_hostalias.c                        |  51 +++
 resolv/res_isourserver.c                      | 134 ++++++
 resolv/res_mkquery.c                          |  48 ++-
 resolv/res_nameinquery.c                      | 115 +++++
 resolv/res_queriesmatch.c                     | 129 ++++++
 resolv/res_query.c                            | 158 +++----
 resolv/res_send.c                             | 232 ++--------
 resolv/resolv-deprecated.c                    |  56 +++
 resolv/resolv-internal.h                      |  21 +-
 resolv/resolv.h                               | 103 ++---
 sysdeps/mach/hurd/i386/libc.abilist           |  44 ++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  22 -
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  44 ++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  22 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  49 +++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  27 --
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  44 ++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  22 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  44 ++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  22 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  44 ++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  22 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  44 ++
 .../unix/sysv/linux/csky/libresolv.abilist    |  22 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  49 +++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  27 --
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  49 +++
 .../unix/sysv/linux/i386/libresolv.abilist    |  27 --
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  49 +++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  27 --
 .../sysv/linux/m68k/coldfire/libc.abilist     |  44 ++
 .../linux/m68k/coldfire/libresolv.abilist     |  22 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  49 +++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  27 --
 .../sysv/linux/microblaze/be/libc.abilist     |  44 ++
 .../linux/microblaze/be/libresolv.abilist     |  22 -
 .../sysv/linux/microblaze/le/libc.abilist     |  44 ++
 .../linux/microblaze/le/libresolv.abilist     |  22 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  49 +++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  27 --
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  49 +++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  49 +++
 .../linux/mips/mips64/n32/libresolv.abilist   |  27 --
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  49 +++
 .../linux/mips/mips64/n64/libresolv.abilist   |  27 --
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  44 ++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  22 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  49 +++
 .../linux/powerpc/powerpc32/libresolv.abilist |  27 --
 .../powerpc/powerpc32/nofpu/libc.abilist      |  49 +++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  44 ++
 .../powerpc/powerpc64/be/libresolv.abilist    |  22 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  44 ++
 .../powerpc/powerpc64/le/libresolv.abilist    |  22 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  44 ++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  22 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  44 ++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  22 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  49 +++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  27 --
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  44 ++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  22 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  49 +++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  27 --
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  49 +++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  27 --
 .../sysv/linux/sparc/sparc32/libc.abilist     |  49 +++
 .../linux/sparc/sparc32/libresolv.abilist     |  27 --
 .../sysv/linux/sparc/sparc64/libc.abilist     |  49 +++
 .../linux/sparc/sparc64/libresolv.abilist     |  27 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  44 ++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  22 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  44 ++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  22 -
 110 files changed, 3818 insertions(+), 1832 deletions(-)
 create mode 100644 include/nss_dns.h
 create mode 100644 resolv/dn_comp.c
 create mode 100644 resolv/dn_expand.c
 create mode 100644 resolv/dn_skipname.c
 create mode 100644 resolv/ns_makecanon.c
 create mode 100644 resolv/ns_name_compress.c
 create mode 100644 resolv/ns_name_pack.c
 create mode 100644 resolv/ns_name_pton.c
 create mode 100644 resolv/ns_name_skip.c
 create mode 100644 resolv/ns_name_uncompress.c
 create mode 100644 resolv/ns_samename.c
 create mode 100644 resolv/nss_dns_functions.c
 rename resolv/{res_comp.c => res-name-checking.c} (73%)
 create mode 100644 resolv/res-putget.c
 create mode 100644 resolv/res_context_hostalias.c
 create mode 100644 resolv/res_get_nsaddr.c
 create mode 100644 resolv/res_hostalias.c
 create mode 100644 resolv/res_isourserver.c
 create mode 100644 resolv/res_nameinquery.c
 create mode 100644 resolv/res_queriesmatch.c
 create mode 100644 resolv/resolv-deprecated.c
  

Comments

Andreas Schwab July 20, 2021, 9:17 a.m. UTC | #1
This again adds new files /usr/lib64/libnss_dns.a and
/usr/lib64/libnss_dns_p.a.

Andreas.
  
Florian Weimer July 20, 2021, 10:26 a.m. UTC | #2
* Andreas Schwab:

> This again adds new files /usr/lib64/libnss_dns.a and
> /usr/lib64/libnss_dns_p.a.

Sorry, I got distracted and forgot to fixup resolv/Makefile, too.
I'm going to send a patch shortly.

Thanks,
Florian