Software /
code /
prosody
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 |
parent | 9897:a471d4cfec5e |
child | 10233: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 |