git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Add ERR support to smart HTTP

From
Shawn O. Pearce <spearce@spearce.org>
Date
Sep 6, 2010, 18:19 UTC
Message-ID
<20100906181921.GN32601@spearce.org>
In-Reply-To
<AANLkTikmU9_Vg2+=73yjPyaaDSqk73Bvs1HyNjFDWqNY@mail.gmail.com>
Sitaram Chamarty <sitaramc@gmail.com> wrote:
Show 14 quoted lines
> On Mon, Sep 6, 2010 at 8:26 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
> > That is, the following will trigger a correct error on the client:
> >
> >  200 OK
> >  Content-Type: application/x-git-upload-pack-advertisement
> >
> >  001e# service=git-upload-pack
> >  0022ERR You shall not do this
> 
> are those counts accurate for the specific example you show or just made up?
> 
> It seems the first line has a count in hex that includes the newline
> at the end, and the second one has a count in decimal that does not
> include the newline nor even the 4-digits plus "ERR"
Feh.  I can't count.  The first count is correct.  The second count
should also be 001e.  I guess that should be obvious by just looking
at the two lines, they are equal in length.  :-)
 
Show 5 quoted lines
> > Likewise if you wanted to do this with receive-pack, replace upload
> > with receive above and adjust the pkt-line lengths.
> 
> ok... what about all the other service commands?  like /info/refs?
> What should I put there?
The only other command that matters is info/refs.
For smart clients, its what I said above.

For dumb clients, you have to use some sort of HTTP error status that isn't 404. Dumb clients pre-1.6.6 use a curl error message buffer to print out an error. But they don't check the format of info/refs at all, and skip over garbage and/or interpret garbage as valid input. So we can't use a hack like "ERR blah" to even trigger a parsing failure.

-- 
Shawn.
Previous: Sitaram ChamartyNext: Sitaram Chamarty
Message 14 of 18 in “Add ERR support to smart HTTP”
  1. Add ERR support to smart HTTPIlari Liusvaara, Sep 5, 2010
  2. Jonathan NiederSep 5, 2010
  3. Ilari LiusvaaraSep 5, 2010
  4. Ævar Arnfjörð BjarmasonSep 5, 2010
  5. Ilari LiusvaaraSep 5, 2010
  6. Jakub NarebskiSep 5, 2010
  7. Sitaram ChamartySep 6, 2010
  8. Sitaram ChamartySep 6, 2010
  9. Ævar Arnfjörð BjarmasonSep 6, 2010
  10. Jakub NarebskiSep 6, 2010
  11. Joshua JuranSep 6, 2010
  12. Shawn O. PearceSep 6, 2010
  13. Sitaram ChamartySep 6, 2010
  14. Shawn O. PearceSep 6, 2010
  15. Sitaram ChamartySep 8, 2010
  16. Sitaram ChamartySep 6, 2010
  17. Jakub NarebskiSep 6, 2010
  18. Jonathan NiederSep 5, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.