我正在用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'。 –