1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

python: wrap 'import dckeytab' in an explanatory function

The samba.dckeytab module has magic effects on samba.net, but never
appears to be used. That can be confusing, both to people and to
linters. Here we wrap that confusion up into a well-commented
function, so we never again have to wonder why the unused import is
there.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: David Mulder <dmulder@samba.org>
This commit is contained in:
Douglas Bagnall
2020-07-04 16:20:47 +12:00
committed by Andreas Schneider
parent 98f6ece5ad
commit 914226bf52
3 changed files with 24 additions and 2 deletions

View File

@ -386,6 +386,23 @@ def arcfour_encrypt(key, data):
return arcfour_crypt_blob(data, key)
def enable_net_export_keytab():
"""This function modifies the samba.net.Net class to contain
an export_keytab() method."""
# This looks very strange because it is.
#
# The dckeytab modules contains nothing, but the act of importing
# it pushes a method into samba.net.Net. It ended up this way
# because Net.export_keytab() only works on Heimdal builds, and
# people sometimes want to compile Samba without Heimdal while
# still having a working samba-tool.
#
# There is probably a better way to do this than a magic module
# import (yes, that's a FIXME if you can be bothered).
from samba import net
from samba import dckeytab
version = _glue.version
interface_ips = _glue.interface_ips
fault_setup = _glue.fault_setup

View File

@ -40,6 +40,7 @@ from samba import NTSTATUSError
from samba import werror
from getpass import getpass
from samba.net import Net, LIBNET_JOIN_AUTOMATIC
from samba import enable_net_export_keytab
import samba.ntacls
from samba.join import join_RODC, join_DC
from samba.auth import system_session
@ -162,7 +163,7 @@ def get_testparm_var(testparm, smbconf, varname):
try:
import samba.dckeytab
enable_net_export_keytab()
except ImportError:
cmd_domain_export_keytab = None
else:

View File

@ -20,11 +20,15 @@ import os
import sys
import string
from samba.net import Net
import samba.dckeytab
from samba import enable_net_export_keytab
from samba import tests
from samba.param import LoadParm
enable_net_export_keytab()
def open_bytes(filename):
if sys.version_info[0] == 3:
return open(filename, errors='ignore')