blob: 1645126c17f889659d84174210a43939ef67507f [file] [log] [blame]
Junio C Hamano47a59182013-07-08 13:56:53 -07001#ifndef CONNECT_H
2#define CONNECT_H
3
Junio C Hamanoca5e3962018-07-09 14:35:39 -07004#include "protocol.h"
Beat Bolli2e75c8e2018-07-09 21:25:32 +02005
Junio C Hamano47a59182013-07-08 13:56:53 -07006#define CONNECT_VERBOSE (1u << 0)
Torsten Bögershausen5610b7c2013-11-28 20:49:17 +01007#define CONNECT_DIAG_URL (1u << 1)
Eric Wongc915f112016-02-03 04:09:14 +00008#define CONNECT_IPV4 (1u << 2)
9#define CONNECT_IPV6 (1u << 3)
Jeff Kingeaa0fd62023-03-17 15:08:51 -040010struct child_process *git_connect(int fd[2], const char *url, const char *name, const char *prog, int flags);
Denton Liu55454422019-04-29 04:28:14 -040011int finish_connect(struct child_process *conn);
12int git_connection_is_socket(struct child_process *conn);
13int server_supports(const char *feature);
14int parse_feature_request(const char *features, const char *feature);
Jeff King7ce4c8f2023-04-14 17:25:20 -040015const char *server_feature_value(const char *feature, size_t *len_ret);
Denton Liu55454422019-04-29 04:28:14 -040016int url_is_local_not_ssh(const char *url);
Junio C Hamano47a59182013-07-08 13:56:53 -070017
Brandon Williamsad6ac122018-03-14 11:31:45 -070018struct packet_reader;
Denton Liu55454422019-04-29 04:28:14 -040019enum protocol_version discover_version(struct packet_reader *reader);
Brandon Williamsad6ac122018-03-14 11:31:45 -070020
brian m. carlson122037c2020-05-25 19:58:56 +000021int server_supports_hash(const char *desired, int *feature_supported);
Jeff King7ce4c8f2023-04-14 17:25:20 -040022const char *parse_feature_value(const char *feature_list, const char *feature, size_t *lenp, size_t *offset);
Jeff Kinga31cfe32022-12-13 05:52:58 -050023int server_supports_v2(const char *c);
24void ensure_server_supports_v2(const char *c);
brian m. carlson1349ffe2020-05-25 19:58:53 +000025int server_feature_v2(const char *c, const char **v);
Denton Liu55454422019-04-29 04:28:14 -040026int server_supports_feature(const char *c, const char *feature,
Denton Liuad6dad02019-04-29 04:28:23 -040027 int die_on_error);
Brandon Williamse52449b2018-03-15 10:31:21 -070028
Denton Liub0df0c12020-05-19 06:54:00 -040029void check_stateless_delimiter(int stateless_rpc,
30 struct packet_reader *reader,
31 const char *error);
32
Junio C Hamano47a59182013-07-08 13:56:53 -070033#endif