pgsql: Clean up messy API for src/port/thread.c.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Clean up messy API for src/port/thread.c.
Date: 2022-01-11 18:46:42
Message-ID: E1n7MAM-0003OO-A3@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Clean up messy API for src/port/thread.c.

The point of this patch is to reduce inclusion spam by not needing
to #include <netdb.h> or <pwd.h> in port.h (which is read by every
compile in our tree). To do that, we must remove port.h's
declarations of pqGetpwuid and pqGethostbyname.

pqGethostbyname is only used, and is only ever likely to be used,
in src/port/getaddrinfo.c --- which isn't even built on most
platforms, making pqGethostbyname dead code for most people.
Hence, deal with that by just moving it into getaddrinfo.c.

To clean up pqGetpwuid, invent a couple of simple wrapper
functions with less-messy APIs. This allows removing some
duplicate error-handling code, too.

In passing, remove thread.c from the MSVC build, since it
contains nothing we use on Windows.

Noted while working on 376ce3e40.

Discussion: https://postgr.es/m/1634252654444.90107@mit.edu

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/98e93a1fc93e9b54eb477d870ec744e9e1669f34

Modified Files
--------------
src/backend/libpq/auth.c | 1 +
src/bin/psql/common.c | 1 +
src/include/port.h | 14 ++----
src/interfaces/libpq/fe-auth.c | 54 ++++++++++++----------
src/interfaces/libpq/fe-auth.h | 1 +
src/interfaces/libpq/fe-connect.c | 40 ++++------------
src/port/Makefile | 4 ++
src/port/getaddrinfo.c | 44 ++++++++++++++++++
src/port/path.c | 11 +----
src/port/thread.c | 96 +++++++++++++++++++++++++--------------
src/tools/msvc/Mkvcbuild.pm | 2 +-
11 files changed, 158 insertions(+), 110 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2022-01-11 19:22:07 pgsql: Improve error message for missing extension.
Previous Message John Naylor 2022-01-11 17:59:52 pgsql: Improve warning message in pg_signal_backend()