From patchwork Tue Jun 2 04:16:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582881 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6FBF560D for ; Tue, 2 Jun 2020 04:17:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 55D45207D5 for ; Tue, 2 Jun 2020 04:17:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NhPMMq9y" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726003AbgFBERW (ORCPT ); Tue, 2 Jun 2020 00:17:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725781AbgFBERU (ORCPT ); Tue, 2 Jun 2020 00:17:20 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77448C05BD43 for ; Mon, 1 Jun 2020 21:17:19 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id j10so1876673wrw.8 for ; Mon, 01 Jun 2020 21:17:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zAUxvrmQabyo5XtTJMcze18A6XkrCUCkok/k6x+PkAU=; b=NhPMMq9ymQdZcItZWheQxAnxFVhQyH1CqWQd6B94pMof+2fBAEptqKDE+Ud315jxjq WCSdgDmC+2GcY8FSkJvbNVJgkhLZ7cd8H/nI+huQ5TbSOtIl7/bbERG01nO1p7dGPelt fVlvP+hJCfcaTFSTXMQBnjL/ZBKuDJVmsuQRToxHLBJmV5Y0cabv4KBPCITEIZUDAfDR drp7+R3BoxKdxuKwLOynpeW5dLlYr3EQF833WaaZ23+Kc6s7yxHjf6gqWvvDxwh3teuj hQBgQ2iSqgnJNJ69HMKRGbmlcw0HaDbwp7W0EKy05scOUfP3dD2WF4flSaxim/L7R6pb AfYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zAUxvrmQabyo5XtTJMcze18A6XkrCUCkok/k6x+PkAU=; b=L2I63CZ3AYCgLonk7H7G8utEfnDy0bqXU/TK8YjQdEm2qGHS9y8x7JBvF3Y3eEUqfC lUwdWo0bgAUY91GWCqGi4/KuQK1oCWx/dDFXma/rUH2ozvqsWdH0H3xvtm0q0IBJACl2 YQFVi874ERI6bQFuy7BOFntlgenmc/M4yhjoBmf60ziXe+AtlCMqNekcDBiRs66ZghSu DMe2k4P8zqGqDKpjQMe4ii4SDaic0Q2bax30f/UV2LUbDd7nmtVSpJTLzaN3vZmB4wAG zZT3w1jbRMrcSuY0FF+gaEGbikEg9uZmtPVdHntYW1NxSTh0Y9qi3MWniGLO328kE+Io IWqg== X-Gm-Message-State: AOAM5336wSuJ0MFQ4WgqRKnyz8sHA52aBbtbmf6i8amWaMMe3vbdaCqf yuVYZ+C7vNyha+rOFmoX3Kg+WxlUBmo= X-Google-Smtp-Source: ABdhPJwbxQvA93Ipp7vFP+uzhKKUDpNQs2byCHyzr9mgoQ0V0yqSem8qocX+6eHrKcx7u+RDfnr1ag== X-Received: by 2002:a5d:4a45:: with SMTP id v5mr24403193wrs.223.1591071437861; Mon, 01 Jun 2020 21:17:17 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:17 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 01/13] upload-pack: actually use some upload_pack_data bitfields Date: Tue, 2 Jun 2020 06:16:45 +0200 Message-Id: <20200602041657.7132-2-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org From: Jeff King As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's actually start using some bitfields of that struct, which were previously unused. We could instead have just removed the following bitfields from the struct: unsigned use_thin_pack : 1; unsigned use_ofs_delta : 1; unsigned no_progress : 1; unsigned use_include_tag : 1; but using them makes it possible to remove a number of static variables with the same name and purpose from 'upload-pack.c'. This is a behavior change, as we accidentally used to let values in those bitfields propagate from one v2 "fetch" command to another for ssh/git/file connections (but not for http). That's fixing a bug, but one nobody is likely to see, because it would imply the client sending different capabilities for each request. Signed-off-by: Jeff King Signed-off-by: Christian Couder --- upload-pack.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 401c9e6c4b..2fa645834a 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -46,8 +46,7 @@ static timestamp_t oldest_have; static int multi_ack; static int no_done; -static int use_thin_pack, use_ofs_delta, use_include_tag; -static int no_progress, daemon_mode; +static int daemon_mode; /* Allow specifying sha1 if it is a ref tip. */ #define ALLOW_TIP_SHA1 01 /* Allow request of a sha1 if it is reachable from a ref (possibly hidden ref). */ @@ -186,17 +185,17 @@ static void create_pack_file(struct upload_pack_data *pack_data) } argv_array_push(&pack_objects.args, "pack-objects"); argv_array_push(&pack_objects.args, "--revs"); - if (use_thin_pack) + if (pack_data->use_thin_pack) argv_array_push(&pack_objects.args, "--thin"); argv_array_push(&pack_objects.args, "--stdout"); if (shallow_nr) argv_array_push(&pack_objects.args, "--shallow"); - if (!no_progress) + if (!pack_data->no_progress) argv_array_push(&pack_objects.args, "--progress"); - if (use_ofs_delta) + if (pack_data->use_ofs_delta) argv_array_push(&pack_objects.args, "--delta-base-offset"); - if (use_include_tag) + if (pack_data->use_include_tag) argv_array_push(&pack_objects.args, "--include-tag"); if (pack_data->filter_options.choice) { const char *spec = @@ -955,17 +954,17 @@ static void receive_needs(struct upload_pack_data *data, if (parse_feature_request(features, "no-done")) no_done = 1; if (parse_feature_request(features, "thin-pack")) - use_thin_pack = 1; + data->use_thin_pack = 1; if (parse_feature_request(features, "ofs-delta")) - use_ofs_delta = 1; + data->use_ofs_delta = 1; if (parse_feature_request(features, "side-band-64k")) use_sideband = LARGE_PACKET_MAX; else if (parse_feature_request(features, "side-band")) use_sideband = DEFAULT_PACKET_MAX; if (parse_feature_request(features, "no-progress")) - no_progress = 1; + data->no_progress = 1; if (parse_feature_request(features, "include-tag")) - use_include_tag = 1; + data->use_include_tag = 1; if (allow_filter && parse_feature_request(features, "filter")) filter_capability_requested = 1; @@ -997,7 +996,7 @@ static void receive_needs(struct upload_pack_data *data, check_non_tip(data); if (!use_sideband && daemon_mode) - no_progress = 1; + data->no_progress = 1; if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0) return; @@ -1279,19 +1278,19 @@ static void process_args(struct packet_reader *request, /* process args like thin-pack */ if (!strcmp(arg, "thin-pack")) { - use_thin_pack = 1; + data->use_thin_pack = 1; continue; } if (!strcmp(arg, "ofs-delta")) { - use_ofs_delta = 1; + data->use_ofs_delta = 1; continue; } if (!strcmp(arg, "no-progress")) { - no_progress = 1; + data->no_progress = 1; continue; } if (!strcmp(arg, "include-tag")) { - use_include_tag = 1; + data->use_include_tag = 1; continue; } if (!strcmp(arg, "done")) { From patchwork Tue Jun 2 04:16:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582883 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7F1C11392 for ; Tue, 2 Jun 2020 04:17:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6776A207D5 for ; Tue, 2 Jun 2020 04:17:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="vX6SVsbZ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726012AbgFBERX (ORCPT ); Tue, 2 Jun 2020 00:17:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725930AbgFBERV (ORCPT ); Tue, 2 Jun 2020 00:17:21 -0400 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98082C061A0E for ; Mon, 1 Jun 2020 21:17:20 -0700 (PDT) Received: by mail-wr1-x442.google.com with SMTP id c3so1850608wru.12 for ; Mon, 01 Jun 2020 21:17:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rIAqGSr0E2QrY1BV92Agexl6dH59N7rlDPfpK3T3/fg=; b=vX6SVsbZdJGMNx5LPbdAUnbbSzjlUTRIvipbgjsbnzwlyeMm4qGrALkh/TWZrjzL04 pP7nELJKTsIQN5ftXXfrb/i4MwBk52RCILbwqflpi5OS6ym+NpD9x26++XW7HM8OqPcC g97zEfuUtj9eY2KEKO2CD6Vx2JCEDX5tebBVKB+FuUzIkr2usxLnjuS3B1dtSwT1+HiB syJUUA9ojqdAz6HEqFKygrdA+PAE86Q0Ap7PyVH4xWy46Lz5aGmQHnPBYf4BjazkUDAd izup+lcSDas4zaVi76zOP18rwqRnd8fkdtn+lAVS+mSmhQw4CRHvTGTg49Q6knf/agjG aI9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rIAqGSr0E2QrY1BV92Agexl6dH59N7rlDPfpK3T3/fg=; b=WYsgkAQU4ZiTxTmcY/cyc4u2kUUoqojABETF/153OFIdunjm8njOcUWgiR/0USApne piIcx97CrbxUfh3Yuq/QVDIckb3OMIv+1BLM5pCSFZTh3tqj81S036+Ymc/TkHuY4CmB vOjzgbFKr0VpgSw6NdL7C4N6vpAwPL7chMvCfGI2Bs55sEy3OxhXRqwYYXf6irI53U6o cs87ZmBI03GFAb7OIEjHTM5h9/bYmjzNwLnSOl0JrTEfvQ/Bk/Rf/K9QpCNdOOIBSv6a yMfwTJVUdGIZUK1eUeJ81cnV1Ri63CIu/Y7N9rjHLpN1bXlO7UTcAbDCfMTvWGAgggDW W1Hg== X-Gm-Message-State: AOAM531MtOaKlV+ONbdPnuAcBMwj+1zXUlbD9SwKbx61atAq+wWHbG7q VS/IW1f0l3FonGfToQAq+E4w5n7TqvQ= X-Google-Smtp-Source: ABdhPJzEmSpqhspflswXLBPpdm92zqhmJNxlKcsT5UdyvHuOk2L0XsCmkuFUfInLR963g9tspkoTIA== X-Received: by 2002:adf:fd41:: with SMTP id h1mr25614206wrs.374.1591071439073; Mon, 01 Jun 2020 21:17:19 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:18 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 02/13] upload-pack: annotate upload_pack_data fields Date: Tue, 2 Jun 2020 06:16:46 +0200 Message-Id: <20200602041657.7132-3-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's annotate fields from this struct to let people know which ones are used only for protocol v0 and which ones only for protocol v2. Signed-off-by: Christian Couder --- upload-pack.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 2fa645834a..3963a3805e 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -70,12 +70,16 @@ static int allow_ref_in_want; static int allow_sideband_all; +/* + * Please annotate, and if possible group together, fields used only + * for protocol v0 or only for protocol v2. + */ struct upload_pack_data { - struct string_list symref; - struct string_list wanted_refs; + struct string_list symref; /* v0 only */ struct object_array want_obj; struct object_array have_obj; - struct oid_array haves; + struct oid_array haves; /* v2 only */ + struct string_list wanted_refs; /* v2 only */ struct object_array shallows; struct string_list deepen_not; @@ -88,13 +92,14 @@ struct upload_pack_data { struct packet_writer writer; - unsigned stateless_rpc : 1; + unsigned stateless_rpc : 1; /* v0 only */ unsigned use_thin_pack : 1; unsigned use_ofs_delta : 1; unsigned no_progress : 1; unsigned use_include_tag : 1; - unsigned done : 1; + + unsigned done : 1; /* v2 only */ }; static void upload_pack_data_init(struct upload_pack_data *data) From patchwork Tue Jun 2 04:16:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582887 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5AD341392 for ; Tue, 2 Jun 2020 04:17:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3E22C207D5 for ; Tue, 2 Jun 2020 04:17:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IySfWUDM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726062AbgFBERZ (ORCPT ); Tue, 2 Jun 2020 00:17:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49162 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725980AbgFBERW (ORCPT ); Tue, 2 Jun 2020 00:17:22 -0400 Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D58FDC061A0E for ; Mon, 1 Jun 2020 21:17:21 -0700 (PDT) Received: by mail-wm1-x343.google.com with SMTP id f185so1598369wmf.3 for ; Mon, 01 Jun 2020 21:17:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4b7UB4ai38OmhZCpU3s14TgnOog/Csl1XFTgmqa4ys0=; b=IySfWUDM4eBH3Ed0rEQPuDy8gMC/eQluxE8+WEgveWXwzLvV2vuzdHQnZhbEi1im2C folD4iCMUcc+bUtTXQF6ZBro/Jyh/ezzLepluqrgtZgZSK+I8fTq2PG/e1czFPTlwKk2 drzbpf7UAJ/qiDHjGCwsKy8d9SoQG6uajkUeQ+hfyfPbtmLYMeQtWg89aVkMrljHSvKS mVxR7pdOFQZeJvmdnXvo+WO2AqEStSaC8tKTvS3csSPmlSvjlzex0JT1UHX/XBckwnEE glN8NivIn2SjHdd0CK13dnIhXDKxAcDc3tWfCVyfMkODpAlQyT5oDeKAWsEv4NAGJ122 krdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4b7UB4ai38OmhZCpU3s14TgnOog/Csl1XFTgmqa4ys0=; b=NjgObn+zPG/IHkv6D/hcKp9IEr16gDEeSuqAwa6F1Or0lzlEId9XtC2M4OFV0oicx9 kJ/40P82KeZmqGbKyPAxnfFnnh8um8wT7GAQXJgEi167Wb2RGdE/np1LQKmuM7ZedOzG jyrpyk/r+2rmc5EDowxsH7ajm4GC+8sm2nCulZ8XTNcctcsGsRrUIsF5bZ0aZDhwpmS0 vHBgPBH20RyqRANV7dy2PH/zIEetB/Iyt03AKhxsLSqFOJHl3JUd0uVaUhmBJuLdWDIN nPcn2o5DsM3adsORlK+JQwB5yPeE2ZjwEfXTHcO6D0613dhWyDE62cGkQDfGNZr/IXU5 Fe4w== X-Gm-Message-State: AOAM530W5FRuUQ6FdYTWDP4uS4ym+tXe8rOTGeYcdSxcqRHX/rAzl5Q9 CfU1lCQ0kiXcnQoKbONjCKhigCVQXMM= X-Google-Smtp-Source: ABdhPJzdaqhOumAULuzfquohwRTbcc9JIEFd0gIkdTSajOf6kO4PBu+L4yP6dqkbx5s6TNL6W9k6DA== X-Received: by 2002:a1c:38c2:: with SMTP id f185mr2342318wma.79.1591071440285; Mon, 01 Jun 2020 21:17:20 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:19 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 03/13] upload-pack: move static vars to upload_pack_data Date: Tue, 2 Jun 2020 06:16:47 +0200 Message-Id: <20200602041657.7132-4-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'no_done', 'daemon_mode' and 'timeout' variables into this struct. They are only used by protocol v0 code since protocol v2 assumes certain baseline capabilities, but rolling them into upload_pack_data and just letting v2 code ignore them as it does now is more coherent and cleaner. Signed-off-by: Christian Couder --- upload-pack.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 3963a3805e..21a27b2d2c 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -45,8 +45,6 @@ static timestamp_t oldest_have; static int multi_ack; -static int no_done; -static int daemon_mode; /* Allow specifying sha1 if it is a ref tip. */ #define ALLOW_TIP_SHA1 01 /* Allow request of a sha1 if it is reachable from a ref (possibly hidden ref). */ @@ -56,7 +54,6 @@ static int daemon_mode; static unsigned int allow_unadvertised_object_request; static int shallow_nr; static struct object_array extra_edge_obj; -static unsigned int timeout; static int keepalive = 5; /* 0 for no sideband, * otherwise maximum packet size (up to 65520 bytes). @@ -88,11 +85,15 @@ struct upload_pack_data { int deepen_rev_list; int deepen_relative; + unsigned int timeout; /* v0 only */ + struct list_objects_filter_options filter_options; struct packet_writer writer; unsigned stateless_rpc : 1; /* v0 only */ + unsigned no_done : 1; /* v0 only */ + unsigned daemon_mode : 1; /* v0 only */ unsigned use_thin_pack : 1; unsigned use_ofs_delta : 1; @@ -135,7 +136,7 @@ static void upload_pack_data_clear(struct upload_pack_data *data) list_objects_filter_release(&data->filter_options); } -static void reset_timeout(void) +static void reset_timeout(unsigned int timeout) { alarm(timeout); } @@ -251,7 +252,7 @@ static void create_pack_file(struct upload_pack_data *pack_data) int pe, pu, pollsize; int ret; - reset_timeout(); + reset_timeout(pack_data->timeout); pollsize = 0; pe = pu = -1; @@ -433,7 +434,7 @@ static int get_common_commits(struct upload_pack_data *data, for (;;) { const char *arg; - reset_timeout(); + reset_timeout(data->timeout); if (packet_reader_read(reader) != PACKET_READ_NORMAL) { if (multi_ack == 2 @@ -446,7 +447,7 @@ static int get_common_commits(struct upload_pack_data *data, if (data->have_obj.nr == 0 || multi_ack) packet_write_fmt(1, "NAK\n"); - if (no_done && sent_ready) { + if (data->no_done && sent_ready) { packet_write_fmt(1, "ACK %s\n", last_hex); return 0; } @@ -924,7 +925,7 @@ static void receive_needs(struct upload_pack_data *data, struct object_id oid_buf; const char *arg; - reset_timeout(); + reset_timeout(data->timeout); if (packet_reader_read(reader) != PACKET_READ_NORMAL) break; @@ -957,7 +958,7 @@ static void receive_needs(struct upload_pack_data *data, else if (parse_feature_request(features, "multi_ack")) multi_ack = 1; if (parse_feature_request(features, "no-done")) - no_done = 1; + data->no_done = 1; if (parse_feature_request(features, "thin-pack")) data->use_thin_pack = 1; if (parse_feature_request(features, "ofs-delta")) @@ -1000,7 +1001,7 @@ static void receive_needs(struct upload_pack_data *data, if (has_non_tip) check_non_tip(data); - if (!use_sideband && daemon_mode) + if (!use_sideband && data->daemon_mode) data->no_progress = 1; if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0) @@ -1149,19 +1150,18 @@ void upload_pack(struct upload_pack_options *options) struct packet_reader reader; struct upload_pack_data data; - timeout = options->timeout; - daemon_mode = options->daemon_mode; - git_config(upload_pack_config, NULL); upload_pack_data_init(&data); data.stateless_rpc = options->stateless_rpc; + data.daemon_mode = options->daemon_mode; + data.timeout = options->timeout; head_ref_namespaced(find_symref, &data.symref); if (options->advertise_refs || !data.stateless_rpc) { - reset_timeout(); + reset_timeout(data.timeout); head_ref_namespaced(send_ref, &data); for_each_namespaced_ref(send_ref, &data); advertise_shallow_grafts(1); From patchwork Tue Jun 2 04:16:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582889 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 876881667 for ; Tue, 2 Jun 2020 04:17:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 721FE207D5 for ; Tue, 2 Jun 2020 04:17:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="choRUMXi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726110AbgFBERZ (ORCPT ); Tue, 2 Jun 2020 00:17:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726016AbgFBERX (ORCPT ); Tue, 2 Jun 2020 00:17:23 -0400 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8D2EC05BD43 for ; Mon, 1 Jun 2020 21:17:22 -0700 (PDT) Received: by mail-wm1-x344.google.com with SMTP id d128so1616046wmc.1 for ; Mon, 01 Jun 2020 21:17:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l11+CdHhjp6N4n56z0tThcomkvVYT1MJUUbUxmfcXFE=; b=choRUMXinWyAKv6Kz9trgcaYU/tCX8+uce5rVDq4iL4TvuFKK0OvGdBVinTm/o2TUV 2Up6SfYtKwsy3JzV0NqYj60rDim8Yk7bbA+GgmWVzL0ejQVG5Hk7MftkoQ/XVM16IpBl aaX1UwEW2iUeiywb41AOkKxIVRCMf+xTghgPvjh/+rNVwk92gk76aqp55clDdgOFKyVb bFrmzH7HD+y9L8omvnZgLsQQ4cMvc4ucq1HNSCE+Xm4Cyf3aT/nJHb47nc2PrrFan5Gv kDBxNaAt4E+ED3DDy2RivBCiLEmk/p6zBaoUJ+VgH7Ex140akzaP/f5IGGaIZWOtgpt/ L0wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=l11+CdHhjp6N4n56z0tThcomkvVYT1MJUUbUxmfcXFE=; b=QBkB52kKjM9S4TLx/P8wpcNwRxTYTSHvUXgmh6ygc2jxVcbY8s8fveiOt9tizslpTP tugJTxhz+3k2MGiNCjuD9nZ7kdv2I+k+MXCpIbVc0jD1vEgz0jhIUB13y7Gmj+ZEXIrG I0FfDbbYTsHdPtaHMhMR1mzZVc1i6YSAN5d5sCA36JtWKqFBPZxkz9T2k4Zp+/I3jEsV 8vLM3DyBl0F6TfuNN/u8oy7VG8Y4/6Q/UwUr13+AC1AEHQANi/Wr9khKJeauI/IHEYHQ nYr7C12jyv7AgyyoOegVk02a4l+WO8FSN5/hbTiCaFwvzS6it+daQhYfGVbF2UPb3i66 17Tg== X-Gm-Message-State: AOAM531usFjVeBgYZx4GpXUOYwhiPnYvc/HkVpE3Yqy+R1MFSAiFZw/o ZTwuO2E298reyoon8cH3lpHTOk439aY= X-Google-Smtp-Source: ABdhPJzf7NpI9tG1hkYZygiEw1uoNYT30rqUr6EIkvjxoZ3Hu5l8xMIgNeCZ5ZBt3PdoZYM3qgRBgw== X-Received: by 2002:a1c:658a:: with SMTP id z132mr2230165wmb.20.1591071441329; Mon, 01 Jun 2020 21:17:21 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:20 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 04/13] upload-pack: move use_sideband to upload_pack_data Date: Tue, 2 Jun 2020 06:16:48 +0200 Message-Id: <20200602041657.7132-5-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'use_sideband' static variable into this struct. This variable is used by both v0 and v2 protocols. While at it, let's update the comment near the variable definition. Signed-off-by: Christian Couder --- upload-pack.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 21a27b2d2c..07798fdc75 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -55,10 +55,6 @@ static unsigned int allow_unadvertised_object_request; static int shallow_nr; static struct object_array extra_edge_obj; static int keepalive = 5; -/* 0 for no sideband, - * otherwise maximum packet size (up to 65520 bytes). - */ -static int use_sideband; static const char *pack_objects_hook; static int filter_capability_requested; @@ -87,6 +83,9 @@ struct upload_pack_data { unsigned int timeout; /* v0 only */ + /* 0 for no sideband, otherwise DEFAULT_PACKET_MAX or LARGE_PACKET_MAX */ + int use_sideband; + struct list_objects_filter_options filter_options; struct packet_writer writer; @@ -141,7 +140,8 @@ static void reset_timeout(unsigned int timeout) alarm(timeout); } -static void send_client_data(int fd, const char *data, ssize_t sz) +static void send_client_data(int fd, const char *data, ssize_t sz, + int use_sideband) { if (use_sideband) { send_sideband(1, fd, data, sz, use_sideband); @@ -290,7 +290,8 @@ static void create_pack_file(struct upload_pack_data *pack_data) sz = xread(pack_objects.err, progress, sizeof(progress)); if (0 < sz) - send_client_data(2, progress, sz); + send_client_data(2, progress, sz, + pack_data->use_sideband); else if (sz == 0) { close(pack_objects.err); pack_objects.err = -1; @@ -333,7 +334,8 @@ static void create_pack_file(struct upload_pack_data *pack_data) } else buffered = -1; - send_client_data(1, data, sz); + send_client_data(1, data, sz, + pack_data->use_sideband); } /* @@ -346,7 +348,7 @@ static void create_pack_file(struct upload_pack_data *pack_data) * protocol to say anything, so those clients are just out of * luck. */ - if (!ret && use_sideband) { + if (!ret && pack_data->use_sideband) { static const char buf[] = "0005\1"; write_or_die(1, buf, 5); } @@ -360,15 +362,17 @@ static void create_pack_file(struct upload_pack_data *pack_data) /* flush the data */ if (0 <= buffered) { data[0] = buffered; - send_client_data(1, data, 1); + send_client_data(1, data, 1, + pack_data->use_sideband); fprintf(stderr, "flushed.\n"); } - if (use_sideband) + if (pack_data->use_sideband) packet_flush(1); return; fail: - send_client_data(3, abort_msg, sizeof(abort_msg)); + send_client_data(3, abort_msg, sizeof(abort_msg), + pack_data->use_sideband); die("git upload-pack: %s", abort_msg); } @@ -964,9 +968,9 @@ static void receive_needs(struct upload_pack_data *data, if (parse_feature_request(features, "ofs-delta")) data->use_ofs_delta = 1; if (parse_feature_request(features, "side-band-64k")) - use_sideband = LARGE_PACKET_MAX; + data->use_sideband = LARGE_PACKET_MAX; else if (parse_feature_request(features, "side-band")) - use_sideband = DEFAULT_PACKET_MAX; + data->use_sideband = DEFAULT_PACKET_MAX; if (parse_feature_request(features, "no-progress")) data->no_progress = 1; if (parse_feature_request(features, "include-tag")) @@ -1001,7 +1005,7 @@ static void receive_needs(struct upload_pack_data *data, if (has_non_tip) check_non_tip(data); - if (!use_sideband && data->daemon_mode) + if (!data->use_sideband && data->daemon_mode) data->no_progress = 1; if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0) @@ -1486,7 +1490,7 @@ int upload_pack_v2(struct repository *r, struct argv_array *keys, git_config(upload_pack_config, NULL); upload_pack_data_init(&data); - use_sideband = LARGE_PACKET_MAX; + data.use_sideband = LARGE_PACKET_MAX; while (state != FETCH_DONE) { switch (state) { From patchwork Tue Jun 2 04:16:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582891 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B10BE60D for ; Tue, 2 Jun 2020 04:17:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9ACB2207D5 for ; Tue, 2 Jun 2020 04:17:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HOD9KbNW" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726118AbgFBER1 (ORCPT ); Tue, 2 Jun 2020 00:17:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725930AbgFBERY (ORCPT ); Tue, 2 Jun 2020 00:17:24 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7B3BC061A0E for ; Mon, 1 Jun 2020 21:17:23 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id d128so1616063wmc.1 for ; Mon, 01 Jun 2020 21:17:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3SwVy4XIer9kaNRm/s8eWt6zXC5dVG0jMC0DHt9xyqs=; b=HOD9KbNWoocxFTZCa6hwR+OPiH96Q62SIjPsyWkMc+WkPMakUJCXRbHFvUbKF18/g+ ODrQqB7I1PNBmwQh0oAVlUfLkDAHU5BLnQ0ZNtwX6NJNdW2eIQA/u1vY2AAEHS6777g3 GqZngE0M/OQ7ZsfXC7JFw8ESaAJ0LiBzqs2Ivg1za8gXW39p+NIlxrqmsfT7QgdqwBlE ejVg+CBTdTMpeCG2k+5cRDXu9ofngGBEgZA2EYhazjbKVRR6c1f4IT4JoBtZm0mlfX20 8qsAQ2UzubFVjL5ba8bI8WAadrPKsF5uMfeMkUCVArHA52yMEZ4JMke6yYLiy2XD0MjC nJBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3SwVy4XIer9kaNRm/s8eWt6zXC5dVG0jMC0DHt9xyqs=; b=mHPICewAzZaahmCKdcfCxCFk+mk9zuduL0+E64Iy76Xm7/xLD9Xz6akiwMkrno5mB2 PwuD2F6jbQEZMchcDPc7/TEisHb+pNWhO3dyBB4bjj/tima3CwAqDkm1xS0i5itQevgM n+fbwUeCJP10Z0gr3Lw5oFU2UfuuhOOMOQm9uWIqxTXD/ldJLjKNwIU0npLL1N6+DQXk E8TsAmzDMz0VusjLa3IeoReXeU2WqNKkUBMMO5pp/5yCuBNkRqUky80pm5wl5PqgWsdL zm0+1KhOUNwV4KIP/n/MEaZ/lPwnLU6EGv8MFZks0NhKZ1w2bnfrgGcyDZwpNkoOazyv tTJw== X-Gm-Message-State: AOAM531ANJK/7hNqeXAL3xicDWK/ivAPFzoln87pX9T1WRfbYfZZaXvg Eh9eBqylCs08M5h0qptTnnr5hnCjz8g= X-Google-Smtp-Source: ABdhPJw+RSw+15LpsWSx4dcINdZwK0mu4NhI8wyItXL5B7a9XGPljhsE50s08W8uH4XgkQShCr0odA== X-Received: by 2002:a7b:c4cc:: with SMTP id g12mr2176404wmk.171.1591071442380; Mon, 01 Jun 2020 21:17:22 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:21 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 05/13] upload-pack: move filter_capability_requested to upload_pack_data Date: Tue, 2 Jun 2020 06:16:49 +0200 Message-Id: <20200602041657.7132-6-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the filter_capability_requested static variable into this struct. It is only used by protocol v0 code since protocol v2 assumes certain baseline capabilities, but rolling it into upload_pack_data and just letting v2 code ignore it as it does now is more coherent and cleaner. Signed-off-by: Christian Couder --- upload-pack.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 07798fdc75..6226387a84 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -57,7 +57,6 @@ static struct object_array extra_edge_obj; static int keepalive = 5; static const char *pack_objects_hook; -static int filter_capability_requested; static int allow_filter; static int allow_ref_in_want; @@ -93,6 +92,7 @@ struct upload_pack_data { unsigned stateless_rpc : 1; /* v0 only */ unsigned no_done : 1; /* v0 only */ unsigned daemon_mode : 1; /* v0 only */ + unsigned filter_capability_requested : 1; /* v0 only */ unsigned use_thin_pack : 1; unsigned use_ofs_delta : 1; @@ -943,7 +943,7 @@ static void receive_needs(struct upload_pack_data *data, continue; if (skip_prefix(reader->line, "filter ", &arg)) { - if (!filter_capability_requested) + if (!data->filter_capability_requested) die("git upload-pack: filtering capability not negotiated"); list_objects_filter_die_if_populated(&data->filter_options); parse_list_objects_filter(&data->filter_options, arg); @@ -976,7 +976,7 @@ static void receive_needs(struct upload_pack_data *data, if (parse_feature_request(features, "include-tag")) data->use_include_tag = 1; if (allow_filter && parse_feature_request(features, "filter")) - filter_capability_requested = 1; + data->filter_capability_requested = 1; o = parse_object(the_repository, &oid_buf); if (!o) { From patchwork Tue Jun 2 04:16:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582893 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2524D60D for ; Tue, 2 Jun 2020 04:17:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0BE24207D5 for ; Tue, 2 Jun 2020 04:17:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Nyeb6lMi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726140AbgFBER3 (ORCPT ); Tue, 2 Jun 2020 00:17:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49174 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725980AbgFBERZ (ORCPT ); Tue, 2 Jun 2020 00:17:25 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27D4CC05BD43 for ; Mon, 1 Jun 2020 21:17:25 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id c3so1850707wru.12 for ; Mon, 01 Jun 2020 21:17:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IEtxnMne86XyHEyMG+LQ5k8mVYgV5uborwqzMNallhU=; b=Nyeb6lMig5P360J3FdJackyvvYKppM+qyfg8p48OF/7sjRsucBRCsIYKeckbaMlhCn UbyciV0S5ou0OjbCe3MGpe0phhSnpgbvg/EiOwZFNbR0wWdtszVXVVBZ+szBbGF/sDGe 9DyY/8jdmSPQ2Knt5FoGYToci44IL9z04bdejiP/Nnd8W1bfVY2Yz8nRUdY7XXndZC6m 1iN6oNMobkeOQo0nu8gg4Qo25NmQmDvH/V5hKqBPROza865TspZ5bAjWol7NxkG0RNpW A/5dPvqm9bUXnDtmBqwzdefvLcYs/mSr+piu515hmiYhIxQyiETfgsUHHZIT8yVoPzZ6 Az+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IEtxnMne86XyHEyMG+LQ5k8mVYgV5uborwqzMNallhU=; b=cvp+C1tNKAguC/po/zHKxDZMeL5UtAwHM3moTPoLFwPJcQkMvwJw4592jGPclp4tYc WQVMTpWY3ojBZjJu8QrAc2mw33ByzXgnOR5DXIVBpXUtEOmCvZL/q/EIWD7vdVdnIuv/ G+is6a4gFnN5j9Td2M/VVDjIZ3tpTfPf6/cVu9/spmA/LD6C3dsQR6AWkTYJ+DFDwl1d O0S3VDDBlVoI4BSAnpUuM9Zn0idTrQbkvs7ywOT1/8USB/iWsG68y6BDv2kfnG7bX78Q wPLhdJJrXgctGBmxICqWVXW0FLsNmz4eOUWqSpl3bfGy2qdMEUkbbaFeGd7lMCO8969e plGw== X-Gm-Message-State: AOAM5324nX/G3RJXmqTN2TYWO7xAMGDz/hT/w/1lJy0CXATHxnn4gRD0 NLF/i9bdK/6Riz0v8GAmU0QyH1LNaGg= X-Google-Smtp-Source: ABdhPJx/uaWgji/A9Pk2KYwj61nTyGzt/cK1r7ZyJfvF/ft2cQFh6d+V+ccZMVBa1geqySv+fCXscg== X-Received: by 2002:a5d:6586:: with SMTP id q6mr22800517wru.319.1591071443553; Mon, 01 Jun 2020 21:17:23 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:23 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 06/13] upload-pack: move multi_ack to upload_pack_data Date: Tue, 2 Jun 2020 06:16:50 +0200 Message-Id: <20200602041657.7132-7-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the multi_ack static variable into this struct. It is only used by protocol v0 code since protocol v2 assumes certain baseline capabilities, but rolling it into upload_pack_data and just letting v2 code ignore it as it does now is more coherent and cleaner. Signed-off-by: Christian Couder --- upload-pack.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 6226387a84..f8611a5d53 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -44,7 +44,6 @@ static timestamp_t oldest_have; -static int multi_ack; /* Allow specifying sha1 if it is a ref tip. */ #define ALLOW_TIP_SHA1 01 /* Allow request of a sha1 if it is reachable from a ref (possibly hidden ref). */ @@ -81,6 +80,7 @@ struct upload_pack_data { int deepen_relative; unsigned int timeout; /* v0 only */ + int multi_ack; /* v0 only */ /* 0 for no sideband, otherwise DEFAULT_PACKET_MAX or LARGE_PACKET_MAX */ int use_sideband; @@ -441,14 +441,14 @@ static int get_common_commits(struct upload_pack_data *data, reset_timeout(data->timeout); if (packet_reader_read(reader) != PACKET_READ_NORMAL) { - if (multi_ack == 2 + if (data->multi_ack == 2 && got_common && !got_other && ok_to_give_up(&data->have_obj, &data->want_obj)) { sent_ready = 1; packet_write_fmt(1, "ACK %s ready\n", last_hex); } - if (data->have_obj.nr == 0 || multi_ack) + if (data->have_obj.nr == 0 || data->multi_ack) packet_write_fmt(1, "NAK\n"); if (data->no_done && sent_ready) { @@ -465,10 +465,10 @@ static int get_common_commits(struct upload_pack_data *data, switch (got_oid(arg, &oid, &data->have_obj)) { case -1: /* they have what we do not */ got_other = 1; - if (multi_ack + if (data->multi_ack && ok_to_give_up(&data->have_obj, &data->want_obj)) { const char *hex = oid_to_hex(&oid); - if (multi_ack == 2) { + if (data->multi_ack == 2) { sent_ready = 1; packet_write_fmt(1, "ACK %s ready\n", hex); } else @@ -478,9 +478,9 @@ static int get_common_commits(struct upload_pack_data *data, default: got_common = 1; oid_to_hex_r(last_hex, &oid); - if (multi_ack == 2) + if (data->multi_ack == 2) packet_write_fmt(1, "ACK %s common\n", last_hex); - else if (multi_ack) + else if (data->multi_ack) packet_write_fmt(1, "ACK %s continue\n", last_hex); else if (data->have_obj.nr == 1) packet_write_fmt(1, "ACK %s\n", last_hex); @@ -490,7 +490,7 @@ static int get_common_commits(struct upload_pack_data *data, } if (!strcmp(reader->line, "done")) { if (data->have_obj.nr > 0) { - if (multi_ack) + if (data->multi_ack) packet_write_fmt(1, "ACK %s\n", last_hex); return 0; } @@ -958,9 +958,9 @@ static void receive_needs(struct upload_pack_data *data, if (parse_feature_request(features, "deepen-relative")) data->deepen_relative = 1; if (parse_feature_request(features, "multi_ack_detailed")) - multi_ack = 2; + data->multi_ack = 2; else if (parse_feature_request(features, "multi_ack")) - multi_ack = 1; + data->multi_ack = 1; if (parse_feature_request(features, "no-done")) data->no_done = 1; if (parse_feature_request(features, "thin-pack")) From patchwork Tue Jun 2 04:16:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582897 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 483431392 for ; Tue, 2 Jun 2020 04:17:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 32056207D8 for ; Tue, 2 Jun 2020 04:17:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YFwZ9qpx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726141AbgFBERa (ORCPT ); Tue, 2 Jun 2020 00:17:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726112AbgFBER1 (ORCPT ); Tue, 2 Jun 2020 00:17:27 -0400 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C141C061A0E for ; Mon, 1 Jun 2020 21:17:26 -0700 (PDT) Received: by mail-wm1-x344.google.com with SMTP id k26so1595623wmi.4 for ; Mon, 01 Jun 2020 21:17:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=c1LsDCav3Oo0omDkV24DpSjULKgysEltfw0vysiozXM=; b=YFwZ9qpx4v6hCHoEMNBo2PfpMzs+5pdb7brREUWrur+xr8Yt/CZ3IBj3mPkWjrfrJP uvyLvxbmpkjVRYRo+7+jeCuukZtxa4AgZFiPjk++HcE1wc6heosK1D/7MpU1O6XX9dQH jF7dlQJqUop4ieTvjRuHNQlXc4gLDeZ9Mqvzt2sk2biOJRRysVpfeURFPWq6xH+R1kiy 1rdic7NUM5OB4i9ARQXFEQlXBF5W5Cmsw4J8y7YGrU3WK3iRueZYo/fEMb4wPSrkRZCN A5LbUbiFdf0p4lsuoBiLNs4f4iTeJmJCfZn0LLDWkQLC2OgX+iB4O5bu4PxTOwywAUiP sluw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=c1LsDCav3Oo0omDkV24DpSjULKgysEltfw0vysiozXM=; b=SSBySfYi+1Kzb5LTJExpURyeU36aCbDWsktiEhKZ4uBGEmpO5MtU49edxlpVg7xzPs +5Z9xKfamkzT8/DX2AwSbUeVZCgs7R3QVjfl9LZB2s7UXKkep4Ok+ZSoXFub9YXrjlRT rwgmawKF0LaQRgb4MfZGSqLDAXuQUIQMyT5NLdkkDT9zeJ0FZBCGoDqlW+gdrP6TY0+v 8+o7PLboeYSbMDsQGyK/jrNQWwjLHl8rFEq2T/T5jKqE9o5gWp6mJmN2dxupNYtDw+lZ 41dH0ZgHTKaQc87IBf/eiF7m4FlYVGnKboREwh7lP2Mbo2v1YTyztDZnirXEC97VkIaT AWFA== X-Gm-Message-State: AOAM533yuQMGkMPhTVsBIC1eyzc88BMlxv1GfcjRqSMqCvyf7wMhY7Ko sX4JA4gYywiLmOsgMQaricEEtRtr6uM= X-Google-Smtp-Source: ABdhPJyaru+HM9GFKrHkmdMpMhzUaFvs4QmPBmTNu1b6z31IT8n35/rdOCyy9ZW5jfjtMOCEXs+8jw== X-Received: by 2002:a1c:46c3:: with SMTP id t186mr2156968wma.36.1591071444801; Mon, 01 Jun 2020 21:17:24 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:24 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 07/13] upload-pack: change multi_ack to an enum Date: Tue, 2 Jun 2020 06:16:51 +0200 Message-Id: <20200602041657.7132-8-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's take this opportunity to change the 'multi_ack' variable, which is now part of 'upload_pack_data', to an enum. This will make it clear which values this variable can take. Signed-off-by: Christian Couder --- upload-pack.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index f8611a5d53..83270452d4 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -80,7 +80,11 @@ struct upload_pack_data { int deepen_relative; unsigned int timeout; /* v0 only */ - int multi_ack; /* v0 only */ + enum { + no_multi_ack = 0, + multi_ack = 1, + multi_ack_detailed = 2 + } multi_ack; /* v0 only */ /* 0 for no sideband, otherwise DEFAULT_PACKET_MAX or LARGE_PACKET_MAX */ int use_sideband; @@ -441,7 +445,7 @@ static int get_common_commits(struct upload_pack_data *data, reset_timeout(data->timeout); if (packet_reader_read(reader) != PACKET_READ_NORMAL) { - if (data->multi_ack == 2 + if (data->multi_ack == multi_ack_detailed && got_common && !got_other && ok_to_give_up(&data->have_obj, &data->want_obj)) { @@ -468,7 +472,7 @@ static int get_common_commits(struct upload_pack_data *data, if (data->multi_ack && ok_to_give_up(&data->have_obj, &data->want_obj)) { const char *hex = oid_to_hex(&oid); - if (data->multi_ack == 2) { + if (data->multi_ack == multi_ack_detailed) { sent_ready = 1; packet_write_fmt(1, "ACK %s ready\n", hex); } else @@ -478,7 +482,7 @@ static int get_common_commits(struct upload_pack_data *data, default: got_common = 1; oid_to_hex_r(last_hex, &oid); - if (data->multi_ack == 2) + if (data->multi_ack == multi_ack_detailed) packet_write_fmt(1, "ACK %s common\n", last_hex); else if (data->multi_ack) packet_write_fmt(1, "ACK %s continue\n", last_hex); @@ -958,9 +962,9 @@ static void receive_needs(struct upload_pack_data *data, if (parse_feature_request(features, "deepen-relative")) data->deepen_relative = 1; if (parse_feature_request(features, "multi_ack_detailed")) - data->multi_ack = 2; + data->multi_ack = multi_ack_detailed; else if (parse_feature_request(features, "multi_ack")) - data->multi_ack = 1; + data->multi_ack = multi_ack; if (parse_feature_request(features, "no-done")) data->no_done = 1; if (parse_feature_request(features, "thin-pack")) From patchwork Tue Jun 2 04:16:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582895 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C4379138C for ; Tue, 2 Jun 2020 04:17:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AC7FD207D8 for ; Tue, 2 Jun 2020 04:17:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JqQvcO/R" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726023AbgFBERb (ORCPT ); Tue, 2 Jun 2020 00:17:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726122AbgFBER1 (ORCPT ); Tue, 2 Jun 2020 00:17:27 -0400 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A0E5C05BD43 for ; Mon, 1 Jun 2020 21:17:27 -0700 (PDT) Received: by mail-wr1-x442.google.com with SMTP id q11so1906177wrp.3 for ; Mon, 01 Jun 2020 21:17:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Np7aeozVFJVo4XrBmyZ8nDJAXiodOCLak84um66XWpI=; b=JqQvcO/RwquFQyjiAq+GqOWlDWJYZ6sSMv1Kox5Ui06VDcloEmhfNb5AINgf0Ae36C yK4R5u6s+CQW/T+O+/lQz7M9qTxc1IVD4hD1M9/msYP++W9U/CaaZ6vqJh40vCFL5ERg vsVyw+z3WyaeKR9fREjynxiPGYT2F/aaeOu1GTsPtxJ0zX1Os/In9qNmPbdhxhtADKU5 s97hzJzNOgq9PDIGDGZ9O7JBvFQy2fjxxyx34wcmJkzHgmQ/z4OpIUtmwywGULhsMU1x T8p8GBb66PX97WdCOAtpZl09zRBy9p3d/vPnsWL6EQJOZEqSOmmpXCvhfQ8WoGkqVAHD Qx5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Np7aeozVFJVo4XrBmyZ8nDJAXiodOCLak84um66XWpI=; b=fhtdEEh2MpFmIkGlwSxrbxaB/n0z8FcyOKFzcbznrRXDcxFkZOsXeqJQLttfr7pOIP rfpUS6BkkypwTsP5T0lCmDSTFd1cwi7NI35Mr8XJWjuoYSyJLjF0SpahfaY9yoXTDHgf kDfbQrqKaPEuMMXnxNKN1NG8t2BOEpzhKyA6pImcUPzJcDLPjN4j7PhS9WrJvtvEdFCR +HH5J89bcX5wu5lEG74W0h1CgpPyB9LdKnMxHLE94aR0cbPdkxb/2wvKNmVDqVxR16zm A/LJ+IAvrnbmPncWfvm03JtH3d6x5stsnLv72O3m6WPDj0ZTL2oXg/bIpJztp26T2Dno haLQ== X-Gm-Message-State: AOAM531fhs0Zc7YXAyoBqehPijI/lsVEu5CbAIhze4qSZppx76TA8/Ss rRvSOF08QgE9V87lQIa/OAJl6RHm8Os= X-Google-Smtp-Source: ABdhPJzbRjpR145EFqFZOEBN5g3SHi2QwPCtyKvOVarseWUtZcJ4s3NDrWcqoJQE9qBodPCZ/6/pWg== X-Received: by 2002:a05:6000:1192:: with SMTP id g18mr25845322wrx.326.1591071445861; Mon, 01 Jun 2020 21:17:25 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:25 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 08/13] upload-pack: pass upload_pack_data to upload_pack_config() Date: Tue, 2 Jun 2020 06:16:52 +0200 Message-Id: <20200602041657.7132-9-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's pass that struct to upload_pack_config(), so that this function can use all the fields of the struct. This will be used in followup commits to move static variables that are set in upload_pack_config() into 'upload_pack_data'. Signed-off-by: Christian Couder --- upload-pack.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 83270452d4..7b0954794a 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -1113,7 +1113,7 @@ static int find_symref(const char *refname, const struct object_id *oid, return 0; } -static int upload_pack_config(const char *var, const char *value, void *unused) +static int upload_pack_config(const char *var, const char *value, void *cb_data) { if (!strcmp("uploadpack.allowtipsha1inwant", var)) { if (git_config_bool(var, value)) @@ -1158,10 +1158,10 @@ void upload_pack(struct upload_pack_options *options) struct packet_reader reader; struct upload_pack_data data; - git_config(upload_pack_config, NULL); - upload_pack_data_init(&data); + git_config(upload_pack_config, &data); + data.stateless_rpc = options->stateless_rpc; data.daemon_mode = options->daemon_mode; data.timeout = options->timeout; @@ -1491,11 +1491,11 @@ int upload_pack_v2(struct repository *r, struct argv_array *keys, clear_object_flags(ALL_FLAGS); - git_config(upload_pack_config, NULL); - upload_pack_data_init(&data); data.use_sideband = LARGE_PACKET_MAX; + git_config(upload_pack_config, &data); + while (state != FETCH_DONE) { switch (state) { case FETCH_PROCESS_ARGS: From patchwork Tue Jun 2 04:16:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582903 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8A2A9138C for ; Tue, 2 Jun 2020 04:17:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 737DD20734 for ; Tue, 2 Jun 2020 04:17:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="u8Av7IcR" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726182AbgFBERg (ORCPT ); Tue, 2 Jun 2020 00:17:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49188 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726139AbgFBER2 (ORCPT ); Tue, 2 Jun 2020 00:17:28 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B3D8C061A0E for ; Mon, 1 Jun 2020 21:17:28 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id l11so1926472wru.0 for ; Mon, 01 Jun 2020 21:17:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mWw5J4fqSrG7oiTm6Eb21EsDx3GiDF8MtcKQOnxmWYg=; b=u8Av7IcR5ce6v09HJjomOq3sPKWUksi7HPjO167FAvmZ3EnoMrR2rgdsBwJkMea3pf 8uYiuEtSklbd8zf7SnJceP3clYPi/DMU4J5gRCqx5LolB2EuW0a3Wh9CNoTgaKdRDc06 Kwm2kWJagUZpjxD+IK5nfkp/MrKrr4yrYvUTQtR3tMS7gv1LXz92tVA2wJ6xxGo2F5Vt iP8nJN8mel/QtiwA45Q9oQDjLnSNBwhheRIErF0IeKtx49APVuBFJN6/JXTNjmkAyxqg VN4COWfmNYiZ/IUnmiftUsvLGQ1ivTJ7rhb9hAgrifVGDhZxQ5hN4PBBsdiyqLoQEBSS IaGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mWw5J4fqSrG7oiTm6Eb21EsDx3GiDF8MtcKQOnxmWYg=; b=EnlybSz8haRk6l4Ts6Vcdp0a/jVnPL1t8hZq90pvxzYezoiZSnrPOFkgAfroLuCkHi uZEqrvG3wXjbkCfg9LFgks36eCdbZUYbA393WQG66Ij/oCwL0PEg2s6hDTrF8D9IHGmi 4wUk/t0YPPKJSeu9mrE02Z4XcJxwr/N7aAJNMtRdj/erPbo9VReXCADvvPImr8RkNTn+ dPzMaev4x53WNdARZgrKxbCZOz7RP85p/G3jbDg6P5IXI1zRQ+Xgtj8tjwawcOU50FKX Qh/J/i2BxJ+Es7xEBL+IzUQ/RnfmgBzj8J5ILjK0Yi1nmSonbx9D6TZbrawoZseECjww m8OA== X-Gm-Message-State: AOAM5304gS1LVmM8rTyxLbFm+LcIL4Ulz6moL71U9Okvfx1Qn2Qa74BA jSnUG1LDuXUVo/1joRTNND9LvQ4rmkQ= X-Google-Smtp-Source: ABdhPJwFArhxIyhqQ5jz7UNqhJtmf46/0uT0vbCcK7lwzAbAAY3naeRlqvyA5QN8b9S/bvUOJYUZEQ== X-Received: by 2002:adf:e68a:: with SMTP id r10mr24358172wrm.384.1591071446853; Mon, 01 Jun 2020 21:17:26 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:26 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 09/13] upload-pack: move keepalive to upload_pack_data Date: Tue, 2 Jun 2020 06:16:53 +0200 Message-Id: <20200602041657.7132-10-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'keepalive' static variable into this struct. It is used by code common to protocol v0 and protocol v2. Signed-off-by: Christian Couder --- upload-pack.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 7b0954794a..2695b52147 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -53,7 +53,6 @@ static timestamp_t oldest_have; static unsigned int allow_unadvertised_object_request; static int shallow_nr; static struct object_array extra_edge_obj; -static int keepalive = 5; static const char *pack_objects_hook; static int allow_filter; @@ -78,6 +77,7 @@ struct upload_pack_data { timestamp_t deepen_since; int deepen_rev_list; int deepen_relative; + int keepalive; unsigned int timeout; /* v0 only */ enum { @@ -125,6 +125,8 @@ static void upload_pack_data_init(struct upload_pack_data *data) data->shallows = shallows; data->deepen_not = deepen_not; packet_writer_init(&data->writer, 1); + + data->keepalive = 5; } static void upload_pack_data_clear(struct upload_pack_data *data) @@ -253,7 +255,7 @@ static void create_pack_file(struct upload_pack_data *pack_data) while (1) { struct pollfd pfd[2]; - int pe, pu, pollsize; + int pe, pu, pollsize, polltimeout; int ret; reset_timeout(pack_data->timeout); @@ -277,8 +279,11 @@ static void create_pack_file(struct upload_pack_data *pack_data) if (!pollsize) break; - ret = poll(pfd, pollsize, - keepalive < 0 ? -1 : 1000 * keepalive); + polltimeout = pack_data->keepalive < 0 + ? -1 + : 1000 * pack_data->keepalive; + + ret = poll(pfd, pollsize, polltimeout); if (ret < 0) { if (errno != EINTR) { @@ -1115,6 +1120,8 @@ static int find_symref(const char *refname, const struct object_id *oid, static int upload_pack_config(const char *var, const char *value, void *cb_data) { + struct upload_pack_data *data = cb_data; + if (!strcmp("uploadpack.allowtipsha1inwant", var)) { if (git_config_bool(var, value)) allow_unadvertised_object_request |= ALLOW_TIP_SHA1; @@ -1131,9 +1138,9 @@ static int upload_pack_config(const char *var, const char *value, void *cb_data) else allow_unadvertised_object_request &= ~ALLOW_ANY_SHA1; } else if (!strcmp("uploadpack.keepalive", var)) { - keepalive = git_config_int(var, value); - if (!keepalive) - keepalive = -1; + data->keepalive = git_config_int(var, value); + if (!data->keepalive) + data->keepalive = -1; } else if (!strcmp("uploadpack.allowfilter", var)) { allow_filter = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowrefinwant", var)) { From patchwork Tue Jun 2 04:16:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582901 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 536B360D for ; Tue, 2 Jun 2020 04:17:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3A79C2072F for ; Tue, 2 Jun 2020 04:17:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jYqOvd6J" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726166AbgFBERe (ORCPT ); Tue, 2 Jun 2020 00:17:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726160AbgFBERa (ORCPT ); Tue, 2 Jun 2020 00:17:30 -0400 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CFC7FC05BD43 for ; Mon, 1 Jun 2020 21:17:29 -0700 (PDT) Received: by mail-wm1-x344.google.com with SMTP id q25so1624346wmj.0 for ; Mon, 01 Jun 2020 21:17:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2CppxbExBykFK5mnLcgyF9QicP4tdGzI/8+stg+2sRw=; b=jYqOvd6JG7SaEYk5aOI6xfOHRFdKy2+n/M2P5iNzLj+SPZfExGPImhHOHWGK1A1ayU irx82MldUZ4ymIdNGUR2D4eShwAavIGUOL8fwNSM+mgsUd4Xa3P3F5xl9PW4WnR9yBnD 8v+N0xbL9vCDtHCQeo/Jgn6nwmspzgAbcLjH7n7eCUvQ5frBKg3Hsqwq3POUJ1ojJ7Zt yRivPR6JBVZv66iUHDrFCibKfIPnEGukUYdDLK3VEdBluajfQXQdCE7h0Sj8Lcy3uBcL E4yhUk9SSZPMHISVFGa1XktiPbZK1j27VnwHICN057FLV9PRYYKdmGBYuXQ+Gngc2r2X cfCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2CppxbExBykFK5mnLcgyF9QicP4tdGzI/8+stg+2sRw=; b=ijom9eZqUAzV1C2DNgXfWURr68dgl4kU4QLGjMJ3v9bZEx91G/30ICAnXkseabBEwJ 78GbsUXjbd/iwM5ZiqKbquyhAVfLSMDnSTx5atQ02kjGYGdzTOIPdGlYem/JxbVOHilv 9yg+Fm55fNKDYyUHdPlEAOCOMmGpr83cXwaDN5qo+b7TMWe7hZ12qVghrR4s9qZyIZco 280Ev7vQZArw31pajqnyxZou6u9rWWvm9rPYRcrwSO6CIYN9MCPRYSPcoABoiOrK7ZO8 /tSKRRngboue8gzMwZsadTnNGeWteMK8M8w9nR1JDXqpJsK1ysZ5JdDJQlsrti0i2OUd F9YQ== X-Gm-Message-State: AOAM531mLnx1CQNb2i/i06OFeX7HS1caxQef1xykI+8oglsSGHiNo6ZL TEQPIQPnpqraho8rl0QXR1A5VF+qYTg= X-Google-Smtp-Source: ABdhPJzEE8hE888F12hienItnS9pg+fmysFOancIEJvZQffhO7Tzqi7mJ/GgbyPAdc4IEDciRPvd1w== X-Received: by 2002:a1c:7f44:: with SMTP id a65mr2352988wmd.53.1591071448280; Mon, 01 Jun 2020 21:17:28 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:27 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 10/13] upload-pack: move allow_filter to upload_pack_data Date: Tue, 2 Jun 2020 06:16:54 +0200 Message-Id: <20200602041657.7132-11-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'allow_filter' static variable into this struct. It is used by both protocol v0 and protocol v2 code. Signed-off-by: Christian Couder --- upload-pack.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 2695b52147..538160801d 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -55,7 +55,6 @@ static int shallow_nr; static struct object_array extra_edge_obj; static const char *pack_objects_hook; -static int allow_filter; static int allow_ref_in_want; static int allow_sideband_all; @@ -102,6 +101,7 @@ struct upload_pack_data { unsigned use_ofs_delta : 1; unsigned no_progress : 1; unsigned use_include_tag : 1; + unsigned allow_filter : 1; unsigned done : 1; /* v2 only */ }; @@ -984,7 +984,8 @@ static void receive_needs(struct upload_pack_data *data, data->no_progress = 1; if (parse_feature_request(features, "include-tag")) data->use_include_tag = 1; - if (allow_filter && parse_feature_request(features, "filter")) + if (data->allow_filter && + parse_feature_request(features, "filter")) data->filter_capability_requested = 1; o = parse_object(the_repository, &oid_buf); @@ -1090,7 +1091,7 @@ static int send_ref(const char *refname, const struct object_id *oid, " allow-reachable-sha1-in-want" : "", data->stateless_rpc ? " no-done" : "", symref_info.buf, - allow_filter ? " filter" : "", + data->allow_filter ? " filter" : "", git_user_agent_sanitized()); strbuf_release(&symref_info); } else { @@ -1142,7 +1143,7 @@ static int upload_pack_config(const char *var, const char *value, void *cb_data) if (!data->keepalive) data->keepalive = -1; } else if (!strcmp("uploadpack.allowfilter", var)) { - allow_filter = git_config_bool(var, value); + data->allow_filter = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowrefinwant", var)) { allow_ref_in_want = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowsidebandall", var)) { @@ -1334,7 +1335,7 @@ static void process_args(struct packet_reader *request, continue; } - if (allow_filter && skip_prefix(arg, "filter ", &p)) { + if (data->allow_filter && skip_prefix(arg, "filter ", &p)) { list_objects_filter_die_if_populated(&data->filter_options); parse_list_objects_filter(&data->filter_options, p); continue; From patchwork Tue Jun 2 04:16:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582899 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5A5AB60D for ; Tue, 2 Jun 2020 04:17:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 42D88207DF for ; Tue, 2 Jun 2020 04:17:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bhyzJyYe" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726122AbgFBERd (ORCPT ); Tue, 2 Jun 2020 00:17:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49200 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726166AbgFBERb (ORCPT ); Tue, 2 Jun 2020 00:17:31 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1BDE9C03E96E for ; Mon, 1 Jun 2020 21:17:31 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id u13so1488445wml.1 for ; Mon, 01 Jun 2020 21:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0CJKvz+UIq0ulYA4LkhhU+1iCSl0n0xCGNT6PVAPelU=; b=bhyzJyYenCaMx2leh76WtgQSnFRcH/x+SPv5RX0aYOwet4JsPzmHM5ynkWMC6kG5vF UEz/qoNMgVhWjUh+J4kJeFsCDl0dvGDMEY9C8n8mJ/ru0HLjEMT2J1cBE8/aiIL3hfsR NwIG0P+RFr6Stkn+tstrDI/suNUbTAYBPZalwUW684nBNddwlLZYT337//kzTEJqnHXm FnQiPXKXMFCkDKdA2TaCm9odjlP18/IBHkkly36aek0dGEA0mox2rmjO5Y0+CVpVu3Ni k2Q5BhVF6RF2ETNa40zuxJhzEYinvqN9T7YGAT8uI68nfUN3KuHN/gh6VkJXF8dWxEag inNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0CJKvz+UIq0ulYA4LkhhU+1iCSl0n0xCGNT6PVAPelU=; b=DuQRdwcT0P9aPlmn64zENcxbbin4Koor5xHO2DfSd/Db5MpfDohpnawhkbCHA2/1HA J4FGnP8OhHZYYu1nwwWNBuwNdKBKico15I635mLLZmb//YgI0l9WHdLrZkIx8Aksncah BqptFETuIizppQSmzWJaBTJnLInJ15w4gcEcfjrRBoSOueuiiV4zmnVwCMxGVPSLG6Sp PpNRZF4i3pzmrArFi4HDqfBam+UfCGdP56r4yo8cPEIwC3zxkWbM9AF+EobZ/AWmODqI AlaYHdIMUFFm+7/OJa8Uawbitbm3x3EN5yonoLhk62VhFLigdjoZTa1GxTgxD6rs3nSd ippg== X-Gm-Message-State: AOAM53354sf2SiV3r8qTKmLLGy3DQ9zfnnIE4xYRiZ6sgZh/PuHUo6sS 6lhBlb6IrdMbMQGkeYuGQjv0HgxzmSM= X-Google-Smtp-Source: ABdhPJzEDrU9VtYTplObUc5oTK61iZD0gsdzmGKVURrYUbDuksiRywzQjqVdaKIK38rqw/m59N/q/A== X-Received: by 2002:a1c:9d53:: with SMTP id g80mr2370462wme.13.1591071449627; Mon, 01 Jun 2020 21:17:29 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:29 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 11/13] upload-pack: move allow_ref_in_want to upload_pack_data Date: Tue, 2 Jun 2020 06:16:55 +0200 Message-Id: <20200602041657.7132-12-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'allow_ref_in_want' static variable into this struct. It is used only by protocol v2 code. Signed-off-by: Christian Couder --- upload-pack.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 538160801d..3c00d79443 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -55,8 +55,6 @@ static int shallow_nr; static struct object_array extra_edge_obj; static const char *pack_objects_hook; -static int allow_ref_in_want; - static int allow_sideband_all; /* @@ -104,6 +102,7 @@ struct upload_pack_data { unsigned allow_filter : 1; unsigned done : 1; /* v2 only */ + unsigned allow_ref_in_want : 1; /* v2 only */ }; static void upload_pack_data_init(struct upload_pack_data *data) @@ -1145,7 +1144,7 @@ static int upload_pack_config(const char *var, const char *value, void *cb_data) } else if (!strcmp("uploadpack.allowfilter", var)) { data->allow_filter = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowrefinwant", var)) { - allow_ref_in_want = git_config_bool(var, value); + data->allow_ref_in_want = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowsidebandall", var)) { allow_sideband_all = git_config_bool(var, value); } else if (!strcmp("core.precomposeunicode", var)) { @@ -1289,7 +1288,7 @@ static void process_args(struct packet_reader *request, /* process want */ if (parse_want(&data->writer, arg, &data->want_obj)) continue; - if (allow_ref_in_want && + if (data->allow_ref_in_want && parse_want_ref(&data->writer, arg, &data->wanted_refs, &data->want_obj)) continue; From patchwork Tue Jun 2 04:16:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582905 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 324511392 for ; Tue, 2 Jun 2020 04:17:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1A9F2207D5 for ; Tue, 2 Jun 2020 04:17:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pMcRHp9A" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726189AbgFBERh (ORCPT ); Tue, 2 Jun 2020 00:17:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726171AbgFBERc (ORCPT ); Tue, 2 Jun 2020 00:17:32 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7BF81C061A0E for ; Mon, 1 Jun 2020 21:17:32 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id r9so1482097wmh.2 for ; Mon, 01 Jun 2020 21:17:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JdrO+vOZkCvNrejQcxamuRBCDHKbWhkYM+Rym0CJobo=; b=pMcRHp9ADi5SrdWDXOhqY1iWSeMbHZA0jBsMzGIWFA+nm9vxCj9cWHrLU+KaAoklT0 aIag9jdnXK0T1cneOmtFQ5SpWGfKgIuhxxxio54KOTwsQbUv2pMyvhMPY6BX1D9DBAB3 3cx7wwHtI0oLpM+nqSONmUq1nvYHf8jLyXOZ/DpR2SnTLlBdiikxhgmqgAqYl4W89QGZ tzor1lg9rsOlDmI6taNuciEZPGxc4F5zNFGrJ3N2D1Cc0UCqCEmY4BZB8yWhjp9zncV4 xKVZucY5Dyzy9DqrRyMiL46dFzc+n39F5p6p7SdhgotVIwVyhm+XaHRnAwttdKfO5HZ8 slQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JdrO+vOZkCvNrejQcxamuRBCDHKbWhkYM+Rym0CJobo=; b=H4YcaRwMb9AtkrCOSd8ATuwHgDKKEFbFbjEa/EV7sWoxXQg0UVICgSWTEMR+uIzKN+ 5Yl3/eH0VbPSnW0ZZyrN50MYOrKB3jaez33qOxONd8h2zP+wUsSGAJYjFSNeSVlNK5B8 qEmeiDCAH3BKxB2v3ftRHVEj8Bqn9KUc4vZZl2QJKKNRx9mhgrs/yPdowzMmbgHPvXwo creudCQvJLVjKHQj16WOB0oDZKmQyNq5DZFzTiOD5YjlKPIoa6cNLEBwexii1mR6DNwQ //Idti400jtBGBwQG45MYR94jDcHTdFn4M6a58nd8IwgeVeE/6yzVB5vMC39H0V5C+nP D3+w== X-Gm-Message-State: AOAM532mlceKzDkBRKxkMVg3+1JPgFxIlBCK0hqQb36DbcTiPHIt1mjD CLC9rzDbbt9CN/PqsfSXWfYQtiloAvU= X-Google-Smtp-Source: ABdhPJwWaGJMi6ROIz7EZYILpvoJ44M8beMGHN164HOjzUgiRgWGm4QWgC+Ix5Y/q6Q+lLqLFIU9/w== X-Received: by 2002:a1c:7dd5:: with SMTP id y204mr2100455wmc.182.1591071450946; Mon, 01 Jun 2020 21:17:30 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:30 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 12/13] upload-pack: move allow_sideband_all to upload_pack_data Date: Tue, 2 Jun 2020 06:16:56 +0200 Message-Id: <20200602041657.7132-13-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'allow_sideband_all' static variable into this struct. It is used only by protocol v2 code. Signed-off-by: Christian Couder --- upload-pack.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 3c00d79443..0887410791 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -55,8 +55,6 @@ static int shallow_nr; static struct object_array extra_edge_obj; static const char *pack_objects_hook; -static int allow_sideband_all; - /* * Please annotate, and if possible group together, fields used only * for protocol v0 or only for protocol v2. @@ -103,6 +101,7 @@ struct upload_pack_data { unsigned done : 1; /* v2 only */ unsigned allow_ref_in_want : 1; /* v2 only */ + unsigned allow_sideband_all : 1; /* v2 only */ }; static void upload_pack_data_init(struct upload_pack_data *data) @@ -1146,7 +1145,7 @@ static int upload_pack_config(const char *var, const char *value, void *cb_data) } else if (!strcmp("uploadpack.allowrefinwant", var)) { data->allow_ref_in_want = git_config_bool(var, value); } else if (!strcmp("uploadpack.allowsidebandall", var)) { - allow_sideband_all = git_config_bool(var, value); + data->allow_sideband_all = git_config_bool(var, value); } else if (!strcmp("core.precomposeunicode", var)) { precomposed_unicode = git_config_bool(var, value); } @@ -1341,7 +1340,7 @@ static void process_args(struct packet_reader *request, } if ((git_env_bool("GIT_TEST_SIDEBAND_ALL", 0) || - allow_sideband_all) && + data->allow_sideband_all) && !strcmp(arg, "sideband-all")) { data->writer.use_sideband = 1; continue; From patchwork Tue Jun 2 04:16:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 11582907 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8D87C60D for ; Tue, 2 Jun 2020 04:17:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 76454207D5 for ; Tue, 2 Jun 2020 04:17:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="s70t3d5I" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726190AbgFBERj (ORCPT ); Tue, 2 Jun 2020 00:17:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726097AbgFBERe (ORCPT ); Tue, 2 Jun 2020 00:17:34 -0400 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2876DC061A0E for ; Mon, 1 Jun 2020 21:17:34 -0700 (PDT) Received: by mail-wr1-x444.google.com with SMTP id q11so1906322wrp.3 for ; Mon, 01 Jun 2020 21:17:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ncZlyZBKSWv7UWqfcUEiYlIqu/0Sa8vD0+mW3XH7jvg=; b=s70t3d5Ib743A2DEjyIPMMX8opjsBIKOKhuc+hCm9vwC0OsMFf1XD7ACa8vS/xR0pd LOMskXmfIlxtV+n1ItDGqexrSfyyEJuBprFApSF94vU2IVa4FFRN3yYQCz3rWxLAdczj 50DRVby88kfNvGp37aQqvZTjxBzlejM/kPaOYsFRwvJY9AMIfcBFq5Rt5YV44rUuBopH Ic3AOitryOS02GGtGkK3P4HfT2dHgnod1P5RQWgquSV8ky9ZRvwOruCx0k9WMcuT+4Aa GOeuYWWAEUXwrMABHYldVIUYjsq8c42OH8UVRVBOjijNYTVfMcOztOcX+BZqZOCRNPf7 CJSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ncZlyZBKSWv7UWqfcUEiYlIqu/0Sa8vD0+mW3XH7jvg=; b=eStTLabE42GRY0GI65+1UN4HfpS9bphYT/VH3ExstHrHiTuZQpTSlOrZ0sckbMNEqS cDDOWrzkDiEyMcPQlgsh3v6P+9TNhDDGbsWj1gjQrNIrB2FEjZeF6gPSX0q2M6XAxheU njfn0TGvi0sBucEA2J8Y/tsqIBD6Rt2Sx30PDYM1w7XesaG5QbFGFWJuv/BwLYOsUjhL R4L2ke1OU6p/hCmmTDxnIHrZ5YmrVdA0fA7cylEfy7zP/+dgImc2oWWpYxHjwANq+pqH vkMzzb2Ptc8bC6OKrGBhcwiXMQrYpW3d72wXiVajL0u2J79FTiUI2iTvPV4Fq8+JRWv7 jALg== X-Gm-Message-State: AOAM530Ty5qj+t88T2vv5z0xaiegl3BfniqyEtcBvPXZiwxad3XsAAfO qYZpXCFhFzshApl2i59+b19Cyz0eiOo= X-Google-Smtp-Source: ABdhPJy5THFLt4czkcS56h2HCGgY1HnaFvMDBrFcO4CaAyNC/o+E8KSqut7dRnVp3ZzD0FsfZuOUyw== X-Received: by 2002:a5d:4ccc:: with SMTP id c12mr17895894wrt.281.1591071452108; Mon, 01 Jun 2020 21:17:32 -0700 (PDT) Received: from localhost.localdomain ([185.228.230.249]) by smtp.gmail.com with ESMTPSA id z2sm1717614wrs.87.2020.06.01.21.17.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 21:17:31 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Derrick Stolee , Jeff King , Taylor Blau , Jonathan Tan , Jonathan Nieder , Christian Couder Subject: [PATCH v2 13/13] upload-pack: move pack_objects_hook to upload_pack_data Date: Tue, 2 Jun 2020 06:16:57 +0200 Message-Id: <20200602041657.7132-14-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.27.0.rc0.26.gf2851482f5 In-Reply-To: <20200602041657.7132-1-chriscool@tuxfamily.org> References: <20200527164742.23067-1-chriscool@tuxfamily.org> <20200602041657.7132-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's move the 'pack_objects_hook' static variable into this struct. It is used by code common to protocol v0 and protocol v2. While at it let's also free() it in upload_pack_data_clear(). Signed-off-by: Christian Couder --- upload-pack.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/upload-pack.c b/upload-pack.c index 0887410791..30e8c54060 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -53,7 +53,6 @@ static timestamp_t oldest_have; static unsigned int allow_unadvertised_object_request; static int shallow_nr; static struct object_array extra_edge_obj; -static const char *pack_objects_hook; /* * Please annotate, and if possible group together, fields used only @@ -88,6 +87,8 @@ struct upload_pack_data { struct packet_writer writer; + const char *pack_objects_hook; + unsigned stateless_rpc : 1; /* v0 only */ unsigned no_done : 1; /* v0 only */ unsigned daemon_mode : 1; /* v0 only */ @@ -137,6 +138,8 @@ static void upload_pack_data_clear(struct upload_pack_data *data) object_array_clear(&data->shallows); string_list_clear(&data->deepen_not, 0); list_objects_filter_release(&data->filter_options); + + free((char *)data->pack_objects_hook); } static void reset_timeout(unsigned int timeout) @@ -181,10 +184,10 @@ static void create_pack_file(struct upload_pack_data *pack_data) int i; FILE *pipe_fd; - if (!pack_objects_hook) + if (!pack_data->pack_objects_hook) pack_objects.git_cmd = 1; else { - argv_array_push(&pack_objects.args, pack_objects_hook); + argv_array_push(&pack_objects.args, pack_data->pack_objects_hook); argv_array_push(&pack_objects.args, "git"); pack_objects.use_shell = 1; } @@ -1153,7 +1156,7 @@ static int upload_pack_config(const char *var, const char *value, void *cb_data) if (current_config_scope() != CONFIG_SCOPE_LOCAL && current_config_scope() != CONFIG_SCOPE_WORKTREE) { if (!strcmp("uploadpack.packobjectshook", var)) - return git_config_string(&pack_objects_hook, var, value); + return git_config_string(&data->pack_objects_hook, var, value); } return parse_hide_refs_config(var, value, "uploadpack");