Software / code / verse
Comparison
init.lua @ 411:db462d4feb44
verse: trim trailing whitespace
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 18 Apr 2017 16:46:26 +0200 |
| parent | 399:82ad158714e5 |
| child | 417:d46a502955c0 |
comparison
equal
deleted
inserted
replaced
| 410:6171ef2a4025 | 411:db462d4feb44 |
|---|---|
| 113 end | 113 end |
| 114 | 114 |
| 115 function stream:connect(connect_host, connect_port) | 115 function stream:connect(connect_host, connect_port) |
| 116 connect_host = connect_host or "localhost"; | 116 connect_host = connect_host or "localhost"; |
| 117 connect_port = tonumber(connect_port) or 5222; | 117 connect_port = tonumber(connect_port) or 5222; |
| 118 | 118 |
| 119 -- Create and initiate connection | 119 -- Create and initiate connection |
| 120 local conn = socket.tcp() | 120 local conn = socket.tcp() |
| 121 conn:settimeout(0); | 121 conn:settimeout(0); |
| 122 conn:setoption("keepalive", true); | 122 conn:setoption("keepalive", true); |
| 123 local success, err = conn:connect(connect_host, connect_port); | 123 local success, err = conn:connect(connect_host, connect_port); |
| 124 | 124 |
| 125 if not success and err ~= "timeout" then | 125 if not success and err ~= "timeout" then |
| 126 self:warn("connect() to %s:%d failed: %s", connect_host, connect_port, err); | 126 self:warn("connect() to %s:%d failed: %s", connect_host, connect_port, err); |
| 127 return self:event("disconnected", { reason = err }) or false, err; | 127 return self:event("disconnected", { reason = err }) or false, err; |
| 128 end | 128 end |
| 129 | 129 |
| 145 return conn:write(data); | 145 return conn:write(data); |
| 146 end; | 146 end; |
| 147 end | 147 end |
| 148 | 148 |
| 149 function stream:close(reason) | 149 function stream:close(reason) |
| 150 if not self.conn then | 150 if not self.conn then |
| 151 verse.log("error", "Attempt to close disconnected connection - possibly a bug"); | 151 verse.log("error", "Attempt to close disconnected connection - possibly a bug"); |
| 152 return; | 152 return; |
| 153 end | 153 end |
| 154 local on_disconnect = self.conn.disconnect(); | 154 local on_disconnect = self.conn.disconnect(); |
| 155 self.conn:close(); | 155 self.conn:close(); |
| 212 end | 212 end |
| 213 | 213 |
| 214 -- Listener factory | 214 -- Listener factory |
| 215 function new_listener(stream) | 215 function new_listener(stream) |
| 216 local conn_listener = {}; | 216 local conn_listener = {}; |
| 217 | 217 |
| 218 function conn_listener.onconnect(conn) | 218 function conn_listener.onconnect(conn) |
| 219 if stream.server then | 219 if stream.server then |
| 220 local client = verse.new(); | 220 local client = verse.new(); |
| 221 conn:setlistener(new_listener(client)); | 221 conn:setlistener(new_listener(client)); |
| 222 client:set_conn(conn); | 222 client:set_conn(conn); |
| 224 else | 224 else |
| 225 stream.connected = true; | 225 stream.connected = true; |
| 226 stream:event("connected"); | 226 stream:event("connected"); |
| 227 end | 227 end |
| 228 end | 228 end |
| 229 | 229 |
| 230 function conn_listener.onincoming(conn, data) | 230 function conn_listener.onincoming(conn, data) |
| 231 stream:event("incoming-raw", data); | 231 stream:event("incoming-raw", data); |
| 232 end | 232 end |
| 233 | 233 |
| 234 function conn_listener.ondisconnect(conn, err) | 234 function conn_listener.ondisconnect(conn, err) |
| 235 if conn ~= stream.conn then return end | 235 if conn ~= stream.conn then return end |
| 236 stream.connected = false; | 236 stream.connected = false; |
| 237 stream:event("disconnected", { reason = err }); | 237 stream:event("disconnected", { reason = err }); |
| 238 end | 238 end |
| 239 | 239 |
| 240 function conn_listener.ondrain(conn) | 240 function conn_listener.ondrain(conn) |
| 241 stream:event("drained"); | 241 stream:event("drained"); |
| 242 end | 242 end |
| 243 | 243 |
| 244 function conn_listener.onstatus(conn, new_status) | 244 function conn_listener.onstatus(conn, new_status) |
| 245 stream:event("status", new_status); | 245 stream:event("status", new_status); |
| 246 end | 246 end |
| 247 | 247 |
| 248 return conn_listener; | 248 return conn_listener; |
| 249 end | 249 end |
| 250 | 250 |
| 251 return verse; | 251 return verse; |