1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
  
     | 
    
      #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 https://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 */
 
     |