All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <junkio@cox.net>
To: "Martin Langhoff (CatalystIT)" <martin@catalyst.net.nz>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-cvsimport: add suport for CVS pserver method HTTP/1.x proxying
Date: Thu, 23 Nov 2006 15:02:00 -0800	[thread overview]
Message-ID: <7vlkm1ix7b.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <45661C36.9010101@catalyst.net.nz> (Martin Langhoff's message of "Fri, 24 Nov 2006 11:09:58 +1300")

"Martin Langhoff (CatalystIT)" <martin@catalyst.net.nz> writes:

> 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.

>> 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.

  reply	other threads:[~2006-11-23 23:02 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-22 22:26 [PATCH] git-cvsimport: add suport for CVS pserver method HTTP/1.x proxying Inaki Arenaza
     [not found] ` <7v64 d5keke.fsf@assigned-by-dhcp.cox.net>
2006-11-23 22:01 ` Junio C Hamano
2006-11-23 22:09   ` Martin Langhoff (CatalystIT)
2006-11-23 23:02     ` Junio C Hamano [this message]
2006-11-23 23:20       ` Martin Langhoff (CatalystIT)
2006-11-23 23:52       ` Martin Langhoff
2006-11-24  0:24         ` Junio C Hamano
2006-11-25 12:43           ` Ignacio Arenaza
2006-11-24  1:42         ` Jeff King
2006-11-24  2:54           ` Junio C Hamano
2006-11-24  8:43   ` Ignacio Arenaza
2006-11-24  8:46   ` Ignacio Arenaza
2006-11-24  8:57     ` Junio C Hamano
2006-11-24  9:05       ` Ignacio Arenaza
2006-11-24 11:48         ` Junio C Hamano
2006-11-27 16:27           ` Ignacio Arenaza
2006-11-24 14:57       ` Jeff King
2006-11-24  4:48 ` Christian Couder
2006-11-24  8:41   ` Ignacio Arenaza

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vlkm1ix7b.fsf@assigned-by-dhcp.cox.net \
    --to=junkio@cox.net \
    --cc=git@vger.kernel.org \
    --cc=martin@catalyst.net.nz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.