Merge branch 'hv/remote-end-hung-up'
When we get disconnected while expecting a response from the remote side because authentication failed, we issued an error message "The remote side hung up unexpectedly." Give hint that it may be a permission problem in the message when we can reasonably suspect it. * hv/remote-end-hung-up: remove the impression of unexpectedness when access is denied
This commit is contained in:
18
connect.c
18
connect.c
@ -49,6 +49,16 @@ static void add_extra_have(struct extra_have_objects *extra, unsigned char *sha1
|
||||
extra->nr++;
|
||||
}
|
||||
|
||||
static void die_initial_contact(int got_at_least_one_head)
|
||||
{
|
||||
if (got_at_least_one_head)
|
||||
die("The remote end hung up upon initial contact");
|
||||
else
|
||||
die("Could not read from remote repository.\n\n"
|
||||
"Please make sure you have the correct access rights\n"
|
||||
"and the repository exists.");
|
||||
}
|
||||
|
||||
/*
|
||||
* Read all the refs from the other end
|
||||
*/
|
||||
@ -56,6 +66,8 @@ struct ref **get_remote_heads(int in, struct ref **list,
|
||||
unsigned int flags,
|
||||
struct extra_have_objects *extra_have)
|
||||
{
|
||||
int got_at_least_one_head = 0;
|
||||
|
||||
*list = NULL;
|
||||
for (;;) {
|
||||
struct ref *ref;
|
||||
@ -64,7 +76,10 @@ struct ref **get_remote_heads(int in, struct ref **list,
|
||||
char *name;
|
||||
int len, name_len;
|
||||
|
||||
len = packet_read_line(in, buffer, sizeof(buffer));
|
||||
len = packet_read(in, buffer, sizeof(buffer));
|
||||
if (len < 0)
|
||||
die_initial_contact(got_at_least_one_head);
|
||||
|
||||
if (!len)
|
||||
break;
|
||||
if (buffer[len-1] == '\n')
|
||||
@ -95,6 +110,7 @@ struct ref **get_remote_heads(int in, struct ref **list,
|
||||
hashcpy(ref->old_sha1, old_sha1);
|
||||
*list = ref;
|
||||
list = &ref->next;
|
||||
got_at_least_one_head = 1;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user