diff --git a/src/XMPPRoster.h b/src/XMPPRoster.h index c05e52f..310234e 100644 --- a/src/XMPPRoster.h +++ b/src/XMPPRoster.h @@ -73,6 +73,7 @@ OFMutableDictionary *rosterItems; XMPPMulticastDelegate *delegates; id dataStorage; + BOOL rosterRequested; /// \endcond } diff --git a/src/XMPPRoster.m b/src/XMPPRoster.m index 5b52719..4e76176 100644 --- a/src/XMPPRoster.m +++ b/src/XMPPRoster.m @@ -29,6 +29,8 @@ #include +#import + #import "XMPPRoster.h" #import "XMPPRosterItem.h" #import "XMPPConnection.h" @@ -74,6 +76,8 @@ { XMPPIQ *iq; + rosterRequested = YES; + iq = [XMPPIQ IQWithType: @"get" ID: [connection generateStanzaID]]; [iq addChild: [OFXMLElement elementWithName: @"query" @@ -188,7 +192,9 @@ - (void)setDataStorage: (id )dataStorage_ { - /* TODO: Prevent changing it after it has been used */ + if (rosterRequested) + @throw [OFInvalidArgumentException exceptionWithClass: isa]; + dataStorage = dataStorage_; }