X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fchat.git;a=blobdiff_plain;f=tictactoe.c;fp=tictactoe.c;h=af9de7c110d0807cca052a32baf9d73ab17d65d1;hp=ed74e49d5151096749cc8b2658ed812d4e956a92;hb=2dd07de4ac61aea2ce976ea0841d597d8801b139;hpb=5288c13efe67885e6fb9384484b98293eeac535a diff --git a/tictactoe.c b/tictactoe.c index ed74e49..af9de7c 100644 --- a/tictactoe.c +++ b/tictactoe.c @@ -26,81 +26,8 @@ #include "tcp_connect.h" #include "iksemel_extra.h" #include "xmpp.h" -#include "sasl.h" -#include "bind.h" #include "disco.h" -static void write_stream (hc_xmpp_t *); - -static void -send_message_test (hc_xmpp_t *xmpp) -{ - hc_xmpp_send_disco_info (xmpp, hc_xmpp_server (xmpp)); -} - -static int -myhook (void *data, int type, iks *stanza) -{ - if (!iks_strcmp (iks_name (stanza), "iq")) - { - char *ns = iks_find_attrib (iks_child (stanza), "xmlns"); - if (!iks_strcmp (ns, HC_XMPP_NS_BIND)) - { - hc_xmpp_bind_result (data, stanza); - if (hc_xmpp_status (data) == HC_XMPP_BOUND && - hc_xmpp_is_session_supported (data)) - hc_xmpp_session (data); - } - else if (!iks_strcmp (ns, HC_XMPP_NS_SESSION)) - { - hc_xmpp_session_result (data, stanza); - if (hc_xmpp_status (data) == HC_XMPP_SESSION) - send_message_test (data); - } - else if (!iks_strcmp (ns, HC_XMPP_NS_DISCO_INFO)) - { - hc_xmpp_recv_disco (data, stanza); - } - } - else if (!iks_strcmp (iks_name (stanza), "stream:features")) - { - hc_xmpp_features (data, stanza); - if (hc_xmpp_is_sasl_supported (data) & !hc_xmpp_is_sasl_enabled (data)) - { - hc_xmpp_sasl_authenticate (data); - } - if (hc_xmpp_is_bind_supported (data)) - { - hc_xmpp_bind (data); - } - } - else if (!iks_strcmp (iks_find_attrib (stanza, "xmlns"), HC_XMPP_NS_SASL)) - { - hc_xmpp_sasl_iterate (data, stanza); - if (hc_xmpp_status (data) == HC_XMPP_AUTHENTICATED) - { - write_stream (data); - fprintf (stdout, "Authenticated\n"); - } - } - else - { - fprintf (stderr, "Other: %s\n", iks_string (iks_stack (stanza), stanza)); - } - return IKS_OK; -} - -static void -write_stream (hc_xmpp_t *xmpp) -{ - char *buffer = NULL; - asprintf (&buffer, "", hc_xmpp_server (xmpp)); - hc_xmpp_send_buffer (xmpp, buffer, 0); - free (buffer); -} - static void loop (hc_xmpp_t *xmpp) { @@ -116,8 +43,8 @@ main (int argc, char **argv) char *password = "pubsub"; hc_xmpp_t *xmpp; dns_init (NULL, 1); - xmpp = hc_xmpp_new (myhook, server, user, password); - write_stream (xmpp); + xmpp = hc_xmpp_new (hc_xmpp_hook, server, user, password); + hc_xmpp_send_stream (xmpp); loop (xmpp); return 0; }