Michael J Gruber noticed that connection via the git:// protocol no longer worked after a recent header clean-up. This was caused by funny interaction of few gotchas. First, a necessary definition #define DEFAULT_GIT_PORT 9418 was made invisible to a place where const char *port = STR(DEFAULT_GIT_PORT); was expecting to turn the integer into "9418" with a clever STR() macro, and ended up stringifying it to const char *port = "DEFAULT_GIT_PORT"; without giving any chance to compilers to notice such a mistake. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef PROTOCOL_H
 | 
						|
#define PROTOCOL_H
 | 
						|
 | 
						|
/*
 | 
						|
 * Intensive research over the course of many years has shown that
 | 
						|
 * port 9418 is totally unused by anything else. Or
 | 
						|
 *
 | 
						|
 *	Your search - "port 9418" - did not match any documents.
 | 
						|
 *
 | 
						|
 * as www.google.com puts it.
 | 
						|
 *
 | 
						|
 * This port has been properly assigned for git use by IANA:
 | 
						|
 * git (Assigned-9418) [I06-050728-0001].
 | 
						|
 *
 | 
						|
 *	git  9418/tcp   git pack transfer service
 | 
						|
 *	git  9418/udp   git pack transfer service
 | 
						|
 *
 | 
						|
 * with Linus Torvalds <torvalds@osdl.org> as the point of
 | 
						|
 * contact. September 2005.
 | 
						|
 *
 | 
						|
 * See http://www.iana.org/assignments/port-numbers
 | 
						|
 */
 | 
						|
#define DEFAULT_GIT_PORT 9418
 | 
						|
 | 
						|
enum protocol_version {
 | 
						|
	protocol_unknown_version = -1,
 | 
						|
	protocol_v0 = 0,
 | 
						|
	protocol_v1 = 1,
 | 
						|
	protocol_v2 = 2,
 | 
						|
};
 | 
						|
 | 
						|
/*
 | 
						|
 * Used by a client to determine which protocol version to request be used when
 | 
						|
 * communicating with a server, reflecting the configured value of the
 | 
						|
 * 'protocol.version' config.  If unconfigured, a value of 'protocol_v0' is
 | 
						|
 * returned.
 | 
						|
 */
 | 
						|
enum protocol_version get_protocol_version_config(void);
 | 
						|
 | 
						|
/*
 | 
						|
 * Used by a server to determine which protocol version should be used based on
 | 
						|
 * a client's request, communicated via the 'GIT_PROTOCOL' environment variable
 | 
						|
 * by setting appropriate values for the key 'version'.  If a client doesn't
 | 
						|
 * request a particular protocol version, a default of 'protocol_v0' will be
 | 
						|
 * used.
 | 
						|
 */
 | 
						|
enum protocol_version determine_protocol_version_server(void);
 | 
						|
 | 
						|
/*
 | 
						|
 * Used by a client to determine which protocol version the server is speaking
 | 
						|
 * based on the server's initial response.
 | 
						|
 */
 | 
						|
enum protocol_version determine_protocol_version_client(const char *server_response);
 | 
						|
 | 
						|
#endif /* PROTOCOL_H */
 |