X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=tictactoe.c;h=e9296633522e7f709afaab145ab89c15a5ed525b;hb=refs%2Fheads%2Fpresence;hp=004938574fdfe28417d2382d4a213e3e388600cd;hpb=ded734abecf69e281222c987dc201586a46199e1;p=cascardo%2Fhcxmpp.git diff --git a/tictactoe.c b/tictactoe.c index 0049385..e929663 100644 --- a/tictactoe.c +++ b/tictactoe.c @@ -26,57 +26,33 @@ #include "tcp_connect.h" #include "iksemel_extra.h" #include "xmpp.h" +#include "disco.h" -int -myhook (void *data, int type, iks *stanza) +static void +loop (hc_xmpp_t *xmpp) { - if (!iks_strcmp (iks_name (stanza), "stream:features")) - { - hc_xmpp_features (data, stanza); - if (hc_xmpp_is_tls_supported (data)) - fprintf (stderr, "TLS is supported\n"); - if (hc_xmpp_is_sasl_supported (data)) - fprintf (stderr, "SASL is supported\n"); - } - else - { - fprintf (stderr, "Other: %s\n", iks_string (iks_stack (stanza), stanza)); - } - return IKS_OK; -} - -void -write_stream (int fd, char *server) -{ - char *buffer = NULL; - asprintf (&buffer, "", server); - write (fd, buffer, strlen (buffer)); - free (buffer); -} - -void -loop (iksparser *parser, int fd) -{ - char buffer[4096]; - int r; - while ((r = read (fd, buffer, sizeof (buffer))) > 0) - iks_parse (parser, buffer, r, 0); + while (1) + hc_xmpp_read_and_parse (xmpp); } int main (int argc, char **argv) { - char *server = "jabber-br.org"; - int fd; - iksparser *parser; + 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 (); - fd = hc_tcp_connect (server, "xmpp-client"); - parser = iks_extra_stream_new (xmpp, myhook); - write_stream (fd, server); - loop (parser, fd); + xmpp = hc_xmpp_new (hc_xmpp_hook, server, user, password); + hc_xmpp_send_stream (xmpp); + loop (xmpp); return 0; }