equal
deleted
inserted
replaced
32 repoview, |
32 repoview, |
33 templatefilters, |
33 templatefilters, |
34 templater, |
34 templater, |
35 templateutil, |
35 templateutil, |
36 ui as uimod, |
36 ui as uimod, |
37 util, |
|
38 wireprotoserver, |
37 wireprotoserver, |
39 ) |
38 ) |
40 |
39 |
41 from . import ( |
40 from . import ( |
42 common, |
41 common, |
401 if style != -1: |
400 if style != -1: |
402 req.qsparams[b'style'] = cmd[:style] |
401 req.qsparams[b'style'] = cmd[:style] |
403 cmd = cmd[style + 1 :] |
402 cmd = cmd[style + 1 :] |
404 |
403 |
405 # avoid accepting e.g. style parameter as command |
404 # avoid accepting e.g. style parameter as command |
406 if util.safehasattr(webcommands, pycompat.sysstr(cmd)): |
405 if hasattr(webcommands, pycompat.sysstr(cmd)): |
407 req.qsparams[b'cmd'] = cmd |
406 req.qsparams[b'cmd'] = cmd |
408 |
407 |
409 if cmd == b'static': |
408 if cmd == b'static': |
410 req.qsparams[b'file'] = b'/'.join(args) |
409 req.qsparams[b'file'] = b'/'.join(args) |
411 else: |
410 else: |
476 res.headers[b'Content-Type'] = ctype |
475 res.headers[b'Content-Type'] = ctype |
477 return getattr(webcommands, pycompat.sysstr(cmd))(rctx) |
476 return getattr(webcommands, pycompat.sysstr(cmd))(rctx) |
478 |
477 |
479 except (error.LookupError, error.RepoLookupError) as err: |
478 except (error.LookupError, error.RepoLookupError) as err: |
480 msg = pycompat.bytestr(err) |
479 msg = pycompat.bytestr(err) |
481 if util.safehasattr(err, 'name') and not isinstance( |
480 if hasattr(err, 'name') and not isinstance( |
482 err, error.ManifestLookupError |
481 err, error.ManifestLookupError |
483 ): |
482 ): |
484 msg = b'revision not found: %s' % err.name |
483 msg = b'revision not found: %s' % err.name |
485 |
484 |
486 res.status = b'404 Not Found' |
485 res.status = b'404 Not Found' |