Mercurial > prosody-hg
comparison plugins/s2s/s2sout.lib.lua @ 4573:09255a10fdfa
Merge Zash with Florob and Maranda
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 24 Feb 2012 16:23:46 +0000 |
| parents | a11b4cbac3c5 9612abc89dd1 |
| children | f9f5230d7a9c |
comparison
equal
deleted
inserted
replaced
| 4564:a11b4cbac3c5 | 4573:09255a10fdfa |
|---|---|
| 13 local idna_to_ascii = require "util.encodings".idna.to_ascii; | 13 local idna_to_ascii = require "util.encodings".idna.to_ascii; |
| 14 local add_task = require "util.timer".add_task; | 14 local add_task = require "util.timer".add_task; |
| 15 local new_ip = require "util.ip".new_ip; | 15 local new_ip = require "util.ip".new_ip; |
| 16 local rfc3484_dest = require "util.rfc3484".destination; | 16 local rfc3484_dest = require "util.rfc3484".destination; |
| 17 local socket = require "socket"; | 17 local socket = require "socket"; |
| 18 local t_insert, t_sort = table.insert, table.sort; | 18 local t_insert, t_sort, ipairs = table.insert, table.sort, ipairs; |
| 19 local st = require "util.stanza"; | 19 local st = require "util.stanza"; |
| 20 | 20 |
| 21 local s2s_new_outgoing = require "core.s2smanager".new_outgoing; | |
| 21 local s2s_destroy_session = require "core.s2smanager".destroy_session; | 22 local s2s_destroy_session = require "core.s2smanager".destroy_session; |
| 22 local s2s_new_outgoing = require "core.s2smanager".new_outgoing; | 23 |
| 24 local cfg_sources = config.get("*", "core", "s2s_interfaces") or socket.local_addresses and socket.local_addresses() or { "*" }; | |
| 23 | 25 |
| 24 local s2sout = {}; | 26 local s2sout = {}; |
| 25 | 27 |
| 26 local s2s_listener; | 28 local s2s_listener; |
| 27 | 29 |
| 28 local cfg_sources = config.get("*", "core", "s2s_interfaces") or {"*"}; | |
| 29 local sources | |
| 30 | 30 |
| 31 function s2sout.set_listener(listener) | 31 function s2sout.set_listener(listener) |
| 32 s2s_listener = listener; | 32 s2s_listener = listener; |
| 33 end | 33 end |
| 34 | 34 |
| 154 end | 154 end |
| 155 end | 155 end |
| 156 end | 156 end |
| 157 | 157 |
| 158 function s2sout.try_connect(host_session, connect_host, connect_port, err) | 158 function s2sout.try_connect(host_session, connect_host, connect_port, err) |
| 159 local sources; | |
| 159 host_session.connecting = true; | 160 host_session.connecting = true; |
| 160 | 161 |
| 161 if not err then | 162 if not err then |
| 162 local IPs = {}; | 163 local IPs = {}; |
| 163 host_session.ip_hosts = IPs; | 164 host_session.ip_hosts = IPs; |
| 164 local handle4, handle6; | 165 local handle4, handle6; |
| 165 local has_other = false; | 166 local has_other = false; |
| 166 | 167 |
| 167 if not sources then | 168 if not sources then |
| 168 sources = {}; | 169 sources = {}; |
| 169 for i, source in ipairs(cfg_sources) do | 170 for i, source in ipairs(cfg_sources) do |
| 170 if source == "*" then | 171 if source == "*" then |
| 171 sources[i] = new_ip("0.0.0.0", "IPv4"); | 172 sources[i] = new_ip("0.0.0.0", "IPv4"); |
| 172 else | 173 else |
| 173 sources[i] = new_ip(source, (source:find(":") and "IPv6") or "IPv4"); | 174 sources[i] = new_ip(source, (source:find(":") and "IPv6") or "IPv4"); |
