int iks_start_tls(iksparser *prs) { int ret; struct stream_data *data = iks_user_data(prs); if(iks_default_tls.handshake == NULL) return IKS_NET_NOTSUPP; ret = iks_send_raw(prs, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>"); if(ret) return ret; data->flags |= SF_TRY_SECURE; return IKS_OK; }
int iks_start_tls (iksparser *prs) { #ifdef HAVE_GNUTLS int ret; struct stream_data *data = iks_user_data (prs); ret = iks_send_raw (prs, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>"); if (ret) return ret; data->flags |= SF_TRY_SECURE; return IKS_OK; #elif HAVE_SSL int ret; struct stream_data *data = iks_user_data (prs); ret = iks_send_raw (prs, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>"); if (ret) return ret; data->flags |= SF_TRY_SECURE; return IKS_OK; #else return IKS_NET_NOTSUPP; #endif }
int iks_send_header(iksparser *prs, const char *to) { struct stream_data *data = iks_user_data(prs); char *msg; int len, err; len = 91 + strlen(data->name_space) + 6 + strlen(to) + 16 + 1; msg = iks_malloc(len); if(!msg) return IKS_NOMEM; sprintf(msg, "<?xml version='1.0'?>" "<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='" "%s' to='%s' version='1.0'>", data->name_space, to); err = iks_send_raw(prs, msg); iks_free(msg); if(err) return err; data->server = to; return IKS_OK; }
int iks_send(iksparser *prs, iks *x) { return iks_send_raw(prs, iks_string(iks_stack(x), x)); }