Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 76 additions & 52 deletions include/xmpp_codec.hrl
Original file line number Diff line number Diff line change
Expand Up @@ -211,12 +211,6 @@
-record(x509_challenge_failed, {}).
-type x509_challenge_failed() :: #x509_challenge_failed{}.

-record(thumbnail, {uri = <<>> :: binary(),
'media-type' = <<>> :: binary(),
width :: 'undefined' | non_neg_integer(),
height :: 'undefined' | non_neg_integer()}).
-type thumbnail() :: #thumbnail{}.

-record(x509_csr, {name = <<>> :: binary(),
der = <<>> :: binary()}).
-type x509_csr() :: #x509_csr{}.
Expand Down Expand Up @@ -482,16 +476,6 @@
nick = <<>> :: binary()}).
-type mix_presence() :: #mix_presence{}.

-record(privacy_item, {order :: non_neg_integer(),
action :: 'allow' | 'deny',
type :: 'group' | 'jid' | 'subscription' | 'undefined',
value = <<>> :: binary(),
message = false :: boolean(),
iq = false :: boolean(),
presence_in = false :: boolean(),
presence_out = false :: boolean()}).
-type privacy_item() :: #privacy_item{}.

-record(upload_retry, {stamp :: undefined | erlang:timestamp()}).
-type upload_retry() :: #upload_retry{}.

Expand Down Expand Up @@ -613,16 +597,6 @@
occupant_id :: 'undefined' | #occupant_id{}}).
-type message_moderated() :: #message_moderated{}.

-record(message_retract, {id = <<>> :: binary(),
reason :: 'undefined' | binary(),
moderated :: 'undefined' | #message_moderated{}}).
-type message_retract() :: #message_retract{}.

-record(message_moderate, {id = <<>> :: binary(),
reason :: 'undefined' | binary(),
retract :: 'undefined' | #message_retract{}}).
-type message_moderate() :: #message_moderate{}.

-record(hash_used, {algo = <<>> :: binary()}).
-type hash_used() :: #hash_used{}.

Expand Down Expand Up @@ -696,6 +670,10 @@
id = <<>> :: binary()}).
-type referenced_stanza() :: #referenced_stanza{}.

-record(reported_ip, {type :: 'client' | 'server',
cdata :: inet:ip_address()}).
-type reported_ip() :: #reported_ip{}.

-record(sm_r, {xmlns = <<>> :: binary()}).
-type sm_r() :: #sm_r{}.

Expand Down Expand Up @@ -1200,14 +1178,6 @@
items = [] :: [#muc_item{}]}).
-type muc_owner() :: #muc_owner{}.

-record(pubsub_owner, {affiliations :: 'undefined' | {binary(),[#ps_affiliation{}]},
configure :: 'undefined' | {binary(),'undefined' | #xdata{}},
default :: 'undefined' | {binary(),'undefined' | #xdata{}},
delete :: 'undefined' | {binary(),binary()},
purge :: 'undefined' | binary(),
subscriptions :: 'undefined' | {binary(),[#ps_subscription{}]}}).
-type pubsub_owner() :: #pubsub_owner{}.

-record(ps_options, {node = <<>> :: binary(),
jid :: undefined | jid:jid(),
subid = <<>> :: binary(),
Expand All @@ -1234,6 +1204,22 @@
resource :: 'undefined' | binary()}).
-type legacy_auth() :: #legacy_auth{}.

-record(reporter, {jid :: undefined | jid:jid(),
id :: 'undefined' | binary()}).
-type reporter() :: #reporter{}.

-record(reported_entity, {jid :: jid:jid(),
ip :: 'undefined' | #reported_ip{}}).
-type reported_entity() :: #reported_entity{}.

-record(received_report, {id = <<>> :: binary(),
report :: #report{},
reported_at :: erlang:timestamp(),
reported_entity :: #reported_entity{},
reporter :: 'undefined' | #reporter{},
stanzas :: 'undefined' | [#forwarded{}]}).
-type received_report() :: #received_report{}.

-record(unified_push_push, {application = <<>> :: binary(),
instance = <<>> :: binary(),
data = <<>> :: binary()}).
Expand Down Expand Up @@ -1342,10 +1328,6 @@
occupant_id :: 'undefined' | #occupant_id{}}).
-type message_moderated_21() :: #message_moderated_21{}.

-record(message_moderate_21, {reason :: 'undefined' | binary(),
retract :: 'undefined' | #message_retract{}}).
-type message_moderate_21() :: #message_moderate_21{}.

-record(address, {type :: 'bcc' | 'cc' | 'noreply' | 'ofrom' | 'replyroom' | 'replyto' | 'to',
jid :: undefined | jid:jid(),
desc = <<>> :: binary(),
Expand Down Expand Up @@ -1376,15 +1358,6 @@
mix_annotate = false :: boolean()}).
-type roster_query() :: #roster_query{}.

-record(privacy_list, {name = <<>> :: binary(),
items = [] :: [#privacy_item{}]}).
-type privacy_list() :: #privacy_list{}.

-record(privacy_query, {lists = [] :: [#privacy_list{}],
default :: 'none' | 'undefined' | binary(),
active :: 'none' | 'undefined' | binary()}).
-type privacy_query() :: #privacy_query{}.

-record(preauth, {token = <<>> :: binary()}).
-type preauth() :: #preauth{}.

Expand Down Expand Up @@ -1442,6 +1415,34 @@
lon :: 'undefined' | binary()}).
-type vcard_geo() :: #vcard_geo{}.

-record(oob_x, {url :: binary(),
desc = <<>> :: binary(),
sid = <<>> :: binary(),
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
-type oob_x() :: #oob_x{}.

-record(pubsub_owner, {affiliations :: 'undefined' | {binary(),[#ps_affiliation{}]},
configure :: 'undefined' | {binary(),'undefined' | #xdata{}},
default :: 'undefined' | {binary(),'undefined' | #xdata{}},
delete :: 'undefined' | {binary(),binary()},
purge :: 'undefined' | binary(),
subscriptions :: 'undefined' | {binary(),[#ps_subscription{}]}}).
-type pubsub_owner() :: #pubsub_owner{}.

-record(message_retract, {id = <<>> :: binary(),
reason :: 'undefined' | binary(),
moderated :: 'undefined' | #message_moderated{}}).
-type message_retract() :: #message_retract{}.

-record(message_moderate_21, {reason :: 'undefined' | binary(),
retract :: 'undefined' | #message_retract{}}).
-type message_moderate_21() :: #message_moderate_21{}.

-record(message_moderate, {id = <<>> :: binary(),
reason :: 'undefined' | binary(),
retract :: 'undefined' | #message_retract{}}).
-type message_moderate() :: #message_moderate{}.

-record(vcard_temp, {version :: 'undefined' | binary(),
fn :: 'undefined' | binary(),
n :: 'undefined' | #vcard_name{},
Expand Down Expand Up @@ -1474,11 +1475,30 @@
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
-type vcard_temp() :: #vcard_temp{}.

-record(oob_x, {url :: binary(),
desc = <<>> :: binary(),
sid = <<>> :: binary(),
sub_els = [] :: [xmpp_element() | fxml:xmlel()]}).
-type oob_x() :: #oob_x{}.
-record(privacy_item, {order :: non_neg_integer(),
action :: 'allow' | 'deny',
type :: 'group' | 'jid' | 'subscription' | 'undefined',
value = <<>> :: binary(),
message = false :: boolean(),
iq = false :: boolean(),
presence_in = false :: boolean(),
presence_out = false :: boolean()}).
-type privacy_item() :: #privacy_item{}.

-record(privacy_list, {name = <<>> :: binary(),
items = [] :: [#privacy_item{}]}).
-type privacy_list() :: #privacy_list{}.

-record(privacy_query, {lists = [] :: [#privacy_list{}],
default :: 'none' | 'undefined' | binary(),
active :: 'none' | 'undefined' | binary()}).
-type privacy_query() :: #privacy_query{}.

-record(thumbnail, {uri = <<>> :: binary(),
'media-type' = <<>> :: binary(),
width :: 'undefined' | non_neg_integer(),
height :: 'undefined' | non_neg_integer()}).
-type thumbnail() :: #thumbnail{}.

-type xmpp_element() :: address() |
addresses() |
Expand Down Expand Up @@ -1660,10 +1680,14 @@
push_notification() |
receipt_request() |
receipt_response() |
received_report() |
redirect() |
referenced_stanza() |
register() |
report() |
reported_entity() |
reported_ip() |
reporter() |
roster_item() |
roster_query() |
rosterver_feature() |
Expand Down
85 changes: 85 additions & 0 deletions specs/xmpp_codec.spec
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,91 @@
#ref{name = stanza_id,
label = '$stanza_ids'}]}).

-xml(reported_at,
#elem{name = <<"reported-at">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = '$cdata',
cdata = #cdata{required = true,
enc = {enc_utc, []},
dec = {dec_utc, []}}
}).

-xml(report_jid,
#elem{name = <<"jid">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = '$cdata',
cdata = #cdata{dec = {jid, decode, []},
enc = {jid, encode, []}}}).

-xml(reported_ip,
#elem{name = <<"ip">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = {reported_ip, '$type', '$cdata'},
attrs = [#attr{name = <<"type">>,
required = true,
enc = {enc_enum, []},
dec = {dec_enum, [[server, client]]}
}],
cdata = #cdata{required = true,
dec = {dec_ip, []},
enc = {enc_ip, []}}}).

-xml(reported_entity,
#elem{name = <<"reported-entity">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = {reported_entity, '$jid', '$ip'},
refs = [#ref{name = report_jid, label = '$jid', min = 1, max = 1},
#ref{name = reported_ip, label = '$ip', min = 0, max = 1}]}).

-xml(reporter_id,
#elem{name = <<"id">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = '$cdata',
cdata = #cdata{required = true}
}
).

-xml(reporter,
#elem{name = <<"reporter">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = {reporter, '$jid', '$id'},
refs = [#ref{name = report_jid, label = '$jid', min = 0, max = 1},
#ref{name = reporter_id, label = '$id', min = 0, max = 1}]
}).

-xml(stanzas,
#elem{name = <<"stanzas">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = '$forwarded',
refs = [#ref{name = forwarded, label = '$forwarded'}]
}).

-xml(received_report,
#elem{
name = <<"received-report">>,
xmlns = <<"urn:xmpp:incidents:report:0">>,
module = 'xepXXXX',
result = {received_report, '$id', '$report', '$reported_at', '$reported_entity', '$reporter', '$stanzas'},
attrs = [#attr{name = <<"id">>, required = true}],
refs = [#ref{name = report, label = '$report',
min = 1, max = 1},
#ref{name = reported_at, label = '$reported_at',
min = 1, max = 1},
#ref{name = reported_entity, label = '$reported_entity',
min = 1, max = 1},
#ref{name = reporter, label = '$reporter',
min = 0, max = 1},
#ref{name = stanzas, label = '$stanzas',
min = 0, max = 1}
]}).

-xml(disco_identity,
#elem{name = <<"identity">>,
xmlns = <<"http://jabber.org/protocol/disco#info">>,
Expand Down
Loading