plugins/mod_component.lua
changeset 3616 95ae7af2c82b
parent 3615 c72d24c2d97b
child 3617 26c9ba8f309c
equal deleted inserted replaced
3615:c72d24c2d97b 3616:95ae7af2c82b
    81 		log("info", "Component for %s authentication failed", session.host);
    81 		log("info", "Component for %s authentication failed", session.host);
    82 		session:close{ condition = "not-authorized", text = "Given token does not match calculated token" };
    82 		session:close{ condition = "not-authorized", text = "Given token does not match calculated token" };
    83 		return true;
    83 		return true;
    84 	end
    84 	end
    85 	
    85 	
    86 	
       
    87 	-- Authenticated now
    86 	-- Authenticated now
    88 	log("info", "Component authenticated: %s", session.host);
    87 	log("info", "Component authenticated: %s", session.host);
    89 	
    88 	
    90 	session.component_validate_from = module:get_option_boolean("validate_from_addresses") ~= false;
    89 	session.component_validate_from = module:get_option_boolean("validate_from_addresses") ~= false;
    91 	
    90 	
    93 	if not main_session then
    92 	if not main_session then
    94 		send = session.send;
    93 		send = session.send;
    95 		main_session = session;
    94 		main_session = session;
    96 		session.on_destroy = on_destroy;
    95 		session.on_destroy = on_destroy;
    97 		log("info", "Component successfully registered");
    96 		log("info", "Component successfully registered");
       
    97 		session.send(st.stanza("handshake"));
    98 	else
    98 	else
    99 		log("error", "Multiple components bound to the same address, first one wins (TODO: Implement stanza distribution)");
    99 		log("error", "Multiple components bound to the same address, first one wins (TODO: Implement stanza distribution)");
   100 		session:close{ condition = "conflict", text = "Component already connected" };
   100 		session:close{ condition = "conflict", text = "Component already connected" };
   101 		return true;
       
   102 	end
   101 	end
   103 	
   102 	
   104 	-- Signal successful authentication
       
   105 	session.send(st.stanza("handshake"));
       
   106 	return true;
   103 	return true;
   107 end
   104 end
   108 
   105 
   109 module:hook("stanza/jabber:component:accept:handshake", handle_component_auth);
   106 module:hook("stanza/jabber:component:accept:handshake", handle_component_auth);