Libstrophe を使用して C でチャット クライアントを作成しようとしています。https://github.com/metajack/libstrophe/blob/master/examples/active.cにある次のコード例を参照しました 。コードには、xmpp との接続を確立するための xmpp_connect_client(...) の呼び出しがあります。サーバ。
int main(int argc, char **argv)
{
xmpp_ctx_t *ctx;
xmpp_conn_t *conn;
if (argc != 3) {
fprintf(stderr, "Usage: active <jid> <pass>\n\n");
return 1;
}
/* initialize lib */
xmpp_initialize();
/* create a context */
ctx = xmpp_ctx_new(NULL, NULL);
/* create a connection */
conn = xmpp_conn_new(ctx);
/* setup authentication information */
xmpp_conn_set_jid(conn, argv[1]);
xmpp_conn_set_pass(conn, argv[2]);
/* initiate connection */
xmpp_connect_client(conn, "talk.google.com", 0, conn_handler, ctx);
/* start the event loop */
xmpp_run(ctx);
/* release our connection and context */
xmpp_conn_release(conn);
xmpp_ctx_free(ctx);
/* shutdown lib */
xmpp_shutdown();
return 0;
しかし、認証はどこで行われるのでしょうか? libstrophe のソース コードを調べたところ、 _auth(..) という関数を含む C ファイル auth.c https://github.com/metajack/libstrophe/blob/master/src/auth.cが見つかりました。コードで _auth(..) を使用しようとしましたが、認証が正しく実行されません。つまり、ユーザー名やパスワードが間違っていても通知されません。私のエンティティを認証する正しい方法を教えてください。