Mercurial > prosody-modules
annotate mod_reload_components/README.markdown @ 5853:97c9b76867ca
mod_log_ringbuffer: Detach event handlers on logging reload (thanks Menel)
Otherwise the global event handlers accumulate, one added each time
logging is reoladed, and each invocation of the signal or event triggers
one dump of each created ringbuffer.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 03 Mar 2024 11:23:40 +0100 |
parents | 85d04dd87f14 |
children |
rev | line source |
---|---|
2391
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
1 Introduction |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
2 ============ |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
3 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
4 This module allows to load/unload external components after they have |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
5 been added/removed to a configuration file. It is necessary to explicitly |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
6 initiate a reload on Prosody either via prosodyctl reload or config:reload(). |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
7 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
8 Example 1: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
9 -------- |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
10 If Prosody has started with this configuration file: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
11 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
12 ``` {.lua} |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
13 VirtualHost "example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
14 authentication = "internal_plain" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
15 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
16 Component "a.example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
17 component_secret = "a" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
18 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
19 Component "b.example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
20 component_secret = "b" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
21 ``` |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
22 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
23 And the file has changed manually or dynamically to: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
24 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
25 ``` {.lua} |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
26 VirtualHost "example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
27 authentication = "internal_plain" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
28 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
29 Component "a.example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
30 component_secret = "a" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
31 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
32 Component "c.example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
33 component_secret = "c" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
34 ``` |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
35 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
36 Then, the following actions will occur if this module is loaded: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
37 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
38 1. The component c.example.com will be loaded and start bouncing for |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
39 authentication. |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
40 2. The component b.example.com will be unloaded and deactivated. The |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
41 connection with it will not be closed, but no further actions will be |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
42 executed on Prosody. |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
43 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
44 Example 2: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
45 -------- |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
46 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
47 If Prosody has started with this configuration file: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
48 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
49 ``` {.lua} |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
50 VirtualHost "example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
51 authentication = "internal_plain" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
52 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
53 Component "a.example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
54 component_secret = "a" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
55 ``` |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
56 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
57 And the file has changed manually or dynamically to: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
58 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
59 ``` {.lua} |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
60 VirtualHost "example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
61 authentication = "internal_plain" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
62 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
63 Component "a.example.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
64 component_secret = "a" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
65 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
66 VirtualHost "newexample.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
67 authentication = "internal_plain" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
68 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
69 Component "a.newexample.com" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
70 component_secret = "a" |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
71 ``` |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
72 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
73 Then, the following actions will occur if this module is loaded: |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
74 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
75 1. The component a.newexample.com will be loaded and start bouncing for |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
76 authentication. Note that its respective VirtualHost is not loaded. Bad |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
77 things may happen. |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
78 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
79 Usage |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
80 ===== |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
81 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
82 Copy the module folder into your Prosody modules directory. Place the |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
83 module between your enabled modules either into the global or a vhost |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
84 section. |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
85 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
86 No configuration directives are needed |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
87 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
88 Info |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
89 ==== |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
90 |
85d04dd87f14
mod_reload_components: add new module and README file.
Camilo <camilo@camilo.fm>
parents:
diff
changeset
|
91 - 0.9, works |