summaryrefslogtreecommitdiff
path: root/src/stringprep/stringprep.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2013-03-14 10:33:02 +0100
committerBadlop <badlop@process-one.net>2013-03-14 10:33:02 +0100
commit9deb294328bb3f9eb6bd2c0e7cd500732e9b5830 (patch)
tree7e1066c130250627ee0abab44a135f583a28d07f /src/stringprep/stringprep.erl
parentlist_to_integer/2 only works in OTP R14 and newer (diff)
Accumulated patch to binarize and indent code
Diffstat (limited to 'src/stringprep/stringprep.erl')
-rw-r--r--src/stringprep/stringprep.erl68
1 files changed, 30 insertions, 38 deletions
diff --git a/src/stringprep/stringprep.erl b/src/stringprep/stringprep.erl
index 6b9ec2be..1b39693c 100644
--- a/src/stringprep/stringprep.erl
+++ b/src/stringprep/stringprep.erl
@@ -25,89 +25,81 @@
%%%----------------------------------------------------------------------
-module(stringprep).
+
-author('alexey@process-one.net').
-behaviour(gen_server).
--export([start/0, start_link/0,
- tolower/1,
- nameprep/1,
- nodeprep/1,
- resourceprep/1]).
+-export([start/0, start_link/0, tolower/1, nameprep/1,
+ nodeprep/1, resourceprep/1]).
%% Internal exports, call-back functions.
--export([init/1,
- handle_call/3,
- handle_cast/2,
- handle_info/2,
- code_change/3,
- terminate/2]).
+-export([init/1, handle_call/3, handle_cast/2,
+ handle_info/2, code_change/3, terminate/2]).
-define(STRINGPREP_PORT, stringprep_port).
-define(NAMEPREP_COMMAND, 1).
+
-define(NODEPREP_COMMAND, 2).
+
-define(RESOURCEPREP_COMMAND, 3).
start() ->
gen_server:start({local, ?MODULE}, ?MODULE, [], []).
start_link() ->
- gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
+ gen_server:start_link({local, ?MODULE}, ?MODULE, [],
+ []).
init([]) ->
- case erl_ddll:load_driver(ejabberd:get_so_path(), stringprep_drv) of
- ok -> ok;
- {error, already_loaded} -> ok
+ case erl_ddll:load_driver(ejabberd:get_so_path(),
+ stringprep_drv)
+ of
+ ok -> ok;
+ {error, already_loaded} -> ok
end,
Port = open_port({spawn, "stringprep_drv"}, []),
register(?STRINGPREP_PORT, Port),
{ok, Port}.
-
%%% --------------------------------------------------------
%%% The call-back functions.
%%% --------------------------------------------------------
-handle_call(_, _, State) ->
- {noreply, State}.
+handle_call(_, _, State) -> {noreply, State}.
-handle_cast(_, State) ->
- {noreply, State}.
+handle_cast(_, State) -> {noreply, State}.
handle_info({'EXIT', Port, Reason}, Port) ->
{stop, {port_died, Reason}, Port};
handle_info({'EXIT', _Pid, _Reason}, Port) ->
{noreply, Port};
-handle_info(_, State) ->
- {noreply, State}.
+handle_info(_, State) -> {noreply, State}.
+
+code_change(_OldVsn, State, _Extra) -> {ok, State}.
-code_change(_OldVsn, State, _Extra) ->
- {ok, State}.
+terminate(_Reason, Port) -> Port ! {self, close}, ok.
-terminate(_Reason, Port) ->
- Port ! {self, close},
- ok.
+-spec tolower(binary()) -> binary() | error.
+tolower(String) -> control(0, String).
+-spec nameprep(binary()) -> binary() | error.
-tolower(String) ->
- control(0, String).
+nameprep(String) -> control(?NAMEPREP_COMMAND, String).
-nameprep(String) ->
- control(?NAMEPREP_COMMAND, String).
+-spec nodeprep(binary()) -> binary() | error.
-nodeprep(String) ->
- control(?NODEPREP_COMMAND, String).
+nodeprep(String) -> control(?NODEPREP_COMMAND, String).
+
+-spec resourceprep(binary()) -> binary() | error.
resourceprep(String) ->
control(?RESOURCEPREP_COMMAND, String).
control(Command, String) ->
case port_control(?STRINGPREP_PORT, Command, String) of
- [0 | _] -> error;
- [1 | Res] -> Res
+ <<0, _/binary>> -> error;
+ <<1, Res/binary>> -> Res
end.
-
-
-