equal
deleted
inserted
replaced
901 self.condition.notify() |
901 self.condition.notify() |
902 self.condition.release() |
902 self.condition.release() |
903 |
903 |
904 def delReader(self, socket): |
904 def delReader(self, socket): |
905 self.condition.acquire() |
905 self.condition.acquire() |
906 del(self.readers[socket]) |
906 del self.readers[socket] |
907 self.condition.notify() |
907 self.condition.notify() |
908 self.condition.release() |
908 self.condition.release() |
909 |
909 |
910 def notify(self): |
910 def notify(self): |
911 self.condition.acquire() |
911 self.condition.acquire() |
999 if not expired: |
999 if not expired: |
1000 oldrecord.resetTTL(record) |
1000 oldrecord.resetTTL(record) |
1001 else: |
1001 else: |
1002 def callback(x): |
1002 def callback(x): |
1003 return self.listener.removeService(x, self.type, record.alias) |
1003 return self.listener.removeService(x, self.type, record.alias) |
1004 del(self.services[record.alias.lower()]) |
1004 del self.services[record.alias.lower()] |
1005 self.list.append(callback) |
1005 self.list.append(callback) |
1006 return |
1006 return |
1007 except Exception: |
1007 except Exception: |
1008 if not expired: |
1008 if not expired: |
1009 def callback(x): |
1009 def callback(x): |
1346 def removeServiceListener(self, listener): |
1346 def removeServiceListener(self, listener): |
1347 """Removes a listener from the set that is currently listening.""" |
1347 """Removes a listener from the set that is currently listening.""" |
1348 for browser in self.browsers: |
1348 for browser in self.browsers: |
1349 if browser.listener == listener: |
1349 if browser.listener == listener: |
1350 browser.cancel() |
1350 browser.cancel() |
1351 del(browser) |
1351 del browser |
1352 |
1352 |
1353 def registerService(self, info, ttl=_DNS_TTL): |
1353 def registerService(self, info, ttl=_DNS_TTL): |
1354 """Registers service information to the network with a default TTL |
1354 """Registers service information to the network with a default TTL |
1355 of 60 seconds. Zeroconf will then respond to requests for |
1355 of 60 seconds. Zeroconf will then respond to requests for |
1356 information for that service. The name of the service may be |
1356 information for that service. The name of the service may be |
1376 nextTime += _REGISTER_TIME |
1376 nextTime += _REGISTER_TIME |
1377 |
1377 |
1378 def unregisterService(self, info): |
1378 def unregisterService(self, info): |
1379 """Unregister a service.""" |
1379 """Unregister a service.""" |
1380 try: |
1380 try: |
1381 del(self.services[info.name.lower()]) |
1381 del self.services[info.name.lower()] |
1382 except Exception: |
1382 except Exception: |
1383 pass |
1383 pass |
1384 now = currentTimeMillis() |
1384 now = currentTimeMillis() |
1385 nextTime = now |
1385 nextTime = now |
1386 i = 0 |
1386 i = 0 |
1428 nextTime = now |
1428 nextTime = now |
1429 i = 0 |
1429 i = 0 |
1430 while i < 3: |
1430 while i < 3: |
1431 for record in self.cache.entriesWithName(info.type): |
1431 for record in self.cache.entriesWithName(info.type): |
1432 if record.type == _TYPE_PTR and not record.isExpired(now) and record.alias == info.name: |
1432 if record.type == _TYPE_PTR and not record.isExpired(now) and record.alias == info.name: |
1433 if (info.name.find('.') < 0): |
1433 if info.name.find('.') < 0: |
1434 info.name = info.name + ".[" + info.address + ":" + info.port + "]." + info.type |
1434 info.name = info.name + ".[" + info.address + ":" + info.port + "]." + info.type |
1435 self.checkService(info) |
1435 self.checkService(info) |
1436 return |
1436 return |
1437 raise NonUniqueNameException |
1437 raise NonUniqueNameException |
1438 if now < nextTime: |
1438 if now < nextTime: |