#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "repository.h" #include "config.h" #include "hash.h" #include "pkt-line.h" #include "version.h" #include "ls-refs.h" #include "protocol-caps.h" #include "serve.h" #include "upload-pack.h" #include "bundle-uri.h" #include "trace2.h" static int advertise_sid = …; static int advertise_object_info = …; static int client_hash_algo = …; static int always_advertise(struct repository *r UNUSED, struct strbuf *value UNUSED) { … } static int agent_advertise(struct repository *r UNUSED, struct strbuf *value) { … } static int object_format_advertise(struct repository *r, struct strbuf *value) { … } static void object_format_receive(struct repository *r UNUSED, const char *algo_name) { … } static int session_id_advertise(struct repository *r, struct strbuf *value) { … } static void session_id_receive(struct repository *r UNUSED, const char *client_sid) { … } static int object_info_advertise(struct repository *r, struct strbuf *value UNUSED) { … } struct protocol_capability { … }; static struct protocol_capability capabilities[] = …; void protocol_v2_advertise_capabilities(void) { … } static struct protocol_capability *get_capability(const char *key, const char **value) { … } static int receive_client_capability(const char *key) { … } static int parse_command(const char *key, struct protocol_capability **command) { … } enum request_state { … }; static int process_request(void) { … } void protocol_v2_serve_loop(int stateless_rpc) { … }