diff --git a/examples/basic_logging.c b/examples/basic_logging.c index acb7442..bd02950 100644 --- a/examples/basic_logging.c +++ b/examples/basic_logging.c @@ -45,12 +45,19 @@ int main(int argc, char **argv) xmpp_ctx_t *ctx; xmpp_conn_t *conn; xmpp_log_t log; + char *jid, *pass; + char *server; - if (argc != 4) { + if ((argc < 3) || (argc > 4)) { fprintf(stderr, "Usage: basic \n\n"); return 1; } - + + jid = argv[1]; + pass = argv[2]; + if (argc >= 4) server = argv[3]; + else server = NULL; + /* init library */ xmpp_initialize(); diff --git a/src/conn.c b/src/conn.c index d5240a3..6aefe10 100644 --- a/src/conn.c +++ b/src/conn.c @@ -228,10 +228,15 @@ int xmpp_connect_client(xmpp_conn_t * const conn, { conn->type = XMPP_CLIENT; - conn->domain = xmpp_strdup(conn->ctx, domain); + if (domain) { + conn->domain = xmpp_strdup(conn->ctx, domain); + } else { + conn->domain = xmpp_jid_domain(conn->ctx, conn->jid); + } if (!conn->domain) return -1; - conn->sock = sock_connect(domain, 5222); + /* TODO: look up SRV record for actual host and port */ + conn->sock = sock_connect(conn->domain, 5222); if (conn->sock < 0) return -1; /* setup handler */ @@ -244,7 +249,7 @@ int xmpp_connect_client(xmpp_conn_t * const conn, * from within the event loop */ conn->state = XMPP_STATE_CONNECTING; - xmpp_debug(conn->ctx, "xmpp", "attempting to connect to %s", domain); + xmpp_debug(conn->ctx, "xmpp", "attempting to connect to %s", conn->domain); return 0; }