25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-20 16:15:59 +01:00

* src/web/ejabberd_http.erl: Increased receive buffer

* src/mod_irc/mod_irc_connection.erl: Support for "/quote" command

SVN Revision: 224
This commit is contained in:
Alexey Shchepin 2004-04-17 19:00:10 +00:00
parent b542249f11
commit 0ab31f0822
4 changed files with 82 additions and 57 deletions

View File

@ -1,3 +1,9 @@
2004-04-17 Alexey Shchepin <alexey@sevcom.net>
* src/web/ejabberd_http.erl: Increased receive buffer
* src/mod_irc/mod_irc_connection.erl: Support for "/quote" command
2004-04-15 Alexey Shchepin <alexey@sevcom.net>
* src/ejabberd.erl: Added searching of files in code:priv_lib

View File

@ -234,20 +234,27 @@ handle_info({route_chan, Channel, Resource,
StateData#state.myname, StateData#state.nick),
StateData#state.user, El),
Body = xml:get_path_s(El, [{elem, "body"}, cdata]),
Body1 = case Body of
[$/, $m, $e, $ | Rest] ->
"\001ACTION " ++ Rest ++ "\001";
_ ->
Body
end,
Strings = string:tokens(Body1, "\n"),
Res = lists:concat(
lists:map(
fun(S) ->
io_lib:format("PRIVMSG #~s :~s\r\n",
[Channel, S])
end, Strings)),
?SEND(Res);
case Body of
"/quote " ++ Rest ->
?SEND(Rest ++ "\r\n");
_ ->
Body1 =
case Body of
[$/, $m, $e, $ | Rest] ->
"\001ACTION " ++ Rest ++ "\001";
_ ->
Body
end,
Strings = string:tokens(Body1, "\n"),
Res = lists:concat(
lists:map(
fun(S) ->
io_lib:format(
"PRIVMSG #~s :~s\r\n",
[Channel, S])
end, Strings)),
?SEND(Res)
end;
Subject ->
Strings = string:tokens(Subject, "\n"),
Res = lists:concat(
@ -260,20 +267,25 @@ handle_info({route_chan, Channel, Resource,
end;
"chat" ->
Body = xml:get_path_s(El, [{elem, "body"}, cdata]),
Body1 = case Body of
[$/, $m, $e, $ | Rest] ->
"\001ACTION " ++ Rest ++ "\001";
_ ->
Body
end,
Strings = string:tokens(Body1, "\n"),
Res = lists:concat(
lists:map(
fun(S) ->
io_lib:format("PRIVMSG ~s :~s\r\n",
[Resource, S])
end, Strings)),
?SEND(Res);
case Body of
"/quote " ++ Rest ->
?SEND(Rest ++ "\r\n");
_ ->
Body1 = case Body of
[$/, $m, $e, $ | Rest] ->
"\001ACTION " ++ Rest ++ "\001";
_ ->
Body
end,
Strings = string:tokens(Body1, "\n"),
Res = lists:concat(
lists:map(
fun(S) ->
io_lib:format("PRIVMSG ~s :~s\r\n",
[Resource, S])
end, Strings)),
?SEND(Res)
end;
"error" ->
stop;
_ ->
@ -330,20 +342,25 @@ handle_info({route_nick, Nick,
case xml:get_attr_s("type", Attrs) of
"chat" ->
Body = xml:get_path_s(El, [{elem, "body"}, cdata]),
Body1 = case Body of
[$/, $m, $e, $ | Rest] ->
"\001ACTION " ++ Rest ++ "\001";
_ ->
Body
end,
Strings = string:tokens(Body1, "\n"),
Res = lists:concat(
lists:map(
fun(S) ->
io_lib:format("PRIVMSG ~s :~s\r\n",
[Nick, S])
end, Strings)),
?SEND(Res);
case Body of
"/quote " ++ Rest ->
?SEND(Rest ++ "\r\n");
_ ->
Body1 = case Body of
[$/, $m, $e, $ | Rest] ->
"\001ACTION " ++ Rest ++ "\001";
_ ->
Body
end,
Strings = string:tokens(Body1, "\n"),
Res = lists:concat(
lists:map(
fun(S) ->
io_lib:format("PRIVMSG ~s :~s\r\n",
[Nick, S])
end, Strings)),
?SEND(Res)
end;
"error" ->
stop;
_ ->

View File

@ -40,9 +40,9 @@ start_link({SockMod, Socket}, Opts) ->
?INFO_MSG("started: ~p", [{SockMod, Socket}]),
case SockMod of
gen_tcp ->
inet:setopts(Socket, [{packet, http}]);
inet:setopts(Socket, [{packet, http}, {recbuf, 8192}]);
ssl ->
ssl:setopts(Socket, [{packet, http}])
ssl:setopts(Socket, [{packet, http}, {recbuf, 8192}])
end,
{ok, proc_lib:spawn_link(ejabberd_http,
receive_headers,

View File

@ -77,19 +77,19 @@ process_request(#request{path = [],
data = Data} = Request) ->
case catch parse_request(Data) of
{ok, ID1, Key, NewKey, Packet} ->
ID = case ID1 of
"0" ->
NewID = sha:sha(term_to_binary({now(), make_ref()})),
{ok, Pid} = start(NewID, ""),
mnesia:transaction(
fun() ->
mnesia:write(#http_poll{id = NewID,
pid = Pid})
end),
NewID;
_ ->
ID1
end,
ID = if
(ID1 == "0") or (ID1 == "mobile") ->
NewID = sha:sha(term_to_binary({now(), make_ref()})),
{ok, Pid} = start(NewID, ""),
mnesia:transaction(
fun() ->
mnesia:write(#http_poll{id = NewID,
pid = Pid})
end),
NewID;
true ->
ID1
end,
case http_put(ID, Key, NewKey, Packet) of
{error, not_exists} ->
{200, ?BAD_REQUEST, ""};
@ -106,6 +106,8 @@ process_request(#request{path = [],
if
ID == ID1 ->
{200, [?CT], OutPacket};
ID1 == "mobile" ->
{200, [?CT], [ID, $\n, OutPacket]};
true ->
Cookie = "ID=" ++ ID ++ "; expires=-1",
{200, [?CT, {"Set-Cookie", Cookie}],