Re: [PATCH v2 1/3] fetch-pack: return enum from process_acks()
Show 8 quoted lines
> process_acks() returns 0, 1, or 2, depending on whether "ready" was
> received and if not, whether at least one commit was found to be common.
> Replace these magic numbers with a documented enum.
>
> Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
> ---
> fetch-pack.c | 35 ++++++++++++++++++++++++++++-------
> 1 file changed, 28 insertions(+), 7 deletions(-)
Show 32 quoted lines
> --- a/fetch-pack.c
> +++ b/fetch-pack.c
> @@ -1268,9 +1268,29 @@ static int process_section_header(struct packet_reader *reader,
> return ret;
> }
>
> -static int process_acks(struct fetch_negotiator *negotiator,
> - struct packet_reader *reader,
> - struct oidset *common)
> +enum common_found {
> + /*
> + * No commit was found to be possessed by both the client and the
> + * server, and "ready" was not received.
> + */
> + NO_COMMON_FOUND,
> +
> + /*
> + * At least one commit was found to be possessed by both the client and
> + * the server, and "ready" was not received.
> + */
> + COMMON_FOUND,
> +
> + /*
> + * "ready" was received, indicating that the server is ready to send
> + * the packfile without any further negotiation.
> + */
> + READY
> +};
> +
> +static enum common_found process_acks(struct fetch_negotiator *negotiator,
> + struct packet_reader *reader,
> + struct oidset *common)Thanks for the clear comments.
Show 7 quoted lines
> {
> /* received */
> int received_ready = 0;
> @@ -1320,7 +1340,8 @@ static int process_acks(struct fetch_negotiator *negotiator,
> die(_("expected no other sections to be sent after no 'ready'"));
>
> /* return 0 if no common, 1 if there are common, or 2 if ready */This comment can be removed now, which is a nice bonus.
Show 23 quoted lines
> - return received_ready ? 2 : (received_ack ? 1 : 0);
> + return received_ready ? READY :
> + (received_ack ? COMMON_FOUND : NO_COMMON_FOUND);
> }
>
> static void receive_shallow_info(struct fetch_pack_args *args,
> @@ -1508,13 +1529,13 @@ static struct ref *do_fetch_pack_v2(struct fetch_pack_args *args,
> case FETCH_PROCESS_ACKS:
> /* Process ACKs/NAKs */
> switch (process_acks(negotiator, &reader, &common)) {
> - case 2:
> + case READY:
> state = FETCH_GET_PACK;
> break;
> - case 1:
> + case COMMON_FOUND:
> in_vain = 0;
> /* fallthrough */
> - default:
> + case NO_COMMON_FOUND:
> state = FETCH_SEND_REQUEST;
> break;
> }With the extraneous comment removed,
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Thanks.
diff --git i/fetch-pack.c w/fetch-pack.c
index 45547a621e6..7b0eef98db5 100644
--- i/fetch-pack.c
+++ w/fetch-pack.c
@@ -1339,7 +1339,6 @@ static enum common_found process_acks(struct fetch_negotiator *negotiator,
if (!received_ready && reader->status != PACKET_READ_FLUSH)
die(_("expected no other sections to be sent after no 'ready'"));
- /* return 0 if no common, 1 if there are common, or 2 if ready */
return received_ready ? READY :
(received_ack ? COMMON_FOUND : NO_COMMON_FOUND);
}