@@ -56,6 +56,7 @@ def parse(cls, sslmode):
56
56
'direct_tls' ,
57
57
'server_settings' ,
58
58
'target_session_attrs' ,
59
+ 'krbsrvname' ,
59
60
])
60
61
61
62
@@ -261,7 +262,7 @@ def _dot_postgresql_path(filename) -> typing.Optional[pathlib.Path]:
261
262
def _parse_connect_dsn_and_args (* , dsn , host , port , user ,
262
263
password , passfile , database , ssl ,
263
264
direct_tls , server_settings ,
264
- target_session_attrs ):
265
+ target_session_attrs , krbsrvname ):
265
266
# `auth_hosts` is the version of host information for the purposes
266
267
# of reading the pgpass file.
267
268
auth_hosts = None
@@ -383,6 +384,11 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user,
383
384
if target_session_attrs is None :
384
385
target_session_attrs = dsn_target_session_attrs
385
386
387
+ if 'krbsrvname' in query :
388
+ val = query .pop ('krbsrvname' )
389
+ if krbsrvname is None :
390
+ krbsrvname = val
391
+
386
392
if query :
387
393
if server_settings is None :
388
394
server_settings = query
@@ -654,7 +660,8 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user,
654
660
user = user , password = password , database = database , ssl = ssl ,
655
661
sslmode = sslmode , direct_tls = direct_tls ,
656
662
server_settings = server_settings ,
657
- target_session_attrs = target_session_attrs )
663
+ target_session_attrs = target_session_attrs ,
664
+ krbsrvname = krbsrvname )
658
665
659
666
return addrs , params
660
667
@@ -665,7 +672,7 @@ def _parse_connect_arguments(*, dsn, host, port, user, password, passfile,
665
672
max_cached_statement_lifetime ,
666
673
max_cacheable_statement_size ,
667
674
ssl , direct_tls , server_settings ,
668
- target_session_attrs ):
675
+ target_session_attrs , krbsrvname ):
669
676
local_vars = locals ()
670
677
for var_name in {'max_cacheable_statement_size' ,
671
678
'max_cached_statement_lifetime' ,
@@ -694,7 +701,8 @@ def _parse_connect_arguments(*, dsn, host, port, user, password, passfile,
694
701
password = password , passfile = passfile , ssl = ssl ,
695
702
direct_tls = direct_tls , database = database ,
696
703
server_settings = server_settings ,
697
- target_session_attrs = target_session_attrs )
704
+ target_session_attrs = target_session_attrs ,
705
+ krbsrvname = krbsrvname )
698
706
699
707
config = _ClientConfiguration (
700
708
command_timeout = command_timeout ,
0 commit comments