Re: Request for detailed documentation of git pack protocol
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Jun 3, 2009, 15:50 UTC
- Message-ID
- <20090603155023.GH3355@spearce.org>
- In-Reply-To
- <200906031739.49682.jnareb@gmail.com>
Jakub Narebski <jnareb@gmail.com> wrote:
Show 7 quoted lines
> On Wed, 3 Jun 2009, Shawn O. Pearce wrote: > > "Shawn O. Pearce" <spearce@spearce.org> wrote: > > > > Ok, I'm wrong. It *doesn't* send the port. The reason is obtuse, > > but git_tcp_connect() clobbers the port number out of the host > > What about git_proxy_connect()? Does it clobber port number either?
Dammit, not enough coffee.
We copy the string before the clobbering happens. It *DOES* send the port. Either way, TCP or proxy.
JGit isn't compliant. I'll send a patch soon.
Show 5 quoted lines
> > name string, so that later when git_connect() sends this "host=%s", > > only the host name is transmitted. > > Hmmm... so does that mean that in the following fragment of deamon.c > on branch is dead in practice?
No, its valid... I misread the client code.
Show 6 quoted lines
> A question: do compliant implementation MUST not fail on receiving > arguments it doesn't understand, e.g.: > > 003bgit-upload-pack /project.git\0host=myserver.com\0user=me\0 > > or can it go hang the client, or silently fail?
My understanding is that a compliant server MUST accept and ignore anything the client sends if it doesn't recognize it.
-- Shawn.