diff --git a/src/Makefile b/src/Makefile index c99040f..749046e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -29,10 +29,10 @@ SRCS = XMPPANONYMOUSAuth.m \ XMPPSCRAMAuth.m \ XMPPStanza.m \ XMPPStreamManagement.m \ - XMPPXMLElementBuilder.m + XMPPXMLElementBuilder.m \ + namespaces.m INCLUDES = ${SRCS:.m=.h} \ - namespaces.h \ ObjXMPP.h \ XMPPStorage.h diff --git a/src/XMPPConnection.m b/src/XMPPConnection.m index c5ef174..a26ce34 100644 --- a/src/XMPPConnection.m +++ b/src/XMPPConnection.m @@ -638,9 +638,13 @@ [_socket writeFormat: @"\n" @"", _domain, langString]; + @"xmlns='%@' " + @"xmlns:stream='%@' %@" + @"version='1.0'>", + _domain, + XMPPClientNS, + XMPPStreamNS, + langString]; _streamOpen = true; } diff --git a/src/namespaces.h b/src/namespaces.h index 35f8aec..0288c0e 100644 --- a/src/namespaces.h +++ b/src/namespaces.h @@ -20,18 +20,20 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#define XMPPBindNS @"urn:ietf:params:xml:ns:xmpp-bind" -#define XMPPCapsNS @"http://jabber.org/protocol/caps" -#define XMPPClientNS @"jabber:client" -#define XMPPDiscoInfoNS @"http://jabber.org/protocol/disco#info" -#define XMPPDiscoItemsNS @"http://jabber.org/protocol/disco#items" -#define XMPPMUCNS @"http://jabber.org/protocol/muc" -#define XMPPRosterNS @"jabber:iq:roster" -#define XMPPRosterVerNS @"urn:xmpp:features:rosterver" -#define XMPPSASLNS @"urn:ietf:params:xml:ns:xmpp-sasl" -#define XMPPSessionNS @"urn:ietf:params:xml:ns:xmpp-session" -#define XMPPSMNS @"urn:xmpp:sm:3" -#define XMPPStanzasNS @"urn:ietf:params:xml:ns:xmpp-stanzas" -#define XMPPStartTLSNS @"urn:ietf:params:xml:ns:xmpp-tls" -#define XMPPStreamNS @"http://etherx.jabber.org/streams" -#define XMPPXMPPStreamNS @"urn:ietf:params:xml:ns:xmpp-streams" +#import + +extern OFString *const XMPPBindNS; +extern OFString *const XMPPCapsNS; +extern OFString *const XMPPClientNS; +extern OFString *const XMPPDiscoInfoNS; +extern OFString *const XMPPDiscoItemsNS; +extern OFString *const XMPPMUCNS; +extern OFString *const XMPPRosterNS; +extern OFString *const XMPPRosterVerNS; +extern OFString *const XMPPSASLNS; +extern OFString *const XMPPSessionNS; +extern OFString *const XMPPSMNS; +extern OFString *const XMPPStanzasNS; +extern OFString *const XMPPStartTLSNS; +extern OFString *const XMPPStreamNS; +extern OFString *const XMPPXMPPStreamNS; diff --git a/src/namespaces.m b/src/namespaces.m new file mode 100644 index 0000000..fe4c991 --- /dev/null +++ b/src/namespaces.m @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2011, 2021, Jonathan Schleifer + * + * https://heap.zone/objxmpp/ + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice is present in all copies. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "namespaces.h" + +OFString *const XMPPBindNS = @"urn:ietf:params:xml:ns:xmpp-bind"; +OFString *const XMPPCapsNS = @"http://jabber.org/protocol/caps"; +OFString *const XMPPClientNS = @"jabber:client"; +OFString *const XMPPDiscoInfoNS = @"http://jabber.org/protocol/disco#info"; +OFString *const XMPPDiscoItemsNS = @"http://jabber.org/protocol/disco#items"; +OFString *const XMPPMUCNS = @"http://jabber.org/protocol/muc"; +OFString *const XMPPRosterNS = @"jabber:iq:roster"; +OFString *const XMPPRosterVerNS = @"urn:xmpp:features:rosterver"; +OFString *const XMPPSASLNS = @"urn:ietf:params:xml:ns:xmpp-sasl"; +OFString *const XMPPSessionNS = @"urn:ietf:params:xml:ns:xmpp-session"; +OFString *const XMPPSMNS = @"urn:xmpp:sm:3"; +OFString *const XMPPStanzasNS = @"urn:ietf:params:xml:ns:xmpp-stanzas"; +OFString *const XMPPStartTLSNS = @"urn:ietf:params:xml:ns:xmpp-tls"; +OFString *const XMPPStreamNS = @"http://etherx.jabber.org/streams"; +OFString *const XMPPXMPPStreamNS = @"urn:ietf:params:xml:ns:xmpp-streams";