From: Junio C Hamano Date: Wed, 6 Jul 2016 20:38:09 +0000 (-0700) Subject: Merge branch 'lf/sideband-returns-void' X-Git-Tag: v2.10.0-rc0~162 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/35d213c87ca7b46974decb53d9df2d363b707b50?hp=-c Merge branch 'lf/sideband-returns-void' A small internal API cleanup. * lf/sideband-returns-void: upload-pack.c: make send_client_data() return void sideband.c: make send_sideband() return void --- 35d213c87ca7b46974decb53d9df2d363b707b50 diff --combined upload-pack.c index 9e03c278b9,44d63fba41..a86d49cfb3 --- a/upload-pack.c +++ b/upload-pack.c @@@ -14,12 -14,8 +14,12 @@@ #include "sigchain.h" #include "version.h" #include "string-list.h" +#include "parse-options.h" -static const char upload_pack_usage[] = "git upload-pack [--strict] [--timeout=] "; +static const char * const upload_pack_usage[] = { + N_("git upload-pack [] "), + NULL +}; /* Remember to update object flag allocation in object.h */ #define THEY_HAVE (1u << 11) @@@ -62,20 -58,21 +62,21 @@@ static void reset_timeout(void alarm(timeout); } - static ssize_t send_client_data(int fd, const char *data, ssize_t sz) + static void send_client_data(int fd, const char *data, ssize_t sz) { - if (use_sideband) - return send_sideband(1, fd, data, sz, use_sideband); + if (use_sideband) { + send_sideband(1, fd, data, sz, use_sideband); + return; + } if (fd == 3) /* emergency quit */ fd = 2; if (fd == 2) { /* XXX: are we happy to lose stuff here? */ xwrite(fd, data, sz); - return sz; + return; } write_or_die(fd, data, sz); - return sz; } static int write_one_shallow(const struct commit_graft *graft, void *cb_data) @@@ -233,9 -230,7 +234,7 @@@ static void create_pack_file(void } else buffered = -1; - sz = send_client_data(1, data, sz); - if (sz < 0) - goto fail; + send_client_data(1, data, sz); } /* @@@ -262,9 -257,7 +261,7 @@@ /* flush the data */ if (0 <= buffered) { data[0] = buffered; - sz = send_client_data(1, data, 1); - if (sz < 0) - goto fail; + send_client_data(1, data, 1); fprintf(stderr, "flushed.\n"); } if (use_sideband) @@@ -820,21 -813,11 +817,21 @@@ static int upload_pack_config(const cha return parse_hide_refs_config(var, value, "uploadpack"); } -int main(int argc, char **argv) +int main(int argc, const char **argv) { - char *dir; - int i; + const char *dir; int strict = 0; + struct option options[] = { + OPT_BOOL(0, "stateless-rpc", &stateless_rpc, + N_("quit after a single request/response exchange")), + OPT_BOOL(0, "advertise-refs", &advertise_refs, + N_("exit immediately after intial ref advertisement")), + OPT_BOOL(0, "strict", &strict, + N_("do not try /.git/ if is no Git directory")), + OPT_INTEGER(0, "timeout", &timeout, + N_("interrupt transfer after seconds of inactivity")), + OPT_END() + }; git_setup_gettext(); @@@ -842,17 -825,40 +839,17 @@@ git_extract_argv0_path(argv[0]); check_replace_refs = 0; - for (i = 1; i < argc; i++) { - char *arg = argv[i]; + argc = parse_options(argc, argv, NULL, options, upload_pack_usage, 0); - if (arg[0] != '-') - break; - if (!strcmp(arg, "--advertise-refs")) { - advertise_refs = 1; - continue; - } - if (!strcmp(arg, "--stateless-rpc")) { - stateless_rpc = 1; - continue; - } - if (!strcmp(arg, "--strict")) { - strict = 1; - continue; - } - if (starts_with(arg, "--timeout=")) { - timeout = atoi(arg+10); - daemon_mode = 1; - continue; - } - if (!strcmp(arg, "--")) { - i++; - break; - } - } + if (argc != 1) + usage_with_options(upload_pack_usage, options); - if (i != argc-1) - usage(upload_pack_usage); + if (timeout) + daemon_mode = 1; setup_path(); - dir = argv[i]; + dir = argv[0]; if (!enter_repo(dir, strict)) die("'%s' does not appear to be a git repository", dir);