From cd6868176ee24e4c05e13768ea85561ef0ca25b5 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 16 Aug 2001 04:27:18 +0000 Subject: [PATCH] Remove protocol version change. Try MD5 first, then crypt() on all clients. --- src/backend/libpq/auth.c | 15 +++++++++------ src/backend/libpq/hba.c | 13 +++---------- src/include/libpq/pqcomm.h | 4 ++-- src/interfaces/libpq/libpq-int.h | 4 ++-- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index fe7bc3c9d1..2fd417e613 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.57 2001/08/15 18:42:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.58 2001/08/16 04:27:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -501,13 +501,16 @@ ClientAuthentication(Port *port) status = recv_and_check_password_packet(port); break; - case uaCrypt: - sendAuthRequest(port, AUTH_REQ_CRYPT); - status = recv_and_check_password_packet(port); - break; - case uaMD5: sendAuthRequest(port, AUTH_REQ_MD5); + if ((status = recv_and_check_password_packet(port)) == STATUS_OK) + break; + port->auth_method = uaCrypt; + /* Try crypt() for old client */ + /* FALL THROUGH */ + + case uaCrypt: + sendAuthRequest(port, AUTH_REQ_CRYPT); status = recv_and_check_password_packet(port); break; diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index d12225ab0e..f9e7898fb1 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.62 2001/08/15 18:42:15 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.63 2001/08/16 04:27:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -227,15 +227,8 @@ parse_hba_auth(List *line, ProtocolVersion proto, UserAuth *userauth_p, else if (strcmp(token, "reject") == 0) *userauth_p = uaReject; else if (strcmp(token, "crypt") == 0) - { - /* if the client supports it, use MD5 */ - if (PG_PROTOCOL_MAJOR(proto) > 2 || - (PG_PROTOCOL_MAJOR(proto) == 2 && - PG_PROTOCOL_MINOR(proto) >= 1)) - *userauth_p = uaMD5; - else - *userauth_p = uaCrypt; - } + /* Try MD5 first; on failure, switch to crypt() */ + *userauth_p = uaMD5; else *error_p = true; line = lnext(line); diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h index c709553f69..57a7e79696 100644 --- a/src/include/libpq/pqcomm.h +++ b/src/include/libpq/pqcomm.h @@ -9,7 +9,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pqcomm.h,v 1.56 2001/08/15 18:42:15 momjian Exp $ + * $Id: pqcomm.h,v 1.57 2001/08/16 04:27:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -90,7 +90,7 @@ typedef union SockAddr /* The earliest and latest frontend/backend protocol version supported. */ #define PG_PROTOCOL_EARLIEST PG_PROTOCOL(0,0) -#define PG_PROTOCOL_LATEST PG_PROTOCOL(2,1) +#define PG_PROTOCOL_LATEST PG_PROTOCOL(2,0) /* * All packets sent to the postmaster start with the length. This is omitted diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index a681e72bee..bab52c390b 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -12,7 +12,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: libpq-int.h,v 1.37 2001/08/15 18:42:16 momjian Exp $ + * $Id: libpq-int.h,v 1.38 2001/08/16 04:27:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -45,7 +45,7 @@ * pqcomm.h describe what the backend knows, not what libpq knows. */ -#define PG_PROTOCOL_LIBPQ PG_PROTOCOL(2,1) +#define PG_PROTOCOL_LIBPQ PG_PROTOCOL(2,0) /* * POSTGRES backend dependent Constants. -- 2.11.0