X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fchat.git;a=blobdiff_plain;f=tictactoe.c;h=e9296633522e7f709afaab145ab89c15a5ed525b;hp=b57c1b9e945f9464dccbdf5a536a00041ed01ac2;hb=HEAD;hpb=8729c58972d65ab4b4b7ef3da9bcaf0d7f237d4c diff --git a/tictactoe.c b/tictactoe.c index b57c1b9..e929663 100644 --- a/tictactoe.c +++ b/tictactoe.c @@ -26,80 +26,7 @@ #include "tcp_connect.h" #include "iksemel_extra.h" #include "xmpp.h" -#include "sasl.h" -#include "bind.h" - -static void write_stream (hc_xmpp_t *); - -static void -send_message_test (hc_xmpp_t *xmpp) -{ - iks *msg; - msg = iks_new ("message"); - iks_insert_attrib (msg, "to", "metal@jabber-br.org"); - iks_insert_cdata (iks_insert (msg, "body"), "pubsub", 0); - hc_xmpp_send_iks (xmpp, msg); - iks_delete (msg); -} - -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 (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); -} +#include "disco.h" static void loop (hc_xmpp_t *xmpp) @@ -111,13 +38,21 @@ loop (hc_xmpp_t *xmpp) int main (int argc, char **argv) { - char *server = "jabber-br.org"; - char *user = "pubsub"; - char *password = "pubsub"; + char *server; + char *user; + char *password; hc_xmpp_t *xmpp; + if (argc < 4) + { + printf ("tictactoe server user password\n"); + return 1; + } + server = argv[1]; + user = argv[2]; + password = argv[3]; 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; }