summaryrefslogtreecommitdiff
path: root/src/stringprep/stringprep.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-09-28 18:27:55 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-09-28 18:27:55 +0000
commit94690e5eb681cb2bec44ddaf00c19c9e8bec5f32 (patch)
treeff6ffe363ea4e188729eff1fc101161591f7d482 /src/stringprep/stringprep.erl
parent* src/stringprep/: Support for stringprep (not completed yet) (diff)
* src/stringprep/stringprep_drv.c: Added support for nameprep,
nodeprep and resourceprep * src/stringprep/stringprep.erl: Likewise * src/ejabberd_sup.erl: Added loading of stringprep * src/ejabberd_sm.erl: Cleanup SVN Revision: 142
Diffstat (limited to 'src/stringprep/stringprep.erl')
-rw-r--r--src/stringprep/stringprep.erl28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/stringprep/stringprep.erl b/src/stringprep/stringprep.erl
index 919ae7a4..eb0c9ed4 100644
--- a/src/stringprep/stringprep.erl
+++ b/src/stringprep/stringprep.erl
@@ -12,7 +12,11 @@
-behaviour(gen_server).
--export([start/0, start_link/0, tolower/1]).
+-export([start/0, start_link/0,
+ tolower/1,
+ nameprep/1,
+ nodeprep/1,
+ resourceprep/1]).
%% Internal exports, call-back functions.
-export([init/1,
@@ -22,7 +26,9 @@
code_change/3,
terminate/2]).
-
+-define(NAMEPREP_COMMAND, 1).
+-define(NODEPREP_COMMAND, 2).
+-define(RESOURCEPREP_COMMAND, 3).
start() ->
gen_server:start({local, ?MODULE}, ?MODULE, [], []).
@@ -66,9 +72,23 @@ terminate(_Reason, Port) ->
tolower(String) ->
+ control(0, String).
+
+nameprep(String) ->
+ control(?NAMEPREP_COMMAND, String).
+
+nodeprep(String) ->
+ control(?NODEPREP_COMMAND, String).
+
+resourceprep(String) ->
+ control(?RESOURCEPREP_COMMAND, String).
+
+control(Command, String) ->
[{port, Port} | _] = ets:lookup(stringprep_table, port),
- Res = port_control(Port, 1, String),
- binary_to_list(Res).
+ case port_control(Port, Command, String) of
+ [0 | _] -> error;
+ [1 | Res] -> Res
+ end.