diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-10-11 17:39:36 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-10-11 17:39:36 +0000 |
commit | 146d464f96228db6e61c3ca9bdff4990fea25343 (patch) | |
tree | 50575683e24d735c40a25a72dc99d89c35f82dea /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.erl | 34 |
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 = ""}; |