Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-07-30 17:48:52 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2016-07-30 17:48:52 +0300
commit792e6a7c1c5f5fa0c1a9f7bb2cb25a1c21bae3a6 (patch)
tree21a2e07260e4d2a18c6b476745bca12576521869 /tools
parentd2d3b961eb5738c03216ef436a8575da80a5a2e4 (diff)
Rewrite mod_http_upload to use XML generator
Diffstat (limited to 'tools')
-rw-r--r--tools/xmpp_codec.spec72
1 files changed, 72 insertions, 0 deletions
diff --git a/tools/xmpp_codec.spec b/tools/xmpp_codec.spec
index 9cb14282c..293f12d17 100644
--- a/tools/xmpp_codec.spec
+++ b/tools/xmpp_codec.spec
@@ -3021,6 +3021,78 @@
refs = [#ref{name = sic_ip, min = 0, max = 1, label = '$ip'},
#ref{name = sip_port, min = 0, max = 1, label = '$port'}]}).
+-xml(upload_filename,
+ #elem{name = <<"filename">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = '$cdata',
+ cdata = #cdata{required = true}}).
+
+-xml(upload_size,
+ #elem{name = <<"size">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = '$cdata',
+ cdata = #cdata{required = true,
+ dec = {dec_int, [0, infinity]},
+ enc = {enc_int, []}}}).
+
+-xml(upload_content_type,
+ #elem{name = <<"content-type">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = '$cdata',
+ cdata = #cdata{default = <<"">>}}).
+
+-xml(upload_request,
+ #elem{name = <<"request">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = {upload_request, '$filename', '$size',
+ '$content-type', '$xmlns'},
+ attrs = [#attr{name = <<"xmlns">>}],
+ refs = [#ref{name = upload_filename, label = '$filename',
+ min = 1, max = 1},
+ #ref{name = upload_size, label = '$size', min = 1, max = 1},
+ #ref{name = upload_content_type, label = '$content-type',
+ min = 0, max = 1, default = <<"">>}]}).
+
+-xml(upload_get,
+ #elem{name = <<"get">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = '$cdata',
+ cdata = #cdata{required = true}}).
+
+-xml(upload_put,
+ #elem{name = <<"put">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = '$cdata',
+ cdata = #cdata{required = true}}).
+
+-xml(upload_slot,
+ #elem{name = <<"slot">>,
+ xmlns = [<<"urn:xmpp:http:upload">>,
+ <<"eu:siacs:conversations:http:upload">>],
+ result = {upload_slot, '$get', '$put', '$xmlns'},
+ attrs = [#attr{name = <<"xmlns">>}],
+ refs = [#ref{name = upload_get, min = 0, max = 1, label = '$get'},
+ #ref{name = upload_put, min = 0, max = 1, label = '$put'}]}).
+
+-xml(thumbnail,
+ #elem{name = <<"thumbnail">>,
+ xmlns = <<"urn:xmpp:thumbs:1">>,
+ result = {thumbnail, '$uri', '$media-type', '$width', '$height'},
+ attrs = [#attr{name = <<"uri">>, required = true},
+ #attr{name = <<"media-type">>, default = <<"">>},
+ #attr{name = <<"width">>,
+ dec = {dec_int, [0, infinity]},
+ enc = {enc_int, []}},
+ #attr{name = <<"height">>,
+ dec = {dec_int, [0, infinity]},
+ enc = {enc_int, []}}]}).
+
dec_tzo(Val) ->
[H1, M1] = str:tokens(Val, <<":">>),
H = jlib:binary_to_integer(H1),