plugins/mod_c2s.lua
changeset 6633 6735e2d735d6
parent 6382 57d23c26039b
child 6849 7eb166fa1f26
equal deleted inserted replaced
6632:42aeb882b3e1 6633:6735e2d735d6
    25 local log = module._log;
    25 local log = module._log;
    26 
    26 
    27 local c2s_timeout = module:get_option_number("c2s_timeout");
    27 local c2s_timeout = module:get_option_number("c2s_timeout");
    28 local stream_close_timeout = module:get_option_number("c2s_close_timeout", 5);
    28 local stream_close_timeout = module:get_option_number("c2s_close_timeout", 5);
    29 local opt_keepalives = module:get_option_boolean("c2s_tcp_keepalives", module:get_option_boolean("tcp_keepalives", true));
    29 local opt_keepalives = module:get_option_boolean("c2s_tcp_keepalives", module:get_option_boolean("tcp_keepalives", true));
       
    30 
       
    31 local measure_connections = module:measure("connections", "counter");
    30 
    32 
    31 local sessions = module:shared("sessions");
    33 local sessions = module:shared("sessions");
    32 local core_process_stanza = prosody.core_process_stanza;
    34 local core_process_stanza = prosody.core_process_stanza;
    33 local hosts = prosody.hosts;
    35 local hosts = prosody.hosts;
    34 
    36 
   196 	(self.data.log or log)("error", "Traceback[c2s]: %s", err);
   198 	(self.data.log or log)("error", "Traceback[c2s]: %s", err);
   197 end
   199 end
   198 
   200 
   199 --- Port listener
   201 --- Port listener
   200 function listener.onconnect(conn)
   202 function listener.onconnect(conn)
       
   203 	measure_connections(1);
   201 	local session = sm_new_session(conn);
   204 	local session = sm_new_session(conn);
   202 	sessions[conn] = session;
   205 	sessions[conn] = session;
   203 
   206 
   204 	session.log("info", "Client connected");
   207 	session.log("info", "Client connected");
   205 
   208 
   268 		session.data(data);
   271 		session.data(data);
   269 	end
   272 	end
   270 end
   273 end
   271 
   274 
   272 function listener.ondisconnect(conn, err)
   275 function listener.ondisconnect(conn, err)
       
   276 	measure_connections(-1);
   273 	local session = sessions[conn];
   277 	local session = sessions[conn];
   274 	if session then
   278 	if session then
   275 		(session.log or log)("info", "Client disconnected: %s", err or "connection closed");
   279 		(session.log or log)("info", "Client disconnected: %s", err or "connection closed");
   276 		sm_destroy_session(session, err);
   280 		sm_destroy_session(session, err);
   277 		sessions[conn]  = nil;
   281 		sessions[conn]  = nil;