mercurial/hgweb/hgweb_mod.py
changeset 2673 109a22f5434a
parent 2666 ebf033bc8eb2
child 2685 2edfd6644a9f
equal deleted inserted replaced
2671:82864a2eb709 2673:109a22f5434a
   902             req.write(response)
   902             req.write(response)
   903 
   903 
   904         # require ssl by default, auth info cannot be sniffed and
   904         # require ssl by default, auth info cannot be sniffed and
   905         # replayed
   905         # replayed
   906         ssl_req = self.repo.ui.configbool('web', 'push_ssl', True)
   906         ssl_req = self.repo.ui.configbool('web', 'push_ssl', True)
   907         if ssl_req and not req.env.get('HTTPS'):
   907         if ssl_req:
   908             bail(_('ssl required\n'))
   908             if not req.env.get('HTTPS'):
   909             return
   909                 bail(_('ssl required\n'))
       
   910                 return
       
   911             proto = 'https'
       
   912         else:
       
   913             proto = 'http'
   910 
   914 
   911         # do not allow push unless explicitly allowed
   915         # do not allow push unless explicitly allowed
   912         if not self.check_perm(req, 'push', False):
   916         if not self.check_perm(req, 'push', False):
   913             bail(_('push not authorized\n'),
   917             bail(_('push not authorized\n'),
   914                  headers={'status': '401 Unauthorized'})
   918                  headers={'status': '401 Unauthorized'})
   950 
   954 
   951                 old_stdout = sys.stdout
   955                 old_stdout = sys.stdout
   952                 sys.stdout = cStringIO.StringIO()
   956                 sys.stdout = cStringIO.StringIO()
   953 
   957 
   954                 try:
   958                 try:
   955                     ret = self.repo.addchangegroup(fp, 'serve')
   959                     url = 'remote:%s:%s' % (proto,
       
   960                                             req.env.get('REMOTE_HOST', ''))
       
   961                     ret = self.repo.addchangegroup(fp, 'serve', url)
   956                 finally:
   962                 finally:
   957                     val = sys.stdout.getvalue()
   963                     val = sys.stdout.getvalue()
   958                     sys.stdout = old_stdout
   964                     sys.stdout = old_stdout
   959                 req.write('%d\n' % ret)
   965                 req.write('%d\n' % ret)
   960                 req.write(val)
   966                 req.write(val)