Merge commit 'dustin/master'
* commit 'dustin/master': Ignore test artifacts. Ignore TAGS. Log the result of a connect. If an altdomain was specified, use it instead of SRV lookups. Free the connection language. Handle a case where the query has no namespace.
This commit is contained in:
9
.gitignore
vendored
9
.gitignore
vendored
@@ -16,7 +16,16 @@ examples/*.o
|
||||
tests/*.o
|
||||
tests/check_parser
|
||||
*.a
|
||||
TAGS
|
||||
examples/basic
|
||||
examples/active
|
||||
examples/roster
|
||||
examples/bot
|
||||
test_stamp
|
||||
tests/*.o
|
||||
tests/test_base64
|
||||
tests/test_ctx
|
||||
tests/test_hash
|
||||
tests/test_jid
|
||||
tests/test_sasl
|
||||
tests/test_sock
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
int version_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void * const userdata)
|
||||
{
|
||||
xmpp_stanza_t *reply, *query, *name, *version, *text;
|
||||
char *ns;
|
||||
xmpp_ctx_t *ctx = (xmpp_ctx_t*)userdata;
|
||||
printf("Received version request from %s\n", xmpp_stanza_get_attribute(stanza, "from"));
|
||||
|
||||
@@ -40,7 +41,10 @@ int version_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, void
|
||||
|
||||
query = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(query, "query");
|
||||
xmpp_stanza_set_ns(query, xmpp_stanza_get_ns(xmpp_stanza_get_children(stanza)));
|
||||
ns = xmpp_stanza_get_ns(xmpp_stanza_get_children(stanza));
|
||||
if (ns) {
|
||||
xmpp_stanza_set_ns(query, ns);
|
||||
}
|
||||
|
||||
name = xmpp_stanza_new(ctx);
|
||||
xmpp_stanza_set_name(name, "name");
|
||||
|
||||
14
src/conn.c
14
src/conn.c
@@ -269,6 +269,7 @@ int xmpp_conn_release(xmpp_conn_t * const conn)
|
||||
if (conn->jid) xmpp_free(ctx, conn->jid);
|
||||
if (conn->pass) xmpp_free(ctx, conn->pass);
|
||||
if (conn->stream_id) xmpp_free(ctx, conn->stream_id);
|
||||
if (conn->lang) xmpp_free(ctx, conn->lang);
|
||||
xmpp_free(ctx, conn);
|
||||
released = 1;
|
||||
}
|
||||
@@ -382,18 +383,25 @@ int xmpp_connect_client(xmpp_conn_t * const conn,
|
||||
conn->domain = xmpp_jid_domain(conn->ctx, conn->jid);
|
||||
if (!conn->domain) return -1;
|
||||
|
||||
if (!sock_srv_lookup("xmpp-client", "tcp", conn->domain, connectdomain, 2048, &connectport))
|
||||
{
|
||||
if (altdomain) {
|
||||
xmpp_debug(conn->ctx, "xmpp", "Connecting via altdomain.");
|
||||
strcpy(connectdomain, altdomain);
|
||||
connectport = altport ? altport : 5222;
|
||||
} else if (!sock_srv_lookup("xmpp-client", "tcp", conn->domain,
|
||||
connectdomain, 2048, &connectport)) {
|
||||
xmpp_debug(conn->ctx, "xmpp", "SRV lookup failed.");
|
||||
if (!altdomain)
|
||||
domain = conn->domain;
|
||||
else
|
||||
domain = altdomain;
|
||||
xmpp_debug(conn->ctx, "xmpp", "Using alternate domain %s, port %d", altdomain, altport);
|
||||
xmpp_debug(conn->ctx, "xmpp", "Using alternate domain %s, port %d",
|
||||
altdomain, altport);
|
||||
strcpy(connectdomain, domain);
|
||||
connectport = altport ? altport : 5222;
|
||||
}
|
||||
conn->sock = sock_connect(connectdomain, connectport);
|
||||
xmpp_debug(conn->ctx, "xmpp", "sock_connect to %s:%d returned %d",
|
||||
connectdomain, connectport, conn->sock);
|
||||
if (conn->sock == -1) return -1;
|
||||
|
||||
/* setup handler */
|
||||
|
||||
Reference in New Issue
Block a user