equal
deleted
inserted
replaced
351 res.status = b'404 Not Found' |
351 res.status = b'404 Not Found' |
352 res.headers[b'Content-Type'] = b'text/plain' |
352 res.headers[b'Content-Type'] = b'text/plain' |
353 res.setbodybytes(_('invalid wire protocol command: %s') % command) |
353 res.setbodybytes(_('invalid wire protocol command: %s') % command) |
354 return |
354 return |
355 |
355 |
|
356 # TODO consider cases where proxies may add additional Accept headers. |
356 if req.headers.get(b'Accept') != FRAMINGTYPE: |
357 if req.headers.get(b'Accept') != FRAMINGTYPE: |
357 res.status = b'406 Not Acceptable' |
358 res.status = b'406 Not Acceptable' |
358 res.headers[b'Content-Type'] = b'text/plain' |
359 res.headers[b'Content-Type'] = b'text/plain' |
359 res.setbodybytes(_('client MUST specify Accept header with value: %s\n') |
360 res.setbodybytes(_('client MUST specify Accept header with value: %s\n') |
360 % FRAMINGTYPE) |
361 % FRAMINGTYPE) |
505 res.headers[b'Content-Type'] = b'text/plain' |
506 res.headers[b'Content-Type'] = b'text/plain' |
506 res.setbodybytes(_('wire protocol command not available: %s') % |
507 res.setbodybytes(_('wire protocol command not available: %s') % |
507 command['command']) |
508 command['command']) |
508 return True |
509 return True |
509 |
510 |
|
511 # TODO don't use assert here, since it may be elided by -O. |
510 assert authedperm in (b'ro', b'rw') |
512 assert authedperm in (b'ro', b'rw') |
511 wirecommand = wireproto.commands[command['command']] |
513 wirecommand = wireproto.commands[command['command']] |
512 assert wirecommand.permission in ('push', 'pull') |
514 assert wirecommand.permission in ('push', 'pull') |
513 |
515 |
514 if authedperm == b'ro' and wirecommand.permission != 'pull': |
516 if authedperm == b'ro' and wirecommand.permission != 'pull': |
554 |
556 |
555 if action == 'sendframes': |
557 if action == 'sendframes': |
556 res.setbodygen(meta['framegen']) |
558 res.setbodygen(meta['framegen']) |
557 return True |
559 return True |
558 elif action == 'noop': |
560 elif action == 'noop': |
559 pass |
561 return False |
560 else: |
562 else: |
561 raise error.ProgrammingError('unhandled event from reactor: %s' % |
563 raise error.ProgrammingError('unhandled event from reactor: %s' % |
562 action) |
564 action) |
563 |
565 |
564 # Maps API name to metadata so custom API can be registered. |
566 # Maps API name to metadata so custom API can be registered. |