mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
connect: let callers know if connection is a socket
They might care because they want to do a half-duplex close. With pipes, that means simply closing the output descriptor; with a socket, you must actually call shutdown. Instead of exposing the magic no_fork child_process struct, let's encapsulate the test in a function. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5cbf8246d2
commit
7ffe853b10
1
cache.h
1
cache.h
@ -865,6 +865,7 @@ extern struct ref *find_ref_by_name(const struct ref *list, const char *name);
|
||||
#define CONNECT_VERBOSE (1u << 0)
|
||||
extern struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
|
||||
extern int finish_connect(struct child_process *conn);
|
||||
extern int git_connection_is_socket(struct child_process *conn);
|
||||
extern int path_match(const char *path, int nr, char **match);
|
||||
struct extra_have_objects {
|
||||
int nr, alloc;
|
||||
|
@ -633,10 +633,15 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
|
||||
return conn;
|
||||
}
|
||||
|
||||
int git_connection_is_socket(struct child_process *conn)
|
||||
{
|
||||
return conn == &no_fork;
|
||||
}
|
||||
|
||||
int finish_connect(struct child_process *conn)
|
||||
{
|
||||
int code;
|
||||
if (!conn || conn == &no_fork)
|
||||
if (!conn || git_connection_is_socket(conn))
|
||||
return 0;
|
||||
|
||||
code = finish_command(conn);
|
||||
|
Loading…
Reference in New Issue
Block a user