# HG changeset patch
# User Matthew Wild <mwild1@gmail.com>
# Date 1255042315 -3600
# Node ID 2c295826a96d49ef52caaf144f8fbe146c618812
# Parent  82342e7f1b84ac21f1b63c115fe31658097fb4bf
componentmanager: Use ssl_ctx of 'parent' host (should fix TLS for components)

diff -r 82342e7f1b84 -r 2c295826a96d core/componentmanager.lua
--- a/core/componentmanager.lua	Thu Oct 08 23:41:59 2009 +0100
+++ b/core/componentmanager.lua	Thu Oct 08 23:51:55 2009 +0100
@@ -70,7 +70,18 @@
 
 function create_component(host, component, events)
 	-- TODO check for host well-formedness
-	return { type = "component", host = host, connected = true, s2sout = {}, events = events or events_new() };
+	local ssl_ctx;
+	if host then
+		-- We need to find SSL context to use...
+		-- Discussion in prosody@ concluded that
+		-- 1 level back is usually enough by default
+		local base_host = host:gsub("^[^%.]+", "");
+		if hosts[base_host] then
+			ssl_ctx = hosts[base_host].ssl_ctx;
+		end
+	end
+	return { type = "component", host = host, connected = true, s2sout = {}, 
+			ssl_ctx = ssl_ctx, events = events or events_new() };
 end
 
 function register_component(host, component, session)