@@ -56,6 +56,7 @@ def parse(cls, sslmode):
5656 'direct_tls' ,
5757 'server_settings' ,
5858 'target_session_attrs' ,
59+ 'krbsrvname' ,
5960 ])
6061
6162
@@ -261,7 +262,7 @@ def _dot_postgresql_path(filename) -> typing.Optional[pathlib.Path]:
261262def _parse_connect_dsn_and_args (* , dsn , host , port , user ,
262263 password , passfile , database , ssl ,
263264 direct_tls , server_settings ,
264- target_session_attrs ):
265+ target_session_attrs , krbsrvname ):
265266 # `auth_hosts` is the version of host information for the purposes
266267 # of reading the pgpass file.
267268 auth_hosts = None
@@ -383,6 +384,11 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user,
383384 if target_session_attrs is None :
384385 target_session_attrs = dsn_target_session_attrs
385386
387+ if 'krbsrvname' in query :
388+ val = query .pop ('krbsrvname' )
389+ if krbsrvname is None :
390+ krbsrvname = val
391+
386392 if query :
387393 if server_settings is None :
388394 server_settings = query
@@ -654,7 +660,8 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user,
654660 user = user , password = password , database = database , ssl = ssl ,
655661 sslmode = sslmode , direct_tls = direct_tls ,
656662 server_settings = server_settings ,
657- target_session_attrs = target_session_attrs )
663+ target_session_attrs = target_session_attrs ,
664+ krbsrvname = krbsrvname )
658665
659666 return addrs , params
660667
@@ -665,7 +672,7 @@ def _parse_connect_arguments(*, dsn, host, port, user, password, passfile,
665672 max_cached_statement_lifetime ,
666673 max_cacheable_statement_size ,
667674 ssl , direct_tls , server_settings ,
668- target_session_attrs ):
675+ target_session_attrs , krbsrvname ):
669676 local_vars = locals ()
670677 for var_name in {'max_cacheable_statement_size' ,
671678 'max_cached_statement_lifetime' ,
@@ -694,7 +701,8 @@ def _parse_connect_arguments(*, dsn, host, port, user, password, passfile,
694701 password = password , passfile = passfile , ssl = ssl ,
695702 direct_tls = direct_tls , database = database ,
696703 server_settings = server_settings ,
697- target_session_attrs = target_session_attrs )
704+ target_session_attrs = target_session_attrs ,
705+ krbsrvname = krbsrvname )
698706
699707 config = _ClientConfiguration (
700708 command_timeout = command_timeout ,
0 commit comments