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