Re: [PATCH GSoC 3/5] fetch-object-info: request all supported options dynamically
"Pablo Sabater" <[email protected]> Wed, 29 Jul 2026 14:07:56 +0200
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
On Wed Jul 29, 2026 at 11:57 AM CEST, Chandra Pratap wrote: > On Sat, 25 Jul 2026 at 17:25, Pablo Sabater <[email protected]> wrote: >> >> In send_object_info_request(), size is hardcoded to be the only option >> sent. In order to support type and future capabilities, replace the >> hardcoded size with a loop that requests everything on >> object_info_options list. >> >> This is safe because the list has already been trimmed previously in >> fetch_object_info() to only contain options that the server supports. >> >> Mentored-by: Karthik Nayak <[email protected]> >> Mentored-by: Chandra Pratap <[email protected]> >> Signed-off-by: Pablo Sabater <[email protected]> >> --- >> fetch-object-info.c | 11 +++++++---- >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/fetch-object-info.c b/fetch-object-info.c >> index cf6b94afb8..e5cfdafe68 100644 >> --- a/fetch-object-info.c >> +++ b/fetch-object-info.c >> @@ -15,10 +15,13 @@ static void send_object_info_request(const int fd_out, struct object_info_args * >> >> write_command_and_capabilities(&req_buf, "object-info", args->server_options); >> >> - if (unsorted_string_list_has_string(args->object_info_options, "size")) >> - packet_buf_write(&req_buf, "size"); >> - else if (args->object_info_options->nr) >> - BUG("only size should be in object_info_options"); >> + /* >> + * The list is already checked to only request valid and supported fields >> + * no need to check, just request everything left on the list > > Nit: ...valid and supported fields no need to check.. -> valid and > supported fields. > Just request everything remaining on the list. Ok, will fix it, thanks. > >> + */ >> + for (size_t i = 0; i < args->object_info_options->nr; i++) >> + packet_buf_write(&req_buf, "%s", >> + args->object_info_options->items[i].string); > > Perfect place to use `for_each_string_list_item()`. Didn't think of that, I will change it, thanks. > > >> if (args->oids) >> for (size_t i = 0; i < args->oids->nr; i++) >> >> -- >> 2.54.0 >>