Software /
code /
prosody
Annotate
teal-src/module.d.tl @ 12480:7e9ebdc75ce4
net: isolate LuaSec-specifics
For this, various accessor functions are now provided directly on the
sockets, which reach down into the LuaSec implementation to obtain the
information.
While this may seem of little gain at first, it hides the implementation
detail of the LuaSec+LuaSocket combination that the actual socket and
the TLS layer are separate objects.
The net gain here is that an alternative implementation does not have to
emulate that specific implementation detail and "only" has to expose
LuaSec-compatible data structures on the new functions.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Wed, 27 Apr 2022 17:44:14 +0200 |
parent | 11941:cfd37453e6b6 |
child | 12502:5862ddf71e3c |
rev | line source |
---|---|
11941
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local st = require"util.stanza" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 global record moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 get_name : function (moduleapi) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 get_host : function (moduleapi) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 enum host_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 "global" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 "local" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 "component" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 get_host_type : function (moduleapi) : host_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 set_global : function (moduleapi) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 add_feature : function (moduleapi, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 add_identity : function (moduleapi, string, string, string) -- TODO enum? |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 add_extension : function (moduleapi, st.stanza_t) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 fire_event : function (moduleapi, string, any) : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 type handler = function (any) : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 record util_events |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 hook_object_event : function (moduleapi, util_events, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 unhook_object_event : function (moduleapi, util_events, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 hook : function (moduleapi, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 hook_global : function (moduleapi, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 hook_tag : function (moduleapi, string, string, handler, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 unhook : function (moduleapi, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 wrap_object_event : function (moduleapi, util_events, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 wrap_event : function (moduleapi, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 wrap_global : function (moduleapi, string, handler) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 require : function (moduleapi, string) : table |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 depends : function (moduleapi, string) : table |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 shared : function (moduleapi, string) : table |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 type config_getter = function<A> (moduleapi, string, A) : A |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 get_option : config_getter<any> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 get_option_scalar : config_getter<nil | boolean | number | string> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 get_option_string : config_getter<string> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 get_option_number : config_getter<number> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 get_option_boolean : config_getter<boolean> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 record util_array |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 { any } |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
42 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 get_option_array : config_getter<util_array> |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
44 record util_set |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
45 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
46 _items : { any : boolean } |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
47 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 get_option_set : function (moduleapi, string, { any }) : util_set |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
49 get_option_inherited_set : function (moduleapi, string, { any }) : util_set |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 get_option_path : function (moduleapi, string, string, string) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
51 context : function (moduleapi, string) : moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
52 add_item : function (moduleapi, string, any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
53 remove_item : function (moduleapi, string, any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
54 get_host_items : function (moduleapi, string) : { any } |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
55 handle_items : function (moduleapi, string, handler, handler, boolean) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
56 provides : function (moduleapi, string, table) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
57 record util_session |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
58 -- TODO import def |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
59 send : function ( st.stanza_t | string ) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
60 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
61 send : function (moduleapi, st.stanza_t, util_session) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
62 send_iq : function (moduleapi, st.stanza_t, util_session, number) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 broadcast : function (moduleapi, { string }, st.stanza_t, function) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
64 type timer_callback = function (number, ... : any) : number |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
65 add_timer : function (moduleapi, number, timer_callback, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 get_directory : function (moduleapi) : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
67 enum file_mode |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
68 "r" "w" "a" "r+" "w+" "a+" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
69 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
70 load_resource : function (moduleapi, string, file_mode) : FILE |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
71 enum store_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
72 "keyval" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
73 "map" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
74 "archive" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
75 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
76 open_store : function (moduleapi, string, store_type) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
77 enum stat_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
78 "amount" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
79 "counter" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
80 "rate" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
81 "distribution" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
82 "sizes" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
83 "times" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
84 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
85 record stats_conf |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
86 initial : number |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
87 units : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
88 type : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
89 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
90 measure : function (moduleapi, string, stat_type, stats_conf) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
91 measure_object_event : function (moduleapi, util_events, string, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
92 measure_event : function (moduleapi, string, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
93 measure_global_event : function (moduleapi, string, string) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
94 enum status_type |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
95 "error" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
96 "warn" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
97 "info" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
98 "core" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
99 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
100 set_status : function (moduleapi, status_type, string, boolean) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
101 enum log_level |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
102 "debug" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
103 "info" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
104 "warn" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
105 "error" |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
106 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
107 log_status : function (moduleapi, log_level, string, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
108 get_status : function (moduleapi) : status_type, string, number |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
109 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
110 -- added by modulemanager |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
111 name : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
112 host : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
113 _log : function (log_level, string, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
114 log : function (moduleapi, log_level, string, ... : any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
115 reloading : boolean |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
116 saved_state : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
117 record module_environment |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
118 module : moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
119 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
120 environment : module_environment |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
121 path : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
122 resource_path : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
124 -- methods the module can add |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
125 load : function () |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
126 add_host : function (moduleapi) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
127 save : function () : any |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
128 restore : function (any) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
129 unload : function () |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
130 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
131 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
132 global module : moduleapi |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
133 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
134 global record common_event |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
135 stanza : st.stanza_t |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
136 record origin |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
137 send : function (st.stanza_t) |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
138 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
139 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
140 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
141 global record prosody |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
142 version : string |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
143 end |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
144 |
cfd37453e6b6
teal: Describe the module API interface
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
145 return module |