首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Python2.7中为ldap设置超时

无法在Python2.7中为ldap设置超时
EN

Stack Overflow用户
提问于 2020-10-27 18:40:52
回答 1查看 174关注 0票数 0

我想为ldap库( python 2.4.15-2.el7.x86_64)和python 2.7设置一个“超时值”。

我强迫我的/etc/主机解析一个不存在的IP地址,以提高超时。

我学习了几个例子,没有运气地看了一下文档或examples 就像这个

到目前为止,我已经尝试在初始化之前强制执行全局超时:

代码语言:javascript
复制
ldap.set_option(ldap.OPT_NETWORK_TIMEOUT, 1)
ldap.set_option(ldap.OPT_TIMEOUT, 1)
ldap.protocol_version=ldap.VERSION3

在对象级别强制使用相同的值:

代码语言:javascript
复制
ldap_obj = ldap.initialize("ldap://%s:389" % LDAPSERVER ,trace_level=9)
ldap_obj.set_option(ldap.OPT_NETWORK_TIMEOUT, 1)
ldap_obj.set_option(ldap.OPT_TIMEOUT, 1)

我也尝试过:

代码语言:javascript
复制
ldap.network_timeout = 1
ldap.timelimit = 1

并使用了这两种方法,搜索和search_st (带有超时的同步形式)

最后,这是代码:

代码语言:javascript
复制
def testLDAPConex( LDAPSERVER ) :
    """
    Check ldap
    """
    ldap.set_option(ldap.OPT_NETWORK_TIMEOUT, 1)
    ldap.set_option(ldap.OPT_TIMEOUT, 1)
    ldap.protocol_version=ldap.VERSION3
    ldap.network_timeout = 1
    ldap.timelimit = 1
    try:
        ldap_obj = ldap.initialize("ldap://%s:389" % LDAPSERVER ,trace_level=9)
        ldap_result_id = ldap_obj.search("ou=people,c=this,o=place", ldap.SCOPE_SUBTREE, "cn=user")

我已经打印了对象OPT_NETWORK_TIMEOUTOPT_TIMEOUT的常量,正确地分配了值。

每次执行时间是56s,我无法控制超时的秒数。

顺便说一句,python3中的相同代码确实按预期工作:

代码语言:javascript
复制
real    0m10,094s
user    0m0,072s
sys 0m0,013s
EN

回答 1

Stack Overflow用户

发布于 2020-10-28 15:51:54

经过一些测试,我决定将VM回滚到以前的状态。

网络团队正在对整个网络配置进行更改,这些更改可能已经改变了界面上的行为,以及当包通过线路发送进来时出现的某种错误:

代码语言:javascript
复制
ldap_result_id = ldap_obj.search("ou=people,c=this,o=place", ldap.SCOPE_SUBTREE, "cn=user")

在还原VM (其中包括重新启动)之后,无法达到LDAP的错误将如预期的那样引发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64560955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档