88 *
99 *
1010 * IDENTIFICATION
11- * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.76 2002/03/02 21:39:25 momjian Exp $
11+ * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.77 2002/03/04 01:46:02 tgl Exp $
1212 *
1313 *-------------------------------------------------------------------------
1414 */
@@ -105,45 +105,34 @@ pg_krb4_recvauth(Port *port)
105105version );
106106if (status != KSUCCESS )
107107{
108- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
109- "pg_krb4_recvauth: kerberos error: %s\n" ,
110- krb_err_txt [status ]);
111- fputs (PQerrormsg ,stderr );
112- pqdebug ("%s" ,PQerrormsg );
108+ elog (LOG ,"pg_krb4_recvauth: kerberos error: %s" ,
109+ krb_err_txt [status ]);
113110return STATUS_ERROR ;
114111}
115- if (strncmp (version ,PG_KRB4_VERSION ,KRB_SENDAUTH_VLEN ))
112+ if (strncmp (version ,PG_KRB4_VERSION ,KRB_SENDAUTH_VLEN )!= 0 )
116113{
117- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
118- "pg_krb4_recvauth: protocol version != \"%s\"\n" ,
119- PG_KRB4_VERSION );
120- fputs (PQerrormsg ,stderr );
121- pqdebug ("%s" ,PQerrormsg );
114+ elog (LOG ,"pg_krb4_recvauth: protocol version \"%s\" != \"%s\"" ,
115+ version ,PG_KRB4_VERSION );
122116return STATUS_ERROR ;
123117}
124- if (strncmp (port -> user ,auth_data .pname ,SM_USER ))
118+ if (strncmp (port -> user ,auth_data .pname ,SM_USER )!= 0 )
125119{
126- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
127- "pg_krb4_recvauth: name \"%s\" != \"%s\"\n" ,
128- port -> user ,auth_data .pname );
129- fputs (PQerrormsg ,stderr );
130- pqdebug ("%s" ,PQerrormsg );
120+ elog (LOG ,"pg_krb4_recvauth: name \"%s\" != \"%s\"" ,
121+ port -> user ,auth_data .pname );
131122return STATUS_ERROR ;
132123}
133124return STATUS_OK ;
134125}
135126
136127#else
128+
137129static int
138130pg_krb4_recvauth (Port * port )
139131{
140- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
141- "pg_krb4_recvauth: Kerberos not implemented on this server.\n" );
142- fputs (PQerrormsg ,stderr );
143- pqdebug ("%s" ,PQerrormsg );
144-
132+ elog (LOG ,"pg_krb4_recvauth: Kerberos not implemented on this server" );
145133return STATUS_ERROR ;
146134}
135+
147136#endif /* KRB4 */
148137
149138
@@ -201,19 +190,17 @@ pg_krb5_init(void)
201190retval = krb5_init_context (& pg_krb5_context );
202191if (retval )
203192{
204- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
205- "pg_krb5_init: krb5_init_context returned"
206- " Kerberos error %d\n" ,retval );
193+ elog (LOG ,"pg_krb5_init: krb5_init_context returned Kerberos error %d" ,
194+ retval );
207195com_err ("postgres" ,retval ,"while initializing krb5" );
208196return STATUS_ERROR ;
209197}
210198
211199retval = krb5_kt_resolve (pg_krb5_context ,pg_krb_server_keyfile ,& pg_krb5_keytab );
212200if (retval )
213201{
214- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
215- "pg_krb5_init: krb5_kt_resolve returned"
216- " Kerberos error %d\n" ,retval );
202+ elog (LOG ,"pg_krb5_init: krb5_kt_resolve returned Kerberos error %d" ,
203+ retval );
217204com_err ("postgres" ,retval ,"while resolving keytab file %s" ,
218205pg_krb_server_keyfile );
219206krb5_free_context (pg_krb5_context );
@@ -224,9 +211,8 @@ pg_krb5_init(void)
224211KRB5_NT_SRV_HST ,& pg_krb5_server );
225212if (retval )
226213{
227- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
228- "pg_krb5_init: krb5_sname_to_principal returned"
229- " Kerberos error %d\n" ,retval );
214+ elog (LOG ,"pg_krb5_init: krb5_sname_to_principal returned Kerberos error %d" ,
215+ retval );
230216com_err ("postgres" ,retval ,
231217"while getting server principal for service %s" ,
232218PG_KRB_SRVNAM );
@@ -269,9 +255,8 @@ pg_krb5_recvauth(Port *port)
269255pg_krb5_server ,0 ,pg_krb5_keytab ,& ticket );
270256if (retval )
271257{
272- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
273- "pg_krb5_recvauth: krb5_recvauth returned"
274- " Kerberos error %d\n" ,retval );
258+ elog (LOG ,"pg_krb5_recvauth: krb5_recvauth returned Kerberos error %d" ,
259+ retval );
275260com_err ("postgres" ,retval ,"from krb5_recvauth" );
276261return STATUS_ERROR ;
277262}
@@ -294,9 +279,8 @@ pg_krb5_recvauth(Port *port)
294279#endif
295280if (retval )
296281{
297- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
298- "pg_krb5_recvauth: krb5_unparse_name returned"
299- " Kerberos error %d\n" ,retval );
282+ elog (LOG ,"pg_krb5_recvauth: krb5_unparse_name returned Kerberos error %d" ,
283+ retval );
300284com_err ("postgres" ,retval ,"while unparsing client name" );
301285krb5_free_ticket (pg_krb5_context ,ticket );
302286krb5_auth_con_free (pg_krb5_context ,auth_context );
@@ -306,9 +290,8 @@ pg_krb5_recvauth(Port *port)
306290kusername = pg_an_to_ln (kusername );
307291if (strncmp (port -> user ,kusername ,SM_USER ))
308292{
309- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
310- "pg_krb5_recvauth: user name \"%s\" != krb5 name \"%s\"\n" ,
311- port -> user ,kusername );
293+ elog (LOG ,"pg_krb5_recvauth: user name \"%s\" != krb5 name \"%s\"" ,
294+ port -> user ,kusername );
312295ret = STATUS_ERROR ;
313296}
314297else
@@ -322,16 +305,14 @@ pg_krb5_recvauth(Port *port)
322305}
323306
324307#else
308+
325309static int
326310pg_krb5_recvauth (Port * port )
327311{
328- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
329- "pg_krb5_recvauth: Kerberos not implemented on this server.\n" );
330- fputs (PQerrormsg ,stderr );
331- pqdebug ("%s" ,PQerrormsg );
332-
312+ elog (LOG ,"pg_krb5_recvauth: Kerberos not implemented on this server" );
333313return STATUS_ERROR ;
334314}
315+
335316#endif /* KRB5 */
336317
337318
@@ -388,10 +369,7 @@ recv_and_check_passwordv0(Port *port)
388369
389370if (user == NULL || password == NULL )
390371{
391- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
392- "pg_password_recvauth: badly formed password packet.\n" );
393- fputs (PQerrormsg ,stderr );
394- pqdebug ("%s" ,PQerrormsg );
372+ elog (LOG ,"pg_password_recvauth: badly formed password packet" );
395373status = STATUS_ERROR ;
396374}
397375else
@@ -530,7 +508,7 @@ ClientAuthentication(Port *port)
530508if (port -> raddr .sa .sa_family == AF_INET )
531509hostinfo = inet_ntoa (port -> raddr .in .sin_addr );
532510elog (FATAL ,
533- "No pg_hba.conf entry for host %s, user %s, database %s" ,
511+ "No pg_hba.conf entry for host %s, user %s, database %s" ,
534512hostinfo ,port -> user ,port -> database );
535513break ;
536514}
@@ -563,8 +541,7 @@ ClientAuthentication(Port *port)
563541int on = 1 ;
564542
565543if (setsockopt (port -> sock ,0 ,LOCAL_CREDS ,& on ,sizeof (on ))< 0 )
566- elog (FATAL ,
567- "pg_local_sendauth: can't do setsockopt: %s\n" ,strerror (errno ));
544+ elog (FATAL ,"pg_local_sendauth: can't do setsockopt: %m" );
568545}
569546#endif
570547if (port -> raddr .sa .sa_family == AF_UNIX )
@@ -653,17 +630,12 @@ pam_passwd_conv_proc(int num_msg, const struct pam_message ** msg, struct pam_re
653630switch (msg [0 ]-> msg_style )
654631{
655632case PAM_ERROR_MSG :
656- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
657- "pam_passwd_conv_proc: Error from underlying PAM layer: '%s'\n" ,msg [0 ]-> msg );
658- fputs (PQerrormsg ,stderr );
659- pqdebug ("%s" ,PQerrormsg );
633+ elog (LOG ,"pam_passwd_conv_proc: Error from underlying PAM layer: '%s'" ,
634+ msg [0 ]-> msg );
660635return PAM_CONV_ERR ;
661636default :
662- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
663- "pam_passwd_conv_proc: Unexpected PAM conversation %d/'%s'\n" ,
664- msg [0 ]-> msg_style ,msg [0 ]-> msg );
665- fputs (PQerrormsg ,stderr );
666- pqdebug ("%s" ,PQerrormsg );
637+ elog (LOG ,"pam_passwd_conv_proc: Unexpected PAM conversation %d/'%s'" ,
638+ msg [0 ]-> msg_style ,msg [0 ]-> msg );
667639return PAM_CONV_ERR ;
668640}
669641}
@@ -691,12 +663,11 @@ pam_passwd_conv_proc(int num_msg, const struct pam_message ** msg, struct pam_re
691663
692664initStringInfo (& buf );
693665pq_getstr (& buf );
694- elog (DEBUG5 ,"received PAM packet with len=%d, pw=%s\n " ,len ,buf .data );
666+ elog (DEBUG5 ,"received PAM packet with len=%d, pw=%s" ,len ,buf .data );
695667
696668if (strlen (buf .data )== 0 )
697669{
698- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,"pam_passwd_conv_proc: no password\n" );
699- fputs (PQerrormsg ,stderr );
670+ elog (LOG ,"pam_passwd_conv_proc: no password" );
700671return PAM_CONV_ERR ;
701672}
702673appdata_ptr = buf .data ;
@@ -709,9 +680,7 @@ pam_passwd_conv_proc(int num_msg, const struct pam_message ** msg, struct pam_re
709680* resp = calloc (num_msg ,sizeof (struct pam_response ));
710681if (!* resp )
711682{
712- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,"pam_passwd_conv_proc: Out of memory!\n" );
713- fputs (PQerrormsg ,stderr );
714- pqdebug ("%s" ,PQerrormsg );
683+ elog (LOG ,"pam_passwd_conv_proc: Out of memory!" );
715684if (buf .data )
716685pfree (buf .data );
717686return PAM_CONV_ERR ;
@@ -755,11 +724,8 @@ CheckPAMAuth(Port *port, char *user, char *password)
755724
756725if (retval != PAM_SUCCESS )
757726{
758- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
759- "CheckPAMAuth: Failed to create PAM authenticator: '%s'\n" ,
760- pam_strerror (pamh ,retval ));
761- fputs (PQerrormsg ,stderr );
762- pqdebug ("%s" ,PQerrormsg );
727+ elog (LOG ,"CheckPAMAuth: Failed to create PAM authenticator: '%s'" ,
728+ pam_strerror (pamh ,retval ));
763729pam_passwd = NULL ;/* Unset pam_passwd */
764730return STATUS_ERROR ;
765731}
@@ -768,11 +734,8 @@ CheckPAMAuth(Port *port, char *user, char *password)
768734
769735if (retval != PAM_SUCCESS )
770736{
771- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
772- "CheckPAMAuth: pam_set_item(PAM_USER) failed: '%s'\n" ,
773- pam_strerror (pamh ,retval ));
774- fputs (PQerrormsg ,stderr );
775- pqdebug ("%s" ,PQerrormsg );
737+ elog (LOG ,"CheckPAMAuth: pam_set_item(PAM_USER) failed: '%s'" ,
738+ pam_strerror (pamh ,retval ));
776739pam_passwd = NULL ;/* Unset pam_passwd */
777740return STATUS_ERROR ;
778741}
@@ -781,11 +744,8 @@ CheckPAMAuth(Port *port, char *user, char *password)
781744
782745if (retval != PAM_SUCCESS )
783746{
784- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
785- "CheckPAMAuth: pam_set_item(PAM_CONV) failed: '%s'\n" ,
786- pam_strerror (pamh ,retval ));
787- fputs (PQerrormsg ,stderr );
788- pqdebug ("%s" ,PQerrormsg );
747+ elog (LOG ,"CheckPAMAuth: pam_set_item(PAM_CONV) failed: '%s'" ,
748+ pam_strerror (pamh ,retval ));
789749pam_passwd = NULL ;/* Unset pam_passwd */
790750return STATUS_ERROR ;
791751}
@@ -794,11 +754,8 @@ CheckPAMAuth(Port *port, char *user, char *password)
794754
795755if (retval != PAM_SUCCESS )
796756{
797- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
798- "CheckPAMAuth: pam_authenticate failed: '%s'\n" ,
799- pam_strerror (pamh ,retval ));
800- fputs (PQerrormsg ,stderr );
801- pqdebug ("%s" ,PQerrormsg );
757+ elog (LOG ,"CheckPAMAuth: pam_authenticate failed: '%s'" ,
758+ pam_strerror (pamh ,retval ));
802759pam_passwd = NULL ;/* Unset pam_passwd */
803760return STATUS_ERROR ;
804761}
@@ -807,11 +764,8 @@ CheckPAMAuth(Port *port, char *user, char *password)
807764
808765if (retval != PAM_SUCCESS )
809766{
810- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
811- "CheckPAMAuth: pam_acct_mgmt failed: '%s'\n" ,
812- pam_strerror (pamh ,retval ));
813- fputs (PQerrormsg ,stderr );
814- pqdebug ("%s" ,PQerrormsg );
767+ elog (LOG ,"CheckPAMAuth: pam_acct_mgmt failed: '%s'" ,
768+ pam_strerror (pamh ,retval ));
815769pam_passwd = NULL ;/* Unset pam_passwd */
816770return STATUS_ERROR ;
817771}
@@ -820,11 +774,8 @@ CheckPAMAuth(Port *port, char *user, char *password)
820774
821775if (retval != PAM_SUCCESS )
822776{
823- snprintf (PQerrormsg ,PQERRORMSG_LENGTH ,
824- "CheckPAMAuth: Failed to release PAM authenticator: '%s'\n" ,
825- pam_strerror (pamh ,retval ));
826- fputs (PQerrormsg ,stderr );
827- pqdebug ("%s" ,PQerrormsg );
777+ elog (LOG ,"CheckPAMAuth: Failed to release PAM authenticator: '%s'" ,
778+ pam_strerror (pamh ,retval ));
828779}
829780
830781pam_passwd = NULL ;/* Unset pam_passwd */
@@ -854,8 +805,8 @@ recv_and_check_password_packet(Port *port)
854805return STATUS_EOF ;
855806}
856807
857- elog (DEBUG5 ,"received password packet with len=%d, pw=%s\n " ,
858- len ,buf .data );
808+ elog (DEBUG5 ,"received password packet with len=%d, pw=%s" ,
809+ len ,buf .data );
859810
860811result = checkPassword (port ,port -> user ,buf .data );
861812pfree (buf .data );
@@ -907,7 +858,7 @@ old_be_recvauth(Port *port)
907858break ;
908859
909860default :
910- fprintf ( stderr ,"Invalid startup message type: %u\n " ,msgtype );
861+ elog ( LOG ,"Invalid startup message type: %u" ,msgtype );
911862
912863return STATUS_ERROR ;
913864}