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

Re: [PATCH] git-cvsimport: add suport for CVS pserver method HTTP/1.x proxying

From
Junio C Hamano <junkio@cox.net>
Date
Nov 23, 2006, 23:02 UTC
Message-ID
<7vlkm1ix7b.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<45661C36.9010101@catalyst.net.nz>
"Martin Langhoff (CatalystIT)" <martin@catalyst.net.nz> writes:
Show 12 quoted lines
> Junio C Hamano wrote:
>> Except that this statement made me go "huh?" wondering what it
>> would do to the $filehandle to evaluate <$filehandle> in a void
>> context:
>>
>> +			# Skip the empty line of the proxy server output
>> +			<$s>;
>
> It's a perl idiom that will discard one line of the $filehandle. If we
> are 200% certain that it is empty, then it's fine. OTOH, it may well
> be a bug in the particular proxy implementation Iñaki is using -- I
> don't know enough about CVS proxying to tell.

It is more about HTTP proxying and it is my understanding that response to CONNECT method request has that empty line after the successful (2xx) response line and zero or more response headers. The code is still wrong; it does not have a loop to discard the potential response headers that come before the empty line the code we are discussing discards.

By the way does anybody know where this behaviour is officially specified? Luotonen's draft-luotonen-web-proxy-tunneling-01.txt is pretty clear about the empty line that comes after the response headers, but that document being an internet-draft has expired long time ago, but still seem to be quoted by others.

Show 5 quoted lines
>> The "I/O Operators" section talks about evaluating <$s> in a
>> scalar context (i.e. "$rep = <$s>"), which we all know would
>> return a single line, and in list context, which swallows
>
> This is in scalar context, and that's safe to rely on.

If it were in scalar context I would agree fully. That behaviour is documented. But my point is that it is in void context, and I did not find document specifying what should happen.

Previous: Martin Langhoff (CatalystIT)Next: Martin Langhoff (CatalystIT)
Message 4 of 19 in “git-cvsimport: add suport for CVS pserver method HTTP/1.x proxying”
  1. git-cvsimport: add suport for CVS pserver method HTTP/1.x proxyingInaki Arenaza, Nov 22, 2006
  2. Junio C HamanoNov 23, 2006
  3. Martin Langhoff (CatalystIT)Nov 23, 2006
  4. Junio C HamanoNov 23, 2006
  5. Martin Langhoff (CatalystIT)Nov 23, 2006
  6. Martin LanghoffNov 23, 2006
  7. Junio C HamanoNov 24, 2006
  8. Ignacio ArenazaNov 25, 2006
  9. Jeff KingNov 24, 2006
  10. Junio C HamanoNov 24, 2006
  11. Ignacio ArenazaNov 24, 2006
  12. Ignacio ArenazaNov 24, 2006
  13. Junio C HamanoNov 24, 2006
  14. Ignacio ArenazaNov 24, 2006
  15. Junio C HamanoNov 24, 2006
  16. Ignacio ArenazaNov 27, 2006
  17. Jeff KingNov 24, 2006
  18. Christian CouderNov 24, 2006
  19. Ignacio ArenazaNov 24, 2006

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.