817 if repo.ui.configbool('experimental', 'bundle2-advertise'): |
817 if repo.ui.configbool('experimental', 'bundle2-advertise'): |
818 capsblob = bundle2.encodecaps(bundle2.getrepocaps(repo, role='server')) |
818 capsblob = bundle2.encodecaps(bundle2.getrepocaps(repo, role='server')) |
819 caps.append('bundle2=' + urlreq.quote(capsblob)) |
819 caps.append('bundle2=' + urlreq.quote(capsblob)) |
820 caps.append('unbundle=%s' % ','.join(bundle2.bundlepriority)) |
820 caps.append('unbundle=%s' % ','.join(bundle2.bundlepriority)) |
821 |
821 |
822 if proto.name == 'http-v1': |
822 return proto.addcapabilities(repo, caps) |
823 caps.append('httpheader=%d' % |
|
824 repo.ui.configint('server', 'maxhttpheaderlen')) |
|
825 if repo.ui.configbool('experimental', 'httppostargs'): |
|
826 caps.append('httppostargs') |
|
827 |
|
828 # FUTURE advertise 0.2rx once support is implemented |
|
829 # FUTURE advertise minrx and mintx after consulting config option |
|
830 caps.append('httpmediatype=0.1rx,0.1tx,0.2tx') |
|
831 |
|
832 compengines = supportedcompengines(repo.ui, util.SERVERROLE) |
|
833 if compengines: |
|
834 comptypes = ','.join(urlreq.quote(e.wireprotosupport().name) |
|
835 for e in compengines) |
|
836 caps.append('compression=%s' % comptypes) |
|
837 |
|
838 return caps |
|
839 |
823 |
840 # If you are writing an extension and consider wrapping this function. Wrap |
824 # If you are writing an extension and consider wrapping this function. Wrap |
841 # `_capabilities` instead. |
825 # `_capabilities` instead. |
842 @wireprotocommand('capabilities') |
826 @wireprotocommand('capabilities') |
843 def capabilities(repo, proto): |
827 def capabilities(repo, proto): |