Server: More overmodulation fixes

This commit is contained in:
Maurizio Porrato 2011-02-20 12:14:09 +01:00
parent f09753040c
commit e438cde9d2
1 changed files with 8 additions and 8 deletions

View File

@ -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,