Comments and PIs are not allowed in XMPP -> throw an exception.
This commit is contained in:
parent
33969934b2
commit
066a1644f0
4 changed files with 76 additions and 6 deletions
|
@ -20,7 +20,8 @@ SRCS = XMPPAuthenticator.m \
|
||||||
XMPPRosterItem.m \
|
XMPPRosterItem.m \
|
||||||
XMPPSCRAMAuth.m \
|
XMPPSCRAMAuth.m \
|
||||||
XMPPSRVLookup.m \
|
XMPPSRVLookup.m \
|
||||||
XMPPStanza.m
|
XMPPStanza.m \
|
||||||
|
XMPPXMLElementBuilder.m
|
||||||
|
|
||||||
INCLUDES = ${SRCS:.m=.h} \
|
INCLUDES = ${SRCS:.m=.h} \
|
||||||
namespaces.h \
|
namespaces.h \
|
||||||
|
|
|
@ -502,10 +502,10 @@
|
||||||
[self XMPP_handleSASL: element];
|
[self XMPP_handleSASL: element];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)elementBuilder: (OFXMLElementBuilder *)builder
|
- (void)elementBuilder: (OFXMLElementBuilder*)builder
|
||||||
didNotExpectCloseTag: (OFString *)name
|
didNotExpectCloseTag: (OFString*)name
|
||||||
withPrefix: (OFString *)prefix
|
withPrefix: (OFString*)prefix
|
||||||
namespace: (OFString *)ns
|
namespace: (OFString*)ns
|
||||||
{
|
{
|
||||||
if (![name isEqual: @"stream"] || ![prefix isEqual: @"stream"] ||
|
if (![name isEqual: @"stream"] || ![prefix isEqual: @"stream"] ||
|
||||||
![ns isEqual: XMPP_NS_STREAM])
|
![ns isEqual: XMPP_NS_STREAM])
|
||||||
|
@ -533,7 +533,7 @@
|
||||||
parser = [[OFXMLParser alloc] init];
|
parser = [[OFXMLParser alloc] init];
|
||||||
[parser setDelegate: self];
|
[parser setDelegate: self];
|
||||||
|
|
||||||
elementBuilder = [[OFXMLElementBuilder alloc] init];
|
elementBuilder = [[XMPPXMLElementBuilder alloc] init];
|
||||||
[elementBuilder setDelegate: self];
|
[elementBuilder setDelegate: self];
|
||||||
|
|
||||||
[sock writeFormat: @"<?xml version='1.0'?>\n"
|
[sock writeFormat: @"<?xml version='1.0'?>\n"
|
||||||
|
|
26
src/XMPPXMLElementBuilder.h
Normal file
26
src/XMPPXMLElementBuilder.h
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2012, Jonathan Schleifer <js@webkeks.org>
|
||||||
|
*
|
||||||
|
* https://webkeks.org/hg/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 <ObjFW/OFXMLElementBuilder.h>
|
||||||
|
|
||||||
|
@interface XMPPXMLElementBuilder: OFXMLElementBuilder
|
||||||
|
@end
|
43
src/XMPPXMLElementBuilder.m
Normal file
43
src/XMPPXMLElementBuilder.m
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2012, Jonathan Schleifer <js@webkeks.org>
|
||||||
|
*
|
||||||
|
* https://webkeks.org/hg/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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#import "XMPPXMLElementBuilder.h"
|
||||||
|
|
||||||
|
#import <ObjFW/OFMalformedXMLException.h>
|
||||||
|
|
||||||
|
@implementation XMPPXMLElementBuilder
|
||||||
|
- (void)parser: (OFXMLParser*)parser
|
||||||
|
foundProcessingInstructions: (OFString*)pi
|
||||||
|
{
|
||||||
|
@throw [OFMalformedXMLException exceptionWithClass: isa];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)parser: (OFXMLParser*)parser
|
||||||
|
foundComment: (OFString*)comment
|
||||||
|
{
|
||||||
|
@throw [OFMalformedXMLException exceptionWithClass: isa];
|
||||||
|
}
|
||||||
|
@end
|
Loading…
Add table
Add a link
Reference in a new issue