|
10 | 10 | import random |
11 | 11 | import signal |
12 | 12 | import sys |
13 | | -# --- Patch slixmpp para permitir SASL PLAIN/SCRAM sem TLS (dev local) --- |
14 | | -# Por default o slixmpp recusa autenticar sem encriptação; em dev local com |
15 | | -# Prosody em internal_plain isso impede o login. Habilitamos os mecanismos |
16 | | -# inseguros porque toda a comunicação fica em loopback (127.0.0.1). |
| 13 | + |
17 | 14 | import slixmpp |
18 | | -_orig_xmpp_init = slixmpp.ClientXMPP.__init__ |
19 | | -def _patched_xmpp_init(self, *args, **kwargs): |
20 | | - _orig_xmpp_init(self, *args, **kwargs) |
21 | | - self["feature_mechanisms"].unencrypted_plain = True |
22 | | - self["feature_mechanisms"].unencrypted_scram = True |
23 | | - self["feature_starttls"].do_starttls = False |
24 | | -slixmpp.ClientXMPP.__init__ = _patched_xmpp_init |
25 | 15 |
|
26 | 16 | from agents.comfort_agent import ComfortAgent |
27 | 17 | from agents.coordinator_agent import CoordinatorAgent |
@@ -51,6 +41,25 @@ def _patched_xmpp_init(self, *args, **kwargs): |
51 | 41 | from simulation.mqtt_bus import MQTTSensorPublisher |
52 | 42 | from simulation.mqtt_bus import is_available as mqtt_available |
53 | 43 |
|
| 44 | +# --- Patch slixmpp para permitir SASL PLAIN/SCRAM sem TLS (dev local) --- |
| 45 | +# Por default o slixmpp recusa autenticar sem encriptação; em dev local com |
| 46 | +# Prosody em internal_plain isso impede o login. Habilitamos os mecanismos |
| 47 | +# inseguros porque toda a comunicação fica em loopback (127.0.0.1). |
| 48 | +# O patch é aplicado a nível de módulo (antes de qualquer agent.start()); a |
| 49 | +# importação de SPADE acima não instancia nenhum ClientXMPP, apenas regista as |
| 50 | +# classes, pelo que o monkey-patch entra em vigor antes do primeiro cliente. |
| 51 | +_orig_xmpp_init = slixmpp.ClientXMPP.__init__ |
| 52 | + |
| 53 | + |
| 54 | +def _patched_xmpp_init(self, *args, **kwargs): |
| 55 | + _orig_xmpp_init(self, *args, **kwargs) |
| 56 | + self["feature_mechanisms"].unencrypted_plain = True |
| 57 | + self["feature_mechanisms"].unencrypted_scram = True |
| 58 | + self["feature_starttls"].do_starttls = False |
| 59 | + |
| 60 | + |
| 61 | +slixmpp.ClientXMPP.__init__ = _patched_xmpp_init |
| 62 | + |
54 | 63 | # ─── Logging ───────────────────────────────────────────────────────────────── |
55 | 64 |
|
56 | 65 | configure_logging(level="INFO", to_file=True) |
@@ -153,10 +162,20 @@ async def main(): |
153 | 162 | # em valor 0 desde o arranque. |
154 | 163 | from core.metrics import ( |
155 | 164 | active_negotiations as _an, |
| 165 | + ) |
| 166 | + from core.metrics import ( |
156 | 167 | cfp_sent_total as _cs, |
| 168 | + ) |
| 169 | + from core.metrics import ( |
157 | 170 | escalations_total as _es, |
| 171 | + ) |
| 172 | + from core.metrics import ( |
158 | 173 | proposals_received_total as _pr, |
| 174 | + ) |
| 175 | + from core.metrics import ( |
159 | 176 | redistributions_total as _rt, |
| 177 | + ) |
| 178 | + from core.metrics import ( |
160 | 179 | refusals_received_total as _rf, |
161 | 180 | ) |
162 | 181 | for lib in campus.libraries: |
|
0 commit comments