Beispiel #1
0
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;
}
Beispiel #2
0
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
}
Beispiel #3
0
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;
}
Beispiel #4
0
int iks_send(iksparser *prs, iks *x)
{
	return iks_send_raw(prs, iks_string(iks_stack(x), x));
}