aboutsummaryrefslogtreecommitdiff
path: root/src/jlib.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-10-11 17:39:36 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-10-11 17:39:36 +0000
commit146d464f96228db6e61c3ca9bdff4990fea25343 (patch)
tree50575683e24d735c40a25a72dc99d89c35f82dea /src/jlib.erl
parent* src/stringprep/stringprep_drv.c: Removed needless iconv.h (diff)
* doc/guide.tex: Updated
* src/ejabberd.cfg: Added "register" rule, added some comments, this file renamed to ejabberd.cfg.example * src/mod_register.erl (try_register): Fixed error reply, added check for "register" access rule * src/stringprep/Makefile.win32: Added Makefile for Win32 (thanks to Sergei Golovan) SVN Revision: 148
Diffstat (limited to 'src/jlib.erl')
-rw-r--r--src/jlib.erl34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/jlib.erl b/src/jlib.erl
index ced408945..839d6739c 100644
--- a/src/jlib.erl
+++ b/src/jlib.erl
@@ -227,25 +227,7 @@ jid_to_string({Node, Server, Resource}) ->
is_nodename([]) ->
false;
is_nodename(J) ->
- is_nodename1(J).
-
-is_nodename1([C | J])
- when (C =< 32) or
- (C == $") or
- (C == $&) or
- (C == $') or
- (C == $:) or
- (C == $<) or
- (C == $>) or
- (C == $@) or
- (C == $/) or
- (C == 127)
- ->
- false;
-is_nodename1([C | J]) ->
- is_nodename1(J);
-is_nodename1([]) ->
- true.
+ nodeprep(J).
@@ -301,7 +283,19 @@ resourceprep(S) ->
jid_tolower(#jid{luser = U, lserver = S, lresource = R}) ->
{U, S, R};
jid_tolower({U, S, R}) ->
- {tolower(U), tolower(S), R}.
+ case stringprep:nodeprep(U) of
+ error -> error;
+ LUser ->
+ case stringprep:nameprep(S) of
+ error -> error;
+ LServer ->
+ case stringprep:resourceprep(R) of
+ error -> error;
+ LResource ->
+ {LUser, LServer, LResource}
+ end
+ end
+ end.
jid_remove_resource(#jid{} = JID) ->
JID#jid{resource = "", lresource = ""};