ObjXMPP  Diff

Differences From Artifact [6945afcb5e]:

To Artifact [bf0bb104ef]:


17
18
19
20
21
22
23
24
25
26
27
28

29
30
31
32
33
34
35
17
18
19
20
21
22
23


24
25
26
27
28
29
30
31
32
33
34







-
-



+







 * 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.
 */

#include <assert.h>

#include <stringprep.h>

#import "XMPPJID.h"
#import "XMPPExceptions.h"

@implementation XMPPJID
@synthesize node;
@synthesize domain;
@synthesize resource;

+ JID
78
79
80
81
82
83
84
85
86




87
88

89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107




108
109

110
111
112
113
114
115
116
77
78
79
80
81
82
83


84
85
86
87


88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105


106
107
108
109


110
111
112
113
114
115
116
117







-
-
+
+
+
+
-
-
+

















-
-
+
+
+
+
-
-
+







	if (node_ == nil) {
		[old release];
		node = nil;
		return;
	}

	if ((rc = stringprep_profile([node_ cString], &nodepart,
	    "Nodeprep", 0)) != STRINGPREP_OK) {
		of_log(@"Nodeprep failed: %s", stringprep_strerror(rc));
	    "Nodeprep", 0)) != STRINGPREP_OK)
		@throw [XMPPStringPrepFailedException newWithClass: isa
							connection: nil
							   profile: @"Nodeprep"
		assert(0);
	}
							    string: node_];

	@try {
		node = [[OFString alloc] initWithCString: nodepart];
	} @finally {
		free(nodepart);
	}

	[old release];
}

- (void)setDomain: (OFString*)domain_
{
	OFString *old = domain;
	char *srv;
	Stringprep_rc rc;

	if ((rc = stringprep_profile([domain_ cString], &srv,
	    "Nameprep", 0)) != STRINGPREP_OK) {
		of_log(@"Nameprep failed: %s", stringprep_strerror(rc));
	    "Nameprep", 0)) != STRINGPREP_OK)
		@throw [XMPPStringPrepFailedException newWithClass: isa
							connection: nil
							   profile: @"Nameprep"
		assert(0);
	}
							    string: domain_];

	@try {
		domain = [[OFString alloc] initWithCString: srv];
	} @finally {
		free(srv);
	}

126
127
128
129
130
131
132
133
134
135



136



137
138
139
140
141
142
143
127
128
129
130
131
132
133



134
135
136

137
138
139
140
141
142
143
144
145
146







-
-
-
+
+
+
-
+
+
+







	if (resource_ == nil) {
		[old release];
		resource = nil;
		return;
	}

	if ((rc = stringprep_profile([resource_ cString], &res,
	    "Resourceprep", 0)) != STRINGPREP_OK) {
		of_log(@"Resourceprep failed: %s", stringprep_strerror(rc));
		assert(0);
	    "Resourceprep", 0)) != STRINGPREP_OK)
		@throw [XMPPStringPrepFailedException
		    newWithClass: isa
	}
		      connection: nil
			 profile: @"Resourceprep"
			  string: resource_];

	@try {
		resource = [[OFString alloc] initWithCString: res];
	} @finally {
		free(res);
	}