202 function component_listener.ondisconnect(conn, err) |
202 function component_listener.ondisconnect(conn, err) |
203 local session = sessions[conn]; |
203 local session = sessions[conn]; |
204 if session then |
204 if session then |
205 (session.log or log)("info", "component disconnected: %s (%s)", tostring(session.host), tostring(err)); |
205 (session.log or log)("info", "component disconnected: %s (%s)", tostring(session.host), tostring(err)); |
206 if session.on_destroy then session:on_destroy(err); end |
206 if session.on_destroy then session:on_destroy(err); end |
207 if hosts[session.host] then |
207 sessions[conn] = nil; |
208 log("debug", "Deregistering component"); |
|
209 cm_deregister_component(session.host); |
|
210 hosts[session.host].connected = nil; |
|
211 end |
|
212 sessions[conn] = nil; |
|
213 for k in pairs(session) do |
208 for k in pairs(session) do |
214 if k ~= "log" and k ~= "close" then |
209 if k ~= "log" and k ~= "close" then |
215 session[k] = nil; |
210 session[k] = nil; |
216 end |
211 end |
217 end |
212 end |