upload-pack: move keepalive to upload_pack_data
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 <chriscool@tuxfamily.org> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Christian Couder committed
Jun 4, 2020 at 19:54 UTC
f203a88cf14f196d1eb7c3519e613af7ffc1b8d1
1 file changed
+14
-7
upload-pack.c
+14
-7
@@ -53,7 +53,6 @@ static timestamp_t oldest_have;
53
static unsigned int allow_unadvertised_object_request;
54
static int shallow_nr;
55
static struct object_array extra_edge_obj;
56
-static int keepalive = 5;
56
static const char *pack_objects_hook;
57
58
static int allow_filter;
@@ -78,6 +77,7 @@ struct upload_pack_data {
77
timestamp_t deepen_since;
78
int deepen_rev_list;
79
int deepen_relative;
80
+ int keepalive;
81
82
unsigned int timeout; /* v0 only */
83
enum {
@@ -125,6 +125,8 @@ static void upload_pack_data_init(struct upload_pack_data *data)
125
data->shallows = shallows;
126
data->deepen_not = deepen_not;
127
packet_writer_init(&data->writer, 1);
128
+
129
+ data->keepalive = 5;
130
}
131
132
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)
255
256
while (1) {
257
struct pollfd pfd[2];
256
- int pe, pu, pollsize;
258
+ int pe, pu, pollsize, polltimeout;
259
int ret;
260
261
reset_timeout(pack_data->timeout);
@@ -277,8 +279,11 @@ static void create_pack_file(struct upload_pack_data *pack_data)
279
if (!pollsize)
280
break;
281
280
- ret = poll(pfd, pollsize,
281
- keepalive < 0 ? -1 : 1000 * keepalive);
282
+ polltimeout = pack_data->keepalive < 0
283
+ ? -1
284
+ : 1000 * pack_data->keepalive;
285
+
286
+ ret = poll(pfd, pollsize, polltimeout);
287
288
if (ret < 0) {
289
if (errno != EINTR) {
@@ -1115,6 +1120,8 @@ static int find_symref(const char *refname, const struct object_id *oid,
1120
1121
static int upload_pack_config(const char *var, const char *value, void *cb_data)
1122
{
1123
+ struct upload_pack_data *data = cb_data;
1124
+
1125
if (!strcmp("uploadpack.allowtipsha1inwant", var)) {
1126
if (git_config_bool(var, value))
1127
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)
1138
else
1139
allow_unadvertised_object_request &= ~ALLOW_ANY_SHA1;
1140
} else if (!strcmp("uploadpack.keepalive", var)) {
1134
- keepalive = git_config_int(var, value);
1135
- if (!keepalive)
1136
- keepalive = -1;
1141
+ data->keepalive = git_config_int(var, value);
1142
+ if (!data->keepalive)
1143
+ data->keepalive = -1;
1144
} else if (!strcmp("uploadpack.allowfilter", var)) {
1145
allow_filter = git_config_bool(var, value);
1146
} else if (!strcmp("uploadpack.allowrefinwant", var)) {