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