Q:错误描述如下

  1. Traceback(most recent call last):
    File"/tails-share/features/scripts/otr-bot.py", line 197,in<module>
    otr_bot.serve_forever()
    File"/usr/lib/python2.7/dist-packages/jabberbot.py", line 715,in serve_forever
    conn = self.connect()
    File"/tails-share/features/scripts/otr-bot.py", line 82,in connect
    conres = conn.connect((conn_server, int(conn_port)))
    File"/usr/lib/python2.7/dist-packages/xmpp/client.py", line 205,in connect
    while not self.TLS.starttls and self.Process(1): pass
    File"/usr/lib/python2.7/dist-packages/xmpp/dispatcher.py", line 303,in dispatch
    handler['func'](session,stanza)
    File"/usr/lib/python2.7/dist-packages/xmpp/transports.py", line 330,inStartTLSHandler
    self._startSSL()
    File"/usr/lib/python2.7/dist-packages/xmpp/transports.py", line 309,in _startSSL
    tcpsock._sslIssuer = tcpsock._sslObj.issuer()
    AttributeError:'_ssl._SSLSocket' object has no attribute 'issuer'

该问题是xmpp新版的python中存在的一个bug。可以修改 transports.py 文件进行修复:
修改如下:( - 行标识删除 +行标识添加)

  1. -import socket,select,base64,dispatcher,sys
    +import socket,ssl,select,base64,dispatcher,sys
    from simplexml import ustr
    from client importPlugIn
    from protocol import*
    @@-312,9+312,9@@class TLS(PlugIn):
    """ Immidiatedly switch socket to TLS mode. Used internally."""
    """ Here we should switch pending_data to hint mode."""
    tcpsock=self._owner.Connection
    - tcpsock._sslObj = socket.ssl(tcpsock._sock,None,None)
    - tcpsock._sslIssuer = tcpsock._sslObj.issuer()
    - tcpsock._sslServer = tcpsock._sslObj.server()
    + tcpsock._sslObj = ssl.wrap_socket(tcpsock._sock,None,None)
    + tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
    + tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
    tcpsock._recv = tcpsock._sslObj.read
    tcpsock._send = tcpsock._sslObj.write

关于xmpp协议发送消息,登录认证SSL报错的问题的更多相关文章

  1. java爬虫爬取https协议的网站时,SSL报错, java.lang.IllegalArgumentException TSLv1.2 报错

    目前在广州一家小公司实习,这里的学习环境还是挺好的,今天公司从业十几年的大佬让我检查一下几年前的爬虫程序是否还能使用…… 我从myeclipse上check out了大佬的程序,放到workspace ...

  2. Java 实现 SSH 协议的客户端登录认证方式--转载

    背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...

  3. XMPP协议之消息回执解决方案

    苦恼中寻找方法 在开始做即时通信时就知道了消息回执这个概念,目的是解决通讯消息因为各种原因未送达对方而提供的一种保障机制.产生这个问题的原因主要是网络不稳定.服务器或者客户端一些异常导致没有接收到消息 ...

  4. 解决Windows下运行php Composer出现SSL报错的问题

    解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05   在windows下运行composer却出现SSL报错: E:\www>php -f  ...

  5. 解决Win7下运行php Composer出现SSL报错的问题

    以前都在linux环境使用php composer.今天尝试在win7下运行composer却出现SSL报错: D:\data\www\mmoyu\symapp>php -f %phprc%\c ...

  6. 登录DSCCC控制台报错提示:安装错误代码: 3

    登录DSCCC控制台报错内容:读取安装配置时出错 检查目录服务控制中心状态时出现意外错误. 显示详细资料 隐藏详细资料 安装错误代码: 3 堆栈: com.sun.directory.common.s ...

  7. spring JMS在接收消息的时候总是报错

    spring JMS在接收消息的时候总是报错 org.springframework.jms.UncategorizedJmsException: Uncategorized exception oc ...

  8. Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"

    Nginx配置SSL报错 nginx: [emerg] unknown directive "ssl"     出现如图所示错误,处理办法如下 去nginx解压目录下执行 ./co ...

  9. XMPP接受发送消息

    在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互 ...

随机推荐

  1. scala集合List和Set

    一:List集合 1.创建 2.简单使用(两个部分) 3.Nill空集合 4.创建一个可变的list集合 二:Set 1.说明 无序,不重复 2.新建 3.可变

  2. 安装VS 2015完成后,VS2012 打开报错

    安装VS 2015完成后,VS2012 打开报错 打开VS2012Web项目,弹出错误提示: asp.net 4.0 has not been registered on the web server ...

  3. Unix内核中打开文件的表示

    Unix内核中已经打开文件,通过三种数据结构表示: 每个进程的进程表中的记录项,包含打开的文件的文件描述符表,与之关联的是: 文件描述符标识 指向一个文件表项的指针 内核为所有打开文件维持一张文件表, ...

  4. 使用Jmeter监测服务器cpu、内存等性能

    jmeter中可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务. 1.下载JMeterPlugins-Standard-1.4.0.zip插件.下载后将JMet ...

  5. Mac上安装django

    参考:https://docs.djangoproject.com/en/1.9/topics/install/#installing-official-release 升级pip sudo pip ...

  6. h5的离线缓存机制

    什么是Manifest: 其实Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件.资源,当第一次打开时,浏览器会自动缓存相应的资源. Manifest 的特点: 离线浏览: ...

  7. LeetCode Add Two Numbers II

    原题链接在这里:https://leetcode.com/problems/add-two-numbers-ii/ 题目: You are given two linked lists represe ...

  8. Python开发【前端】:CSS

    css样式选择器 标签上设置style属性: <body> <div style="background-color: #2459a2;height: 48px;" ...

  9. JavaScript:异步 setTimeout

    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. function showDate(){ var date=new Date(); console.log(date); } ...

  10. hadoop 性能调优与运维

    hadoop 性能调优与运维 . 硬件选择 . 操作系统调优与jvm调优 . hadoop运维 硬件选择 1) hadoop运行环境 2)  原则一: 主节点可靠性要好于从节点 原则二:多路多核,高频 ...