Mercurial > prosody-hg
comparison net/server_event.lua @ 9915:9fe7b18bca15
net.server_event: Allow writing into buffer of write-locked connections
Check for 'nointerface' flag instead, whatever that means.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 24 Mar 2019 19:07:39 +0100 |
| parents | a471d4cfec5e |
| children | 600eee3c4752 |
comparison
equal
deleted
inserted
replaced
| 9914:2c6b7247c3d9 | 9915:9fe7b18bca15 |
|---|---|
| 302 return self._connections | 302 return self._connections |
| 303 end | 303 end |
| 304 | 304 |
| 305 -- Public methods | 305 -- Public methods |
| 306 function interface_mt:write(data) | 306 function interface_mt:write(data) |
| 307 if self.nowriting then return nil, "locked" end | 307 if self.nointerface then return nil, "locked"; end |
| 308 --vdebug( "try to send data to client, id/data:", self.id, data ) | 308 --vdebug( "try to send data to client, id/data:", self.id, data ) |
| 309 data = tostring( data ) | 309 data = tostring( data ) |
| 310 local len = #data | 310 local len = #data |
| 311 local total = len + self.writebufferlen | 311 local total = len + self.writebufferlen |
| 312 if total > cfg.MAX_SEND_LENGTH then -- check buffer length | 312 if total > cfg.MAX_SEND_LENGTH then -- check buffer length |
| 314 debug( "error:", err ) -- to much, check your app | 314 debug( "error:", err ) -- to much, check your app |
| 315 return nil, err | 315 return nil, err |
| 316 end | 316 end |
| 317 t_insert(self.writebuffer, data) -- new buffer | 317 t_insert(self.writebuffer, data) -- new buffer |
| 318 self.writebufferlen = total | 318 self.writebufferlen = total |
| 319 if not self.eventwrite then -- register new write event | 319 if not self.eventwrite and not self.nowriting then -- register new write event |
| 320 --vdebug( "register new write event" ) | 320 --vdebug( "register new write event" ) |
| 321 self.eventwrite = addevent( base, self.conn, EV_WRITE, self.writecallback, cfg.WRITE_TIMEOUT ) | 321 self.eventwrite = addevent( base, self.conn, EV_WRITE, self.writecallback, cfg.WRITE_TIMEOUT ) |
| 322 end | 322 end |
| 323 return true | 323 return true |
| 324 end | 324 end |
