Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
df1468e2
Commit
df1468e2
authored
Dec 14, 1998
by
Marc G. Fournier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
7c3b7d27
Changes
16
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
276 additions
and
332 deletions
+276
-332
src/backend/access/transam/xid.c
src/backend/access/transam/xid.c
+3
-8
src/backend/commands/_deadcode/version.c
src/backend/commands/_deadcode/version.c
+7
-8
src/backend/commands/user.c
src/backend/commands/user.c
+65
-91
src/backend/commands/view.c
src/backend/commands/view.c
+1
-3
src/backend/executor/execAmi.c
src/backend/executor/execAmi.c
+1
-3
src/backend/executor/nodeHash.c
src/backend/executor/nodeHash.c
+1
-2
src/backend/executor/nodeTee.c
src/backend/executor/nodeTee.c
+3
-4
src/backend/libpq/be-dumpdata.c
src/backend/libpq/be-dumpdata.c
+4
-6
src/backend/libpq/crypt.c
src/backend/libpq/crypt.c
+56
-70
src/backend/libpq/hba.c
src/backend/libpq/hba.c
+90
-87
src/backend/libpq/password.c
src/backend/libpq/password.c
+10
-3
src/backend/libpq/portal.c
src/backend/libpq/portal.c
+4
-6
src/backend/libpq/pqcomm.c
src/backend/libpq/pqcomm.c
+28
-32
src/backend/libpq/util.c
src/backend/libpq/util.c
+1
-3
src/backend/nodes/outfuncs.c
src/backend/nodes/outfuncs.c
+1
-3
src/backend/parser/analyze.c
src/backend/parser/analyze.c
+1
-3
No files found.
src/backend/access/transam/xid.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/access/transam/Attic/xid.c,v 1.19 1998/12/14 05:18:33 scrappy Exp $
* $Id: xid.c,v 1.20 1998/12/14 06:50:17 scrappy Exp $
*
* OLD COMMENTS
* XXX WARNING
...
...
@@ -41,13 +39,10 @@ xidin(char *representation)
char
*
xidout
(
TransactionId
transactionId
)
{
/* return(TransactionIdFormString(transactionId)); */
char
*
representation
;
/* maximum 32 bit unsigned integer representation takes 10 chars */
representation
=
palloc
(
11
);
char
*
representation
=
palloc
(
11
);
s
printf
(
representation
,
"%u"
,
transactionId
);
s
nprintf
(
representation
,
11
,
"%u"
,
transactionId
);
return
representation
;
...
...
src/backend/commands/_deadcode/version.c
View file @
df1468e2
...
...
@@ -5,19 +5,18 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* The version stuff has not been tested under postgres95 and probably
doesn't
* work! - jolly 8/19/95
* The version stuff has not been tested under postgres95 and probably
*
doesn't
work! - jolly 8/19/95
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/_deadcode/Attic/version.c,v 1.16 1998/12/14 05:18:44 scrappy Exp $
* $Id: version.c,v 1.17 1998/12/14 06:50:19 scrappy Exp $
*
* NOTES
* At the point the version is defined, 2 physical relations are created
* <vname>_added and <vname>_deleted.
*
*
In addition, 4 rules are defined which govern the semantics of versions
*
w.r.t retrieves, appends, replaces and deletes.
*
In addition, 4 rules are defined which govern the semantics of
*
versions
w.r.t retrieves, appends, replaces and deletes.
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/commands/user.c
View file @
df1468e2
...
...
@@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
*
$Id: user.c,v 1.21 1998/12/14 06:50:18 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -35,6 +35,8 @@
static
void
CheckPgUserAclNotNull
(
void
);
#define SQL_LENGTH 512
/*---------------------------------------------------------------------
* UpdatePgPwdFile
*
...
...
@@ -47,8 +49,9 @@ void
UpdatePgPwdFile
(
char
*
sql
)
{
char
*
filename
;
char
*
tempname
;
char
*
filename
,
*
tempname
;
int
bufsize
;
/*
* Create a temporary filename to be renamed later. This prevents the
...
...
@@ -56,18 +59,21 @@ UpdatePgPwdFile(char *sql)
* be reading from it.
*/
filename
=
crypt_getpwdfilename
();
tempname
=
(
char
*
)
malloc
(
strlen
(
filename
)
+
12
);
sprintf
(
tempname
,
"%s.%d"
,
filename
,
MyProcPid
);
bufsize
=
strlen
(
filename
)
+
12
;
tempname
=
(
char
*
)
palloc
(
bufsize
);
snprintf
(
tempname
,
bufsize
,
"%s.%d"
,
filename
,
MyProcPid
);
/*
* Copy the contents of pg_shadow to the pg_pwd ASCII file using a the
* SEPCHAR character as the delimiter between fields. Then rename the
* file to its final name.
*/
sprintf
(
sql
,
"copy %s to '%s' using delimiters %s"
,
ShadowRelationName
,
tempname
,
CRYPT_PWD_FILE_SEPCHAR
);
snprintf
(
sql
,
QRY_LENGTH
,
"copy %s to '%s' using delimiters %s"
,
ShadowRelationName
,
tempname
,
CRYPT_PWD_FILE_SEPCHAR
);
pg_exec_query
(
sql
);
rename
(
tempname
,
filename
);
free
((
void
*
)
tempname
);
p
free
((
void
*
)
tempname
);
/*
* Create a flag file the postmaster will detect the next time it
...
...
@@ -89,14 +95,13 @@ void
DefineUser
(
CreateUserStmt
*
stmt
)
{
char
*
pg_shadow
;
char
*
pg_shadow
,
sql
[
SQL_LENGTH
];
Relation
pg_shadow_rel
;
TupleDesc
pg_shadow_dsc
;
HeapScanDesc
scan
;
HeapTuple
tuple
;
Datum
datum
;
char
sql
[
512
];
char
*
sql_end
;
bool
exists
=
false
,
n
,
inblock
;
...
...
@@ -152,46 +157,23 @@ DefineUser(CreateUserStmt *stmt)
RelationUnsetLockForWrite
(
pg_shadow_rel
);
heap_close
(
pg_shadow_rel
);
UserAbortTransactionBlock
();
elog
(
ERROR
,
"defineUser: user
\"
%s
\"
has already been created"
,
stmt
->
user
);
elog
(
ERROR
,
"defineUser: user
\"
%s
\"
has already been created"
,
stmt
->
user
);
return
;
}
/*
* Build the insert statment to be executed.
*/
sprintf
(
sql
,
"insert into %s(usename,usesysid,usecreatedb,usetrace,usesuper,usecatupd,passwd"
,
ShadowRelationName
);
/* if (stmt->password)
strcat(sql, ",passwd"); -- removed so that insert empty string when no password */
if
(
stmt
->
validUntil
)
strcat
(
sql
,
",valuntil"
);
sql_end
=
sql
+
strlen
(
sql
);
sprintf
(
sql_end
,
") values('%s',%d"
,
stmt
->
user
,
max_id
+
1
);
if
(
stmt
->
createdb
&&
*
stmt
->
createdb
)
strcat
(
sql_end
,
",'t','t'"
);
else
strcat
(
sql_end
,
",'f','t'"
);
if
(
stmt
->
createuser
&&
*
stmt
->
createuser
)
strcat
(
sql_end
,
",'t','t'"
);
else
strcat
(
sql_end
,
",'f','t'"
);
sql_end
+=
strlen
(
sql_end
);
if
(
stmt
->
password
)
{
sprintf
(
sql_end
,
",'%s'"
,
stmt
->
password
);
sql_end
+=
strlen
(
sql_end
);
}
else
{
strcpy
(
sql_end
,
",''"
);
sql_end
+=
strlen
(
sql_end
);
}
if
(
stmt
->
validUntil
)
{
sprintf
(
sql_end
,
",'%s'"
,
stmt
->
validUntil
);
sql_end
+=
strlen
(
sql_end
);
}
strcat
(
sql_end
,
")"
);
snprintf
(
sql
,
SQL_LENGTH
,
"insert into %s(usename,usesysid,usecreatedb,usetrace,usesuper,"
"usecatupd,passwd,valuntil) values('%s',%d%s%s,'%s','%s')"
,
ShadowRelationName
,
stmt
->
user
,
max_id
+
1
,
(
stmt
->
createdb
&&
*
stmt
->
createdb
)
?
",'t','t'"
:
",'f','t'"
,
(
stmt
->
createuser
&&
*
stmt
->
createuser
)
?
",'t','t'"
:
",'f','t'"
,
stmt
->
password
?
stmt
->
password
:
"''"
,
stmt
->
validUntil
?
stmt
->
valudUntil
:
""
);
pg_exec_query
(
sql
);
...
...
@@ -217,12 +199,11 @@ extern void
AlterUser
(
AlterUserStmt
*
stmt
)
{
char
*
pg_shadow
;
char
*
pg_shadow
,
sql
[
SQL_LENGTH
];
Relation
pg_shadow_rel
;
TupleDesc
pg_shadow_dsc
;
HeapTuple
tuple
;
char
sql
[
512
];
char
*
sql_end
;
bool
inblock
;
if
(
stmt
->
password
)
...
...
@@ -271,46 +252,37 @@ AlterUser(AlterUserStmt *stmt)
/*
* Create the update statement to modify the user.
*/
s
printf
(
sql
,
"update %s set"
,
ShadowRelationName
);
sql_end
=
sql
;
s
nprintf
(
sql
,
SQL_LENGTH
,
"update %s set"
,
ShadowRelationName
);
if
(
stmt
->
password
)
{
sql_end
+=
strlen
(
sql_end
);
sprintf
(
sql_end
,
" passwd = '%s'"
,
stmt
->
password
);
snprintf
(
sql
,
SQL_LENGTH
,
"%s passwd = '%s'"
,
sql
,
stmt
->
password
);
}
if
(
stmt
->
createdb
)
{
if
(
sql_end
!=
sql
)
strcat
(
sql_end
,
","
);
sql_end
+=
strlen
(
sql_end
);
if
(
*
stmt
->
createdb
)
strcat
(
sql_end
,
" usecreatedb = 't'"
);
else
strcat
(
sql_end
,
" usecreatedb = 'f'"
);
snprintf
(
sql
,
SQL_LENGTH
,
"%s %susecreatedb='%s'"
,
stmt
->
password
?
","
:
""
,
*
stmt
->
createdb
?
"t"
:
"f"
);
}
if
(
stmt
->
createuser
)
{
if
(
sql_end
!=
sql
)
strcat
(
sql_end
,
","
);
sql_end
+=
strlen
(
sql_end
);
if
(
*
stmt
->
createuser
)
strcat
(
sql_end
,
" usesuper = 't'"
);
else
strcat
(
sql_end
,
" usesuper = 'f'"
);
snprintf
(
sql
,
SQL_LENGTH
,
"%s %susesuper='%s'"
,
(
stmt
->
password
||
stmt
->
createdb
)
?
","
:
""
,
*
stmt
->
createuser
?
"t"
:
"f"
);
}
if
(
stmt
->
validUntil
)
{
if
(
sql_end
!=
sql
)
strcat
(
sql_end
,
","
);
sql_end
+=
strlen
(
sql_end
);
sprintf
(
sql_end
,
" valuntil = '%s'"
,
stmt
->
validUntil
);
snprintf
(
sql
,
SQL_LENGTH
,
"%s %svaluntil='%s'"
,
(
stmt
->
password
||
stmt
->
createdb
||
stmt
->
createuser
)
?
","
:
""
,
stmt
->
validUntil
);
}
if
(
sql_end
!=
sql
)
{
sql_end
+=
strlen
(
sql_end
);
sprintf
(
sql_end
,
" where usename = '%s'"
,
stmt
->
user
);
snprintf
(
sql
,
SQL_LENGTH
,
"%s where usename = '%s'"
,
sql
,
stmt
->
user
);
pg_exec_query
(
sql
);
}
/* do the pg_group stuff here */
...
...
@@ -402,8 +374,9 @@ RemoveUser(char *user)
datum
=
heap_getattr
(
tuple
,
Anum_pg_database_datname
,
pg_dsc
,
&
n
);
if
(
memcmp
((
void
*
)
datum
,
"template1"
,
9
))
{
dbase
=
(
char
**
)
realloc
((
void
*
)
dbase
,
sizeof
(
char
*
)
*
(
ndbase
+
1
));
dbase
[
ndbase
]
=
(
char
*
)
malloc
(
NAMEDATALEN
+
1
);
dbase
=
(
char
**
)
repalloc
((
void
*
)
dbase
,
sizeof
(
char
*
)
*
(
ndbase
+
1
));
dbase
[
ndbase
]
=
(
char
*
)
palloc
(
NAMEDATALEN
+
1
);
memcpy
((
void
*
)
dbase
[
ndbase
],
(
void
*
)
datum
,
NAMEDATALEN
);
dbase
[
ndbase
++
][
NAMEDATALEN
]
=
'\0'
;
}
...
...
@@ -415,12 +388,12 @@ RemoveUser(char *user)
while
(
ndbase
--
)
{
elog
(
NOTICE
,
"Dropping database %s"
,
dbase
[
ndbase
]);
s
printf
(
sql
,
"drop database %s"
,
dbase
[
ndbase
]);
free
((
void
*
)
dbase
[
ndbase
]);
s
nprintf
(
sql
,
SQL_LENGTH
,
"drop database %s"
,
dbase
[
ndbase
]);
p
free
((
void
*
)
dbase
[
ndbase
]);
pg_exec_query
(
sql
);
}
if
(
dbase
)
free
((
void
*
)
dbase
);
p
free
((
void
*
)
dbase
);
/*
* Since pg_shadow is global over all databases, one of two things
...
...
@@ -443,7 +416,8 @@ RemoveUser(char *user)
/*
* Remove the user from the pg_shadow table
*/
sprintf
(
sql
,
"delete from %s where usename = '%s'"
,
ShadowRelationName
,
user
);
snprintf
(
sql
,
SQL_LENGTH
,
"delete from %s where usename = '%s'"
,
ShadowRelationName
,
user
);
pg_exec_query
(
sql
);
UpdatePgPwdFile
(
sql
);
...
...
src/backend/commands/view.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.27 1998/12/14 05:18:44 scrappy Exp $
* $Id: view.c,v 1.28 1998/12/14 06:50:18 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/executor/execAmi.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.26 1998/12/14 05:18:49 scrappy Exp $
* $Id: execAmi.c,v 1.27 1998/12/14 06:50:20 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/executor/nodeHash.c
View file @
df1468e2
...
...
@@ -6,8 +6,7 @@
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.25 1998/12/14 05:18:50 scrappy Exp $
* $Id: nodeHash.c,v 1.26 1998/12/14 06:50:21 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/executor/nodeTee.c
View file @
df1468e2
...
...
@@ -6,16 +6,15 @@
* Copyright (c) 1994, Regents of the University of California
*
* DESCRIPTION
* This code provides support for a tee node, which allows
multiple
*
parent in a megaplan.
* This code provides support for a tee node, which allows
*
multiple
parent in a megaplan.
*
* INTERFACE ROUTINES
* ExecTee
* ExecInitTee
* ExecEndTee
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.26 1998/12/14 05:18:51 scrappy Exp $
* $Id: nodeTee.c,v 1.27 1998/12/14 06:50:22 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/libpq/be-dumpdata.c
View file @
df1468e2
...
...
@@ -6,9 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-dumpdata.c,v 1.18 1998/11/27 19:52:05 vadim Exp $
* $Id: be-dumpdata.c,v 1.19 1998/12/14 06:50:23 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -142,7 +140,7 @@ be_newportal(void)
if
(
be_portalcnt
==
0
)
be_portaloid
=
newoid
();
be_portalcnt
++
;
s
printf
(
buf
,
"be_%d_%d"
,
be_portaloid
,
be_portalcnt
);
s
nprintf
(
buf
,
PortalNameLength
,
"be_%d_%d"
,
be_portaloid
,
be_portalcnt
);
/* ----------------
* initialize the new portal entry and keep track
...
...
src/backend/libpq/crypt.c
View file @
df1468e2
/*-------------------------------------------------------------------------
*
* crypt.c--
*
Look into pg_shadow and check the encrypted password with the one
*
passed in from the frontend.
*
Look into pg_shadow and check the encrypted password with
*
the one
passed in from the frontend.
*
* Modification History
*
* Dec 17, 1997 - Todd A. Brandys
* Orignal Version Completed.
*
* $Id: crypt.c,v 1.13 1998/12/14 06:50:24 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -38,12 +39,11 @@ crypt_getpwdfilename()
{
static
char
*
pfnam
=
NULL
;
int
bufsize
;
if
(
!
pfnam
)
{
pfnam
=
(
char
*
)
malloc
(
strlen
(
DataDir
)
+
strlen
(
CRYPT_PWD_FILE
)
+
2
);
sprintf
(
pfnam
,
"%s/%s"
,
DataDir
,
CRYPT_PWD_FILE
);
}
bufsize
=
strlen
(
DataDir
)
+
strlen
(
CRYPT_PWD_FILE
)
+
2
;
pfnam
=
(
char
*
)
palloc
(
bufsize
);
snprintf
(
pfnam
,
bufsize
,
"%s/%s"
,
DataDir
,
CRYPT_PWD_FILE
);
return
pfnam
;
}
...
...
@@ -55,15 +55,13 @@ crypt_getpwdreloadfilename()
{
static
char
*
rpfnam
=
NULL
;
if
(
!
rpfnam
)
{
char
*
pwdfilename
;
int
bufsize
;
pwdfilename
=
crypt_getpwdfilename
();
rpfnam
=
(
char
*
)
malloc
(
strlen
(
pwdfilename
)
+
strlen
(
CRYPT_PWD_RELOAD_SUFX
)
+
1
)
;
sprintf
(
rpfnam
,
"%s%s"
,
pwdfilename
,
CRYPT_PWD_RELOAD_SUFX
);
}
bufsize
=
strlen
(
pwdfilename
)
+
strlen
(
CRYPT_PWD_RELOAD_SUFX
)
+
1
;
rpfnam
=
(
char
*
)
palloc
(
bufsize
);
snprintf
(
rpfnam
,
bufsize
,
"%s%s"
,
pwdfilename
,
CRYPT_PWD_RELOAD_SUFX
);
return
rpfnam
;
}
...
...
@@ -145,8 +143,10 @@ crypt_loadpwdfile()
{
/* free the old data only if this is a
* reload */
while
(
pwd_cache_count
--
)
free
((
void
*
)
pwd_cache
[
pwd_cache_count
]);
free
((
void
*
)
pwd_cache
);
{
pfree
((
void
*
)
pwd_cache
[
pwd_cache_count
]);
}
pfree
((
void
*
)
pwd_cache
);
pwd_cache
=
NULL
;
pwd_cache_count
=
0
;
}
...
...
@@ -168,7 +168,7 @@ crypt_loadpwdfile()
buffer
[
result
]
=
'\0'
;
pwd_cache
=
(
char
**
)
realloc
((
void
*
)
pwd_cache
,
sizeof
(
char
*
)
*
(
pwd_cache_count
+
1
));
pwd_cache
[
pwd_cache_count
++
]
=
strdup
(
buffer
);
pwd_cache
[
pwd_cache_count
++
]
=
p
strdup
(
buffer
);
}
fclose
(
pwd_file
);
...
...
@@ -200,7 +200,7 @@ crypt_parsepwdentry(char *buffer, char **pwd, char **valdate)
* store a copy of user password to return
*/
count
=
strcspn
(
parse
,
CRYPT_PWD_FILE_SEPSTR
);
*
pwd
=
(
char
*
)
m
alloc
(
count
+
1
);
*
pwd
=
(
char
*
)
p
alloc
(
count
+
1
);
strncpy
(
*
pwd
,
parse
,
count
);
(
*
pwd
)[
count
]
=
'\0'
;
parse
+=
(
count
+
1
);
...
...
@@ -209,7 +209,7 @@ crypt_parsepwdentry(char *buffer, char **pwd, char **valdate)
* store a copy of date login becomes invalid
*/
count
=
strcspn
(
parse
,
CRYPT_PWD_FILE_SEPSTR
);
*
valdate
=
(
char
*
)
m
alloc
(
count
+
1
);
*
valdate
=
(
char
*
)
p
alloc
(
count
+
1
);
strncpy
(
*
valdate
,
parse
,
count
);
(
*
valdate
)[
count
]
=
'\0'
;
parse
+=
(
count
+
1
);
...
...
@@ -222,8 +222,8 @@ int
crypt_getloginfo
(
const
char
*
user
,
char
**
passwd
,
char
**
valuntil
)
{
char
*
pwd
;
char
*
valdate
;
char
*
pwd
,
*
valdate
;
void
*
fakeout
;
*
passwd
=
NULL
;
...
...
@@ -235,7 +235,7 @@ crypt_getloginfo(const char *user, char **passwd, char **valuntil)
char
**
pwd_entry
;
char
user_search
[
NAMEDATALEN
+
2
];
s
printf
(
user_search
,
"%s
\t
"
,
user
);
s
nprintf
(
user_search
,
NAMEDATALEN
+
2
,
"%s
\t
"
,
user
);
fakeout
=
(
void
*
)
&
user_search
;
if
((
pwd_entry
=
(
char
**
)
bsearch
((
void
*
)
&
fakeout
,
(
void
*
)
pwd_cache
,
pwd_cache_count
,
sizeof
(
char
*
),
compar_user
)))
{
...
...
@@ -253,56 +253,32 @@ crypt_getloginfo(const char *user, char **passwd, char **valuntil)
/*-------------------------------------------------------------------------*/
#if 0
MsgType
crypt_salt(const char *user)
{
char *passwd;
char *valuntil;
if (crypt_getloginfo(user, &passwd, &valuntil) == STATUS_ERROR)
return STARTUP_UNSALT_MSG;
if (passwd == NULL || *passwd == '\0' || !strcmp(passwd, "\\N"))
{
if (passwd)
free((void *) passwd);
if (valuntil)
free((void *) valuntil);
return STARTUP_UNSALT_MSG;
}
free((void *) passwd);
if (valuntil)
free((void *) valuntil);
return STARTUP_SALT_MSG;
}
#endif
/*-------------------------------------------------------------------------*/
int
crypt_verify
(
Port
*
port
,
const
char
*
user
,
const
char
*
pgpass
)
{
char
*
passwd
;
char
*
valuntil
;
char
*
crypt_pwd
;
char
*
passwd
,
*
valuntil
,
*
crypt_pwd
;
int
retval
=
STATUS_ERROR
;
AbsoluteTime
vuntil
,
current
;
if
(
crypt_getloginfo
(
user
,
&
passwd
,
&
valuntil
)
==
STATUS_ERROR
)
{
return
STATUS_ERROR
;
}
if
(
passwd
==
NULL
||
*
passwd
==
'\0'
)
{
if
(
passwd
)
free
((
void
*
)
passwd
);
{
pfree
((
void
*
)
passwd
);
}
if
(
valuntil
)
free
((
void
*
)
valuntil
);
{
pfree
((
void
*
)
valuntil
);
}
return
STATUS_ERROR
;
}
...
...
@@ -311,28 +287,38 @@ crypt_verify(Port *port, const char *user, const char *pgpass)
* authentication method being used for this connection.
*/
crypt_pwd
=
(
port
->
auth_method
==
uaCrypt
?
crypt
(
passwd
,
port
->
salt
)
:
passwd
);
crypt_pwd
=
(
port
->
auth_method
==
uaCrypt
?
crypt
(
passwd
,
port
->
salt
)
:
passwd
);
if
(
!
strcmp
(
pgpass
,
crypt_pwd
))
{
/*
* check here to be sure we are not past valuntil
*/
if
(
!
valuntil
||
strcmp
(
valuntil
,
"
\\
N"
)
==
0
)
{
vuntil
=
INVALID_ABSTIME
;
}
else
{
vuntil
=
nabstimein
(
valuntil
);
}
current
=
GetCurrentAbsoluteTime
();
if
(
vuntil
!=
INVALID_ABSTIME
&&
vuntil
<
current
)
{
retval
=
STATUS_ERROR
;
}
else
{
retval
=
STATUS_OK
;
}
}
free
((
void
*
)
passwd
);
p
free
((
void
*
)
passwd
);
if
(
valuntil
)
free
((
void
*
)
valuntil
);
{
pfree
((
void
*
)
valuntil
);
}
return
retval
;
}
src/backend/libpq/hba.c
View file @
df1468e2
This diff is collapsed.
Click to expand it.
src/backend/libpq/password.c
View file @
df1468e2
/*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: password.c,v 1.19 1998/12/14 06:50:26 scrappy Exp $
*
*/
#include <postgres.h>
#include <miscadmin.h>
#include <libpq/password.h>
...
...
@@ -23,7 +30,7 @@ verify_password(char *auth_arg, char *user, char *password)
pw_file
=
AllocateFile
(
pw_file_fullname
,
"r"
);
if
(
!
pw_file
)
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"verify_password: couldn't open password file '%s'
\n
"
,
pw_file_fullname
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -68,7 +75,7 @@ verify_password(char *auth_arg, char *user, char *password)
return
STATUS_OK
;
}
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"verify_password: password mismatch for '%s'.
\n
"
,
user
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -80,7 +87,7 @@ verify_password(char *auth_arg, char *user, char *password)
}
}
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"verify_password: user '%s' not found in password file.
\n
"
,
user
);
fputs
(
PQerrormsg
,
stderr
);
...
...
src/backend/libpq/portal.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/Attic/portal.c,v 1.17 1998/09/01 04:28:50 momjian Exp $
* $Id: portal.c,v 1.18 1998/12/14 06:50:26 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -75,8 +73,8 @@ in_range(char *msg, int value, int min, int max)
{
if
(
value
<
min
||
value
>=
max
)
{
s
printf
(
PQerrormsg
,
"FATAL: %s, %d is not in range [%d,%d)
\n
"
,
msg
,
value
,
min
,
max
);
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: %s, %d is not in range [%d,%d)
\n
"
,
msg
,
value
,
min
,
max
);
pqdebug
(
"%s"
,
PQerrormsg
);
fputs
(
PQerrormsg
,
stderr
);
return
0
;
...
...
@@ -89,7 +87,7 @@ valid_pointer(char *msg, void *ptr)
{
if
(
!
ptr
)
{
s
printf
(
PQerrormsg
,
"FATAL: %s
\n
"
,
msg
);
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: %s
\n
"
,
msg
);
pqdebug
(
"%s"
,
PQerrormsg
);
fputs
(
PQerrormsg
,
stderr
);
return
0
;
...
...
src/backend/libpq/pqcomm.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.58 1998/11/29 01:47:42 tgl Exp $
* $Id: pqcomm.c,v 1.59 1998/12/14 06:50:27 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -78,8 +76,8 @@
* ----------------
*/
FILE
*
Pfout
,
*
Pfin
;
FILE
*
Pfdebug
;
/* debugging libpq */
*
Pfin
,
*
Pfdebug
;
/* debugging libpq */
/* --------------------------------
* pq_init - open portal file descriptors
...
...
@@ -315,7 +313,7 @@ pq_getint(int b)
if
(
status
)
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: pq_getint failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
...
...
@@ -341,7 +339,7 @@ pq_putstr(char *s)
if
(
pqPutString
(
s
,
Pfout
))
#endif
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: pq_putstr: fputs() failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
...
...
@@ -357,7 +355,7 @@ pq_putnchar(char *s, int n)
{
if
(
pqPutNBytes
(
s
,
n
,
Pfout
))
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: pq_putnchar: fputc() failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -398,7 +396,7 @@ pq_putint(int i, int b)
if
(
status
)
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: pq_putint failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
...
...
@@ -431,7 +429,7 @@ pq_getinaddr(struct sockaddr_in * sin,
}
if
(
hs
->
h_addrtype
!=
AF_INET
)
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: pq_getinaddr: %s not on Internet
\n
"
,
host
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -461,7 +459,7 @@ pq_getinserv(struct sockaddr_in * sin, char *host, char *serv)
return
pq_getinaddr
(
sin
,
host
,
atoi
(
serv
));
if
(
!
(
ss
=
getservbyname
(
serv
,
NULL
)))
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: pq_getinserv: unknown service: %s
\n
"
,
serv
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -521,7 +519,7 @@ StreamServerPort(char *hostName, short portName, int *fdP)
if
((
fd
=
socket
(
family
,
SOCK_STREAM
,
0
))
<
0
)
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamServerPort: socket() failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -531,7 +529,7 @@ StreamServerPort(char *hostName, short portName, int *fdP)
if
((
setsockopt
(
fd
,
SOL_SOCKET
,
SO_REUSEADDR
,
(
char
*
)
&
one
,
sizeof
(
one
)))
==
-
1
)
{
s
printf
(
PQerrormsg
,
s
nprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamServerPort: setsockopt (SO_REUSEADDR) failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
...
...
@@ -576,18 +574,20 @@ StreamServerPort(char *hostName, short portName, int *fdP)
err
=
bind
(
fd
,
&
saddr
.
sa
,
len
);
if
(
err
<
0
)
{
sprintf
(
PQerrormsg
,
"FATAL: StreamServerPort: bind() failed: errno=%d
\n
"
,
errno
);
snprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamServerPort: bind() failed: errno=%d
\n
"
,
errno
);
pqdebug
(
"%s"
,
PQerrormsg
);
strcat
(
PQerrormsg
,
"
\t
Is another postmaster already running on that port?
\n
"
);
if
(
family
==
AF_UNIX
)
sprintf
(
PQerrormsg
+
strlen
(
PQerrormsg
),
"
\t
If not, remove socket node (%s) and retry.
\n
"
,
sock_path
);
{
snprintf
(
PQerrormsg
+
strlen
(
PQerrormsg
),
ERROR_MSG_LENGTH
,
"
\t
If not, remove socket node (%s) and retry.
\n
"
,
sock_path
);
}
else
{
strcat
(
PQerrormsg
,
"
\t
If not, wait a few seconds and retry.
\n
"
);
}
fputs
(
PQerrormsg
,
stderr
);
return
STATUS_ERROR
;
}
...
...
@@ -723,9 +723,8 @@ StreamOpen(char *hostName, short portName, Port *port)
{
if
(
!
(
hp
=
gethostbyname
(
hostName
))
||
hp
->
h_addrtype
!=
AF_INET
)
{
sprintf
(
PQerrormsg
,
"FATAL: StreamOpen: unknown hostname: %s
\n
"
,
hostName
);
snprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamOpen: unknown hostname: %s
\n
"
,
hostName
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
return
STATUS_ERROR
;
...
...
@@ -745,9 +744,8 @@ StreamOpen(char *hostName, short portName, Port *port)
/* connect to the server */
if
((
port
->
sock
=
socket
(
port
->
raddr
.
sa
.
sa_family
,
SOCK_STREAM
,
0
))
<
0
)
{
sprintf
(
PQerrormsg
,
"FATAL: StreamOpen: socket() failed: errno=%d
\n
"
,
errno
);
snprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamOpen: socket() failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
return
STATUS_ERROR
;
...
...
@@ -755,9 +753,8 @@ StreamOpen(char *hostName, short portName, Port *port)
err
=
connect
(
port
->
sock
,
&
port
->
raddr
.
sa
,
len
);
if
(
err
<
0
)
{
sprintf
(
PQerrormsg
,
"FATAL: StreamOpen: connect() failed: errno=%d
\n
"
,
errno
);
snprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamOpen: connect() failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
return
STATUS_ERROR
;
...
...
@@ -766,9 +763,8 @@ StreamOpen(char *hostName, short portName, Port *port)
/* fill in the client address */
if
(
getsockname
(
port
->
sock
,
&
port
->
laddr
.
sa
,
&
len
)
<
0
)
{
sprintf
(
PQerrormsg
,
"FATAL: StreamOpen: getsockname() failed: errno=%d
\n
"
,
errno
);
snprintf
(
PQerrormsg
,
ERROR_MSG_LENGTH
,
"FATAL: StreamOpen: getsockname() failed: errno=%d
\n
"
,
errno
);
fputs
(
PQerrormsg
,
stderr
);
pqdebug
(
"%s"
,
PQerrormsg
);
return
STATUS_ERROR
;
...
...
src/backend/libpq/util.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/Attic/util.c,v 1.5 1997/09/08 02:23:21 momjian Exp $
* $Id: util.c,v 1.6 1998/12/14 06:50:27 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/nodes/outfuncs.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.50 1998/12/14 00:01:47 thomas Exp $
* $Id: outfuncs.c,v 1.51 1998/12/14 06:50:28 scrappy Exp $
*
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
...
...
src/backend/parser/analyze.c
View file @
df1468e2
...
...
@@ -5,9 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.90 1998/12/04 15:34:28 thomas Exp $
* $Id: analyze.c,v 1.91 1998/12/14 06:50:32 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment