blob: c53586e929e8b6f11194d9aeb9934e0fbecd5983 [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)
Denton Liu55454422019-04-29 04:28:14 -040010struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
11int 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);
15const char *server_feature_value(const char *feature, int *len_ret);
16int 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);
brian m. carlson84eca272020-05-25 19:58:58 +000022const char *parse_feature_value(const char *feature_list, const char *feature, int *lenp, int *offset);
Denton Liu55454422019-04-29 04:28:14 -040023int server_supports_v2(const char *c, int die_on_error);
brian m. carlson1349ffe2020-05-25 19:58:53 +000024int server_feature_v2(const char *c, const char **v);
Denton Liu55454422019-04-29 04:28:14 -040025int server_supports_feature(const char *c, const char *feature,
Denton Liuad6dad02019-04-29 04:28:23 -040026 int die_on_error);
Brandon Williamse52449b2018-03-15 10:31:21 -070027
Denton Liub0df0c12020-05-19 06:54:00 -040028void check_stateless_delimiter(int stateless_rpc,
29 struct packet_reader *reader,
30 const char *error);
31
Junio C Hamano47a59182013-07-08 13:56:53 -070032#endif