我正在用C开发一个简单的ejabberd客户端,使用libstrophe。它连接并开始处理消息,因为它应该这样做。Strophe不可恢复的TLS错误
但是,经过一段时间(ejabberd服务器的两三次ping后),我的连接关闭并且状态设置为DISCONNECTED
。下面是调试线的尾部:
xmpp DEBUG Unrecoverable TLS error, 5.
xmpp DEBUG Closing socket.
DEBUG: disconnected event DEBUG Stopping event loop.
event DEBUG Event
oop completed.
我初始化并连接如下。
xmpp_initialize();
/* read connection params */
if(set_xmpp_conn_params(&conn_params) < 0) {
fprintf(stderr, "Could not retrieve connection params from %s\n",
SERVER_CONF_FILE);
return -1;
}
/* initialize the XMPP logger */
xmpp_log = xmpp_get_default_logger(XMPP_LOG_LEVEL);
xmpp_ctx = xmpp_ctx_new(NULL, xmpp_log);
/* create a connection */
xmpp_conn = xmpp_conn_new(xmpp_ctx);
/* login */
xmpp_conn_set_jid(xmpp_conn, conn_params.jid);
xmpp_conn_set_pass(xmpp_conn, conn_params.password);
/* create a client */
xmpp_connect_client( xmpp_conn, conn_params.host, 0,
agent_conn_handler, xmpp_ctx);
/* enter the event loop */
xmpp_run(xmpp_ctx);
/* the code below is executed
whenever connection handler @agent_conn_handler exits */
/* release the connection and context */
xmpp_conn_release(xmpp_conn);
xmpp_ctx_free(xmpp_ctx);
为什么我得到那个TLS错误信息?
谢谢。
你对TLS使用openssl,gnutls或schannel吗? –
是的,我正在使用'openssl'。 –