mercurial/sshserver.py
changeset 11622 1d48681b17a4
parent 11621 e46a8b2331a6
child 11623 31d0a6d50ee2
equal deleted inserted replaced
11621:e46a8b2331a6 11622:1d48681b17a4
    48 
    48 
    49     def getarg(self, name):
    49     def getarg(self, name):
    50         return self.getargs(name)[0]
    50         return self.getargs(name)[0]
    51 
    51 
    52     def getfile(self, fpout):
    52     def getfile(self, fpout):
    53         self.respond('')
    53         self.sendresponse('')
    54         count = int(self.fin.readline())
    54         count = int(self.fin.readline())
    55         while count:
    55         while count:
    56             fpout.write(self.fin.read(count))
    56             fpout.write(self.fin.read(count))
    57             count = int(self.fin.readline())
    57             count = int(self.fin.readline())
    58 
    58 
    59     def redirect(self):
    59     def redirect(self):
    60         pass
    60         pass
    61 
    61 
    62     def respond(self, v):
    62     def sendresponse(self, v):
    63         self.fout.write("%d\n" % len(v))
    63         self.fout.write("%d\n" % len(v))
    64         self.fout.write(v)
    64         self.fout.write(v)
    65         self.fout.flush()
    65         self.fout.flush()
    66 
    66 
    67     def sendchangegroup(self, changegroup):
    67     def sendchangegroup(self, changegroup):
    76     def sendstream(self, source):
    76     def sendstream(self, source):
    77         for chunk in source:
    77         for chunk in source:
    78             self.fout.write(chunk)
    78             self.fout.write(chunk)
    79         self.fout.flush()
    79         self.fout.flush()
    80 
    80 
    81     def respondpush(self, ret):
    81     def sendpushresponse(self, ret):
    82         self.respond('')
    82         self.sendresponse('')
    83         self.respond(str(ret))
    83         self.sendresponse(str(ret))
    84 
    84 
    85     def serve_forever(self):
    85     def serve_forever(self):
    86         try:
    86         try:
    87             while self.serve_one():
    87             while self.serve_one():
    88                 pass
    88                 pass
    98         elif cmd:
    98         elif cmd:
    99             impl = getattr(self, 'do_' + cmd, None)
    99             impl = getattr(self, 'do_' + cmd, None)
   100             if impl:
   100             if impl:
   101                 r = impl()
   101                 r = impl()
   102                 if r is not None:
   102                 if r is not None:
   103                     self.respond(r)
   103                     self.sendresponse(r)
   104             else: self.respond("")
   104             else: self.sendresponse("")
   105         return cmd != ''
   105         return cmd != ''
   106 
   106 
   107     def do_lock(self):
   107     def do_lock(self):
   108         '''DEPRECATED - allowing remote client to lock repo is not safe'''
   108         '''DEPRECATED - allowing remote client to lock repo is not safe'''
   109 
   109 
   120 
   120 
   121     def do_addchangegroup(self):
   121     def do_addchangegroup(self):
   122         '''DEPRECATED'''
   122         '''DEPRECATED'''
   123 
   123 
   124         if not self.lock:
   124         if not self.lock:
   125             self.respond("not locked")
   125             self.sendresponse("not locked")
   126             return
   126             return
   127 
   127 
   128         self.respond("")
   128         self.sendresponse("")
   129         r = self.repo.addchangegroup(self.fin, 'serve', self._client(),
   129         r = self.repo.addchangegroup(self.fin, 'serve', self._client(),
   130                                      lock=self.lock)
   130                                      lock=self.lock)
   131         return str(r)
   131         return str(r)
   132 
   132 
   133     def _client(self):
   133     def _client(self):