Skip to content

Commit 294505e

Browse files
author
Neil Conway
committed
This patch removes some old code from libpq that implements a URI-like
syntax for database connection parameters. It has been inside an #ifdef NOT_USED block since 2001 or so and is marked as "broken", so I don't think it is likely to be rehabilitated any time soon.
1 parent 72a5db1 commit 294505e

File tree

1 file changed

+1
-170
lines changed

1 file changed

+1
-170
lines changed

src/interfaces/libpq/fe-connect.c

Lines changed: 1 addition & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.310 2005/06/12 00:00:21 neilc Exp $
11+
* $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.311 2005/06/12 00:07:07 neilc Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -460,18 +460,6 @@ connectOptions2(PGconn *conn)
460460
conn->pghost = NULL;
461461
}
462462

463-
#ifdef NOT_USED
464-
/*
465-
* parse dbName to get all additional info in it, if any
466-
*/
467-
if (update_db_info(conn) != 0)
468-
{
469-
conn->status = CONNECTION_BAD;
470-
/* errorMessage is already set */
471-
return false;
472-
}
473-
#endif
474-
475463
/*
476464
* validate sslmode option
477465
*/
@@ -644,163 +632,6 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
644632
}
645633

646634

647-
#ifdef NOT_USED /* because it's broken */
648-
/*
649-
* update_db_info -
650-
* get all additional info out of dbName
651-
*/
652-
static int
653-
update_db_info(PGconn *conn)
654-
{
655-
char *tmp,
656-
*tmp2,
657-
*old = conn->dbName;
658-
659-
if (strchr(conn->dbName, '@') != NULL)
660-
{
661-
/* old style: dbname[@server][:port] */
662-
tmp = strrchr(conn->dbName, ':');
663-
if (tmp != NULL) /* port number given */
664-
{
665-
if (conn->pgport)
666-
free(conn->pgport);
667-
conn->pgport = strdup(tmp + 1);
668-
*tmp = '\0';
669-
}
670-
671-
tmp = strrchr(conn->dbName, '@');
672-
if (tmp != NULL) /* host name given */
673-
{
674-
if (conn->pghost)
675-
free(conn->pghost);
676-
conn->pghost = strdup(tmp + 1);
677-
*tmp = '\0';
678-
}
679-
680-
conn->dbName = strdup(old);
681-
free(old);
682-
}
683-
else
684-
{
685-
int offset;
686-
687-
/*
688-
* only allow protocols tcp and unix
689-
*/
690-
if (strncmp(conn->dbName, "tcp:", 4) == 0)
691-
offset = 4;
692-
else if (strncmp(conn->dbName, "unix:", 5) == 0)
693-
offset = 5;
694-
else
695-
return 0;
696-
697-
if (strncmp(conn->dbName + offset, "postgresql://", strlen("postgresql://")) == 0)
698-
{
699-
700-
/*-------
701-
* new style:
702-
* <tcp|unix>:postgresql://server[:port|:/unixsocket/path:]
703-
* [/db name][?options]
704-
*-------
705-
*/
706-
offset += strlen("postgresql://");
707-
708-
tmp = strrchr(conn->dbName + offset, '?');
709-
if (tmp != NULL) /* options given */
710-
{
711-
if (conn->pgoptions)
712-
free(conn->pgoptions);
713-
conn->pgoptions = strdup(tmp + 1);
714-
*tmp = '\0';
715-
}
716-
717-
tmp = last_dir_separator(conn->dbName + offset);
718-
if (tmp != NULL) /* database name given */
719-
{
720-
if (conn->dbName)
721-
free(conn->dbName);
722-
conn->dbName = strdup(tmp + 1);
723-
*tmp = '\0';
724-
}
725-
else
726-
{
727-
/*
728-
* Why do we default only this value from the environment
729-
* again?
730-
*/
731-
if ((tmp = getenv("PGDATABASE")) != NULL)
732-
{
733-
if (conn->dbName)
734-
free(conn->dbName);
735-
conn->dbName = strdup(tmp);
736-
}
737-
else if (conn->pguser)
738-
{
739-
if (conn->dbName)
740-
free(conn->dbName);
741-
conn->dbName = strdup(conn->pguser);
742-
}
743-
}
744-
745-
tmp = strrchr(old + offset, ':');
746-
if (tmp != NULL) /* port number or Unix socket path given */
747-
{
748-
*tmp = '\0';
749-
if ((tmp2 = strchr(tmp + 1, ':')) != NULL)
750-
{
751-
if (strncmp(old, "unix:", 5) != 0)
752-
{
753-
printfPQExpBuffer(&conn->errorMessage,
754-
libpq_gettext("connectDBStart() -- "
755-
"socket name can only be specified with "
756-
"non-TCP\n"));
757-
return 1;
758-
}
759-
*tmp2 = '\0';
760-
if (conn->pgunixsocket)
761-
free(conn->pgunixsocket);
762-
conn->pgunixsocket = strdup(tmp + 1);
763-
}
764-
else
765-
{
766-
if (conn->pgport)
767-
free(conn->pgport);
768-
conn->pgport = strdup(tmp + 1);
769-
if (conn->pgunixsocket)
770-
free(conn->pgunixsocket);
771-
conn->pgunixsocket = NULL;
772-
}
773-
}
774-
775-
if (strncmp(old, "unix:", 5) == 0)
776-
{
777-
if (conn->pghost)
778-
free(conn->pghost);
779-
conn->pghost = NULL;
780-
if (strcmp(old + offset, "localhost") != 0)
781-
{
782-
printfPQExpBuffer(&conn->errorMessage,
783-
libpq_gettext("connectDBStart() -- "
784-
"non-TCP access only possible on "
785-
"localhost\n"));
786-
return 1;
787-
}
788-
}
789-
else
790-
{
791-
if (conn->pghost)
792-
free(conn->pghost);
793-
conn->pghost = strdup(old + offset);
794-
}
795-
free(old);
796-
}
797-
}
798-
799-
return 0;
800-
}
801-
#endif /* NOT_USED */
802-
803-
804635
/* ----------
805636
* connectNoDelay -
806637
* Sets the TCP_NODELAY socket option.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy