equal
deleted
inserted
replaced
581 self.fileno = self.sock.fileno |
581 self.fileno = self.sock.fileno |
582 |
582 |
583 def handle_timeout(self): |
583 def handle_timeout(self): |
584 pass |
584 pass |
585 |
585 |
586 def handle_event(self, fd, event): |
586 def answer_stat_query(self, cs): |
587 sock, addr = self.sock.accept() |
|
588 |
|
589 cs = common.recvcs(sock) |
|
590 version = ord(cs.read(1)) |
|
591 |
|
592 if version != common.version: |
|
593 self.ui.warn(_('received query from incompatible client ' |
|
594 'version %d\n') % version) |
|
595 return |
|
596 |
|
597 type = cs.read(4) |
|
598 |
|
599 names = cs.read().split('\0') |
587 names = cs.read().split('\0') |
600 |
588 |
601 states = names.pop() |
589 states = names.pop() |
602 |
590 |
603 self.ui.note(_('answering query for %r\n') % states) |
591 self.ui.note(_('answering query for %r\n') % states) |
621 yield fn |
609 yield fn |
622 except TypeError: |
610 except TypeError: |
623 for f, s in self.repowatcher.walk(states, l, fn): |
611 for f, s in self.repowatcher.walk(states, l, fn): |
624 yield f |
612 yield f |
625 |
613 |
626 results = ['\0'.join(r) for r in [ |
614 return ['\0'.join(r) for r in [ |
627 genresult('l', self.repowatcher.statustrees['l']), |
615 genresult('l', self.repowatcher.statustrees['l']), |
628 genresult('m', self.repowatcher.statustrees['m']), |
616 genresult('m', self.repowatcher.statustrees['m']), |
629 genresult('a', self.repowatcher.statustrees['a']), |
617 genresult('a', self.repowatcher.statustrees['a']), |
630 genresult('r', self.repowatcher.statustrees['r']), |
618 genresult('r', self.repowatcher.statustrees['r']), |
631 genresult('!', self.repowatcher.statustrees['!']), |
619 genresult('!', self.repowatcher.statustrees['!']), |
633 and genresult('?', self.repowatcher.statustrees['?']) |
621 and genresult('?', self.repowatcher.statustrees['?']) |
634 or [], |
622 or [], |
635 [], |
623 [], |
636 'c' in states and genresult('n', self.repowatcher.tree) or [], |
624 'c' in states and genresult('n', self.repowatcher.tree) or [], |
637 ]] |
625 ]] |
|
626 |
|
627 def handle_event(self, fd, event): |
|
628 sock, addr = self.sock.accept() |
|
629 |
|
630 cs = common.recvcs(sock) |
|
631 version = ord(cs.read(1)) |
|
632 |
|
633 if version != common.version: |
|
634 self.ui.warn(_('received query from incompatible client ' |
|
635 'version %d\n') % version) |
|
636 return |
|
637 |
|
638 type = cs.read(4) |
|
639 |
|
640 if type == 'STAT': |
|
641 results = self.answer_stat_query(cs) |
|
642 else: |
|
643 self.ui.warn(_('unrecognized query type: %s\n') % type) |
|
644 return |
638 |
645 |
639 try: |
646 try: |
640 try: |
647 try: |
641 v = chr(common.version) |
648 v = chr(common.version) |
642 |
649 |