Server: More overmodulation fixes
This commit is contained in:
parent
f09753040c
commit
e438cde9d2
|
@ -114,8 +114,8 @@ class FRNServer(BufferingLineReceiver, TimeoutMixin):
|
|||
log.msg("Logging out client %s" % self.user)
|
||||
self.factory.manager.clientLogout(self.factory.serverAuth, self.user)
|
||||
self.factory.tracker.logout(self)
|
||||
if self.factory.talking == self:
|
||||
self.factory.talking = None
|
||||
if self.factory.talking.get(self.user.NT) == self:
|
||||
del self.factory.talking[self.user.NT]
|
||||
self.transport.loseConnection()
|
||||
|
||||
def decodeCT(self, body):
|
||||
|
@ -160,8 +160,8 @@ class FRNServer(BufferingLineReceiver, TimeoutMixin):
|
|||
def decodeRX(self, body):
|
||||
log.msg("RX%d" % int(body))
|
||||
self.startPinging()
|
||||
if self.factory.talking == self:
|
||||
self.factory.talking = None
|
||||
if self.factory.talking.get(self.user.NT) == self:
|
||||
del self.factory.talking[self.user.NT]
|
||||
for c in self.factory.tracker.getClientList(self.user.NT):
|
||||
cp = self.factory.tracker.getClientProtocol(c.ID).startPinging()
|
||||
|
||||
|
@ -186,8 +186,8 @@ class FRNServer(BufferingLineReceiver, TimeoutMixin):
|
|||
def decodeTX(self, body):
|
||||
if body == '0':
|
||||
if not self.factory.tracker.isMute(self.user.ID):
|
||||
if not self.factory.talking:
|
||||
self.factory.talking = self
|
||||
if not self.factory.talking.get(self.user.NT):
|
||||
self.factory.talking[self.user.NT] = self
|
||||
ih,il = divmod(self.getIndex(), 256)
|
||||
self.transport.write(chr(1)+chr(ih)+chr(il))
|
||||
elif body == '1':
|
||||
|
@ -267,7 +267,7 @@ class FRNServer(BufferingLineReceiver, TimeoutMixin):
|
|||
|
||||
def audioFrameReceived(self, frame):
|
||||
#log.msg("audioFrameReceived")
|
||||
if self.factory.tracker.canTalk(self.user.ID) and self.factory.talking == self:
|
||||
if self.factory.tracker.canTalk(self.user.ID) and self.factory.talking.get(self.user.NT) == self:
|
||||
clientIdx = self.getIndex()
|
||||
for c in self.factory.tracker.getClientList(self.user.NT):
|
||||
if int(c.S) < 2 and c.ID != self.user.ID:
|
||||
|
@ -350,7 +350,7 @@ class FRNServerFactory(ServerFactory):
|
|||
def __init__(self, trackerfile, manager, serverAuth):
|
||||
self.manager = manager
|
||||
self.serverAuth = serverAuth
|
||||
self.talking = None
|
||||
self.talking = {}
|
||||
self.officialNets = []
|
||||
self.tracker = ClientTracker(
|
||||
trackerfile,
|
||||
|
|
Loading…
Reference in New Issue