Comments and PIs are not allowed in XMPP -> throw an exception.

This commit is contained in:
Jonathan Schleifer 2012-02-03 15:35:28 +01:00
parent 33969934b2
commit 066a1644f0
4 changed files with 76 additions and 6 deletions

View file

@ -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 \

View file

@ -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"

View 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

View 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