| 223 | } |
| 224 | |
| 225 | static enum ack_type get_ack(struct packet_reader *reader, |
| 226 | struct object_id *result_oid) |
| 227 | { |
| 228 | int len; |
| 229 | const char *arg; |
| 230 | |
| 231 | if (packet_reader_read(reader) != PACKET_READ_NORMAL) |
| 232 | die(_("git fetch-pack: expected ACK/NAK, got a flush packet")); |
| 233 | len = reader->pktlen; |
| 234 | |
| 235 | if (!strcmp(reader->line, "NAK")) |
| 236 | return NAK; |
| 237 | if (skip_prefix(reader->line, "ACK ", &arg)) { |
| 238 | const char *p; |
| 239 | if (!parse_oid_hex(arg, result_oid, &p)) { |
| 240 | len -= p - reader->line; |
| 241 | if (len < 1) |
| 242 | return ACK; |
| 243 | if (strstr(p, "continue")) |
| 244 | return ACK_continue; |
| 245 | if (strstr(p, "common")) |
| 246 | return ACK_common; |
| 247 | if (strstr(p, "ready")) |
| 248 | return ACK_ready; |
| 249 | return ACK; |
| 250 | } |
| 251 | } |
| 252 | die(_("git fetch-pack: expected ACK/NAK, got '%s'"), reader->line); |
| 253 | } |
| 254 | |
| 255 | static void send_request(struct fetch_pack_args *args, |
| 256 | int fd, struct strbuf *buf) |
no test coverage detected