Re: [PATCH GSoC 3/5] fetch-object-info: request all supported options dynamically
Chandra Pratap <[email protected]> Wed, 29 Jul 2026 15:27:34 +0530
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <CA+J6zkQCa-rCJYQgfsjLyyJqrW+0-Z8pUJ4EJxY9HSTkJH=u4A@mail.gmail.com> |
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. > + */ > + 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()`. > if (args->oids) > for (size_t i = 0; i < args->oids->nr; i++) > > -- > 2.54.0 >