mercurial/sshserver.py
changeset 25692 9f6e0e7ef828
parent 22390 e2806b8613ca
child 25976 72b36785d7f4
equal deleted inserted replaced
25691:5cda0ce05c42 25692:9f6e0e7ef828
     4 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
     4 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>
     5 #
     5 #
     6 # This software may be used and distributed according to the terms of the
     6 # This software may be used and distributed according to the terms of the
     7 # GNU General Public License version 2 or any later version.
     7 # GNU General Public License version 2 or any later version.
     8 
     8 
     9 import util, hook, wireproto, changegroup
     9 import util, hook, wireproto
    10 import os, sys
    10 import os, sys
    11 
    11 
    12 class sshserver(wireproto.abstractserverproto):
    12 class sshserver(wireproto.abstractserverproto):
    13     def __init__(self, ui, repo):
    13     def __init__(self, ui, repo):
    14         self.ui = ui
    14         self.ui = ui
   118                 if r is not None:
   118                 if r is not None:
   119                     self.sendresponse(r)
   119                     self.sendresponse(r)
   120             else: self.sendresponse("")
   120             else: self.sendresponse("")
   121         return cmd != ''
   121         return cmd != ''
   122 
   122 
   123     def do_lock(self):
       
   124         '''DEPRECATED - allowing remote client to lock repo is not safe'''
       
   125 
       
   126         self.lock = self.repo.lock()
       
   127         return ""
       
   128 
       
   129     def do_unlock(self):
       
   130         '''DEPRECATED'''
       
   131 
       
   132         if self.lock:
       
   133             self.lock.release()
       
   134         self.lock = None
       
   135         return ""
       
   136 
       
   137     def do_addchangegroup(self):
       
   138         '''DEPRECATED'''
       
   139 
       
   140         if not self.lock:
       
   141             self.sendresponse("not locked")
       
   142             return
       
   143 
       
   144         self.sendresponse("")
       
   145         cg = changegroup.cg1unpacker(self.fin, "UN")
       
   146         r = changegroup.addchangegroup(self.repo, cg, 'serve', self._client())
       
   147         self.lock.release()
       
   148         return str(r)
       
   149 
       
   150     def _client(self):
   123     def _client(self):
   151         client = os.environ.get('SSH_CLIENT', '').split(' ', 1)[0]
   124         client = os.environ.get('SSH_CLIENT', '').split(' ', 1)[0]
   152         return 'remote:ssh:' + client
   125         return 'remote:ssh:' + client