diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/libpq/pqcomm.h | 2 | ||||
-rw-r--r-- | src/include/pg_config.h.in | 3 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-auth.c | 70 | ||||
-rw-r--r-- | src/interfaces/libpq/fe-connect.c | 4 | ||||
-rw-r--r-- | src/tools/msvc/Solution.pm | 1 |
5 files changed, 1 insertions, 79 deletions
diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h index 5268d442abe..bff7dd18a23 100644 --- a/src/include/libpq/pqcomm.h +++ b/src/include/libpq/pqcomm.h @@ -116,7 +116,7 @@ extern PGDLLIMPORT bool Db_user_namespace; #define AUTH_REQ_PASSWORD 3 /* Password */ #define AUTH_REQ_CRYPT 4 /* crypt password. Not supported any more. */ #define AUTH_REQ_MD5 5 /* md5 password */ -#define AUTH_REQ_SCM_CREDS 6 /* transfer SCM credentials */ +/* 6 is available. It was used for SCM creds, not supported any more. */ #define AUTH_REQ_GSS 7 /* GSSAPI without wrap() */ #define AUTH_REQ_GSS_CONT 8 /* Continue GSS exchanges */ #define AUTH_REQ_SSPI 9 /* SSPI negotiate without wrap() */ diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index 20c82f59798..4882c705590 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -427,9 +427,6 @@ /* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL -/* Define to 1 if the system has the type `struct cmsgcred'. */ -#undef HAVE_STRUCT_CMSGCRED - /* Define to 1 if the system has the type `struct option'. */ #undef HAVE_STRUCT_OPTION diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c index a3b80dc550f..fa95f8e6e96 100644 --- a/src/interfaces/libpq/fe-auth.c +++ b/src/interfaces/libpq/fe-auth.c @@ -688,68 +688,6 @@ pg_SASL_continue(PGconn *conn, int payloadlen, bool final) return STATUS_OK; } -/* - * Respond to AUTH_REQ_SCM_CREDS challenge. - * - * Note: this is dead code as of Postgres 9.1, because current backends will - * never send this challenge. But we must keep it as long as libpq needs to - * interoperate with pre-9.1 servers. It is believed to be needed only on - * Debian/kFreeBSD (ie, FreeBSD kernel with Linux userland, so that the - * getpeereid() function isn't provided by libc). - */ -static int -pg_local_sendauth(PGconn *conn) -{ -#ifdef HAVE_STRUCT_CMSGCRED - char buf; - struct iovec iov; - struct msghdr msg; - struct cmsghdr *cmsg; - union - { - struct cmsghdr hdr; - unsigned char buf[CMSG_SPACE(sizeof(struct cmsgcred))]; - } cmsgbuf; - - /* - * The backend doesn't care what we send here, but it wants exactly one - * character to force recvmsg() to block and wait for us. - */ - buf = '\0'; - iov.iov_base = &buf; - iov.iov_len = 1; - - memset(&msg, 0, sizeof(msg)); - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - - /* We must set up a message that will be filled in by kernel */ - memset(&cmsgbuf, 0, sizeof(cmsgbuf)); - msg.msg_control = &cmsgbuf.buf; - msg.msg_controllen = sizeof(cmsgbuf.buf); - cmsg = CMSG_FIRSTHDR(&msg); - cmsg->cmsg_len = CMSG_LEN(sizeof(struct cmsgcred)); - cmsg->cmsg_level = SOL_SOCKET; - cmsg->cmsg_type = SCM_CREDS; - - if (sendmsg(conn->sock, &msg, 0) == -1) - { - char sebuf[PG_STRERROR_R_BUFLEN]; - - appendPQExpBuffer(&conn->errorMessage, - "pg_local_sendauth: sendmsg: %s\n", - strerror_r(errno, sebuf, sizeof(sebuf))); - return STATUS_ERROR; - } - - conn->client_finished_auth = true; - return STATUS_OK; -#else - libpq_append_conn_error(conn, "SCM_CRED authentication method not supported"); - return STATUS_ERROR; -#endif -} - static int pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq) { @@ -830,8 +768,6 @@ auth_method_description(AuthRequest areq) return libpq_gettext("server requested GSSAPI authentication"); case AUTH_REQ_SSPI: return libpq_gettext("server requested SSPI authentication"); - case AUTH_REQ_SCM_CREDS: - return libpq_gettext("server requested UNIX socket credentials"); case AUTH_REQ_SASL: case AUTH_REQ_SASL_CONT: case AUTH_REQ_SASL_FIN: @@ -922,7 +858,6 @@ check_expected_areq(AuthRequest areq, PGconn *conn) case AUTH_REQ_GSS: case AUTH_REQ_GSS_CONT: case AUTH_REQ_SSPI: - case AUTH_REQ_SCM_CREDS: case AUTH_REQ_SASL: case AUTH_REQ_SASL_CONT: case AUTH_REQ_SASL_FIN: @@ -1183,11 +1118,6 @@ pg_fe_sendauth(AuthRequest areq, int payloadlen, PGconn *conn) } break; - case AUTH_REQ_SCM_CREDS: - if (pg_local_sendauth(conn) != STATUS_OK) - return STATUS_ERROR; - break; - default: libpq_append_conn_error(conn, "authentication method %u not supported", areq); return STATUS_ERROR; diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index dd4b98e0998..0c197589ab9 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -1333,10 +1333,6 @@ connectOptions2(PGconn *conn) bits |= (1 << AUTH_REQ_SASL_CONT); bits |= (1 << AUTH_REQ_SASL_FIN); } - else if (strcmp(method, "creds") == 0) - { - bits = (1 << AUTH_REQ_SCM_CREDS); - } else if (strcmp(method, "none") == 0) { /* diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 5eaea6355e8..b59953e5b59 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -338,7 +338,6 @@ sub GenerateFiles HAVE_STRLCPY => undef, HAVE_STRNLEN => 1, HAVE_STRSIGNAL => undef, - HAVE_STRUCT_CMSGCRED => undef, HAVE_STRUCT_OPTION => undef, HAVE_STRUCT_SOCKADDR_SA_LEN => undef, HAVE_STRUCT_TM_TM_ZONE => undef, |