Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
34 lines (29 sloc)
1.07 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef PROTOCOL_H | |
#define PROTOCOL_H | |
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 */ |