#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 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 */