upload-pack: use skip_prefix() instead of starts_with()

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Nguyễn Thái Ngọc Duy 2016-06-12 17:53:49 +07:00 committed by Junio C Hamano
parent 873700c92e
commit 8bf3b75841
1 changed files with 18 additions and 14 deletions

View File

@ -276,7 +276,7 @@ static void create_pack_file(void)
die("git upload-pack: %s", abort_msg); die("git upload-pack: %s", abort_msg);
} }


static int got_sha1(char *hex, unsigned char *sha1) static int got_sha1(const char *hex, unsigned char *sha1)
{ {
struct object *o; struct object *o;
int we_knew_they_have = 0; int we_knew_they_have = 0;
@ -382,6 +382,8 @@ static int get_common_commits(void)


for (;;) { for (;;) {
char *line = packet_read_line(0, NULL); char *line = packet_read_line(0, NULL);
const char *arg;

reset_timeout(); reset_timeout();


if (!line) { if (!line) {
@ -403,8 +405,8 @@ static int get_common_commits(void)
got_other = 0; got_other = 0;
continue; continue;
} }
if (starts_with(line, "have ")) { if (skip_prefix(line, "have ", &arg)) {
switch (got_sha1(line+5, sha1)) { switch (got_sha1(arg, sha1)) {
case -1: /* they have what we do not */ case -1: /* they have what we do not */
got_other = 1; got_other = 1;
if (multi_ack && ok_to_give_up()) { if (multi_ack && ok_to_give_up()) {
@ -620,14 +622,16 @@ static void receive_needs(void)
const char *features; const char *features;
unsigned char sha1_buf[20]; unsigned char sha1_buf[20];
char *line = packet_read_line(0, NULL); char *line = packet_read_line(0, NULL);
const char *arg;

reset_timeout(); reset_timeout();
if (!line) if (!line)
break; break;


if (starts_with(line, "shallow ")) { if (skip_prefix(line, "shallow ", &arg)) {
unsigned char sha1[20]; unsigned char sha1[20];
struct object *object; struct object *object;
if (get_sha1_hex(line + 8, sha1)) if (get_sha1_hex(arg, sha1))
die("invalid shallow line: %s", line); die("invalid shallow line: %s", line);
object = parse_object(sha1); object = parse_object(sha1);
if (!object) if (!object)
@ -640,19 +644,19 @@ static void receive_needs(void)
} }
continue; continue;
} }
if (starts_with(line, "deepen ")) { if (skip_prefix(line, "deepen ", &arg)) {
char *end; char *end;
depth = strtol(line + 7, &end, 0); depth = strtol(arg, &end, 0);
if (end == line + 7 || depth <= 0) if (end == arg || depth <= 0)
die("Invalid deepen: %s", line); die("Invalid deepen: %s", line);
continue; continue;
} }
if (!starts_with(line, "want ") || if (!skip_prefix(line, "want ", &arg) ||
get_sha1_hex(line+5, sha1_buf)) get_sha1_hex(arg, sha1_buf))
die("git upload-pack: protocol error, " die("git upload-pack: protocol error, "
"expected to get sha, not '%s'", line); "expected to get sha, not '%s'", line);


features = line + 45; features = arg + 40;


if (parse_feature_request(features, "multi_ack_detailed")) if (parse_feature_request(features, "multi_ack_detailed"))
multi_ack = 2; multi_ack = 2;
@ -859,7 +863,7 @@ int main(int argc, char **argv)
check_replace_refs = 0; check_replace_refs = 0;


for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
char *arg = argv[i]; const char *arg = argv[i];


if (arg[0] != '-') if (arg[0] != '-')
break; break;
@ -875,8 +879,8 @@ int main(int argc, char **argv)
strict = 1; strict = 1;
continue; continue;
} }
if (starts_with(arg, "--timeout=")) { if (skip_prefix(arg, "--timeout=", &arg)) {
timeout = atoi(arg+10); timeout = atoi(arg);
daemon_mode = 1; daemon_mode = 1;
continue; continue;
} }