diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-09-11 21:33:37 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-09-11 21:33:37 +0400 |
commit | 5dcdc7809ea419cd792baf1cfa484261e883cd51 (patch) | |
tree | d8244a2ade05b357bcfe7cb39e7851425da03717 | |
parent | 1ebe6a825a1ff12e12905e28265aa30e269700d6 (diff) | |
parent | ba9b9e124276e5d27ecf0e7701df1dedab6375c8 (diff) |
Merge branch 'br/imap-send-simplify-tunnel-child-process'
Code clean-up.
* br/imap-send-simplify-tunnel-child-process:
imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
imap-send.c: imap_folder -> imap_server_conf.folder
git-imap-send: simplify tunnel construction
-rw-r--r-- | imap-send.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/imap-send.c b/imap-send.c index b7601f6359..f33e56dba1 100644 --- a/imap-send.c +++ b/imap-send.c @@ -69,6 +69,7 @@ struct imap_server_conf { char *tunnel; char *host; int port; + char *folder; char *user; char *pass; int use_ssl; @@ -82,6 +83,7 @@ static struct imap_server_conf server = { NULL, /* tunnel */ NULL, /* host */ 0, /* port */ + NULL, /* folder */ NULL, /* user */ NULL, /* pass */ 0, /* use_ssl */ @@ -523,7 +525,7 @@ static struct imap_cmd *issue_imap_cmd(struct imap_store *ctx, if (Verbose) { if (imap->num_in_progress) printf("(%d in progress) ", imap->num_in_progress); - if (memcmp(cmd->cmd, "LOGIN", 5)) + if (!starts_with(cmd->cmd, "LOGIN")) printf(">>> %s", buf); else printf(">>> %d LOGIN <user> <pass>\n", cmd->tag); @@ -791,7 +793,7 @@ static int get_cmd_result(struct imap_store *ctx, struct imap_cmd *tcmd) else /*if (!strcmp("BAD", arg))*/ resp = RESP_BAD; fprintf(stderr, "IMAP command '%s' returned response (%s) - %s\n", - memcmp(cmdp->cmd, "LOGIN", 5) ? + !starts_with(cmdp->cmd, "LOGIN") ? cmdp->cmd : "LOGIN <user> <pass>", arg, cmd ? cmd : ""); } @@ -924,17 +926,16 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *f /* open connection to IMAP server */ if (srvc->tunnel) { - const char *argv[] = { srvc->tunnel, NULL }; struct child_process tunnel = CHILD_PROCESS_INIT; imap_info("Starting tunnel '%s'... ", srvc->tunnel); - tunnel.argv = argv; + argv_array_push(&tunnel.args, srvc->tunnel); tunnel.use_shell = 1; tunnel.in = -1; tunnel.out = -1; if (start_command(&tunnel)) - die("cannot start proxy %s", argv[0]); + die("cannot start proxy %s", srvc->tunnel); imap->buf.sock.fd[0] = tunnel.out; imap->buf.sock.fd[1] = tunnel.in; @@ -1306,15 +1307,13 @@ static int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs) return 1; } -static char *imap_folder; - static void git_imap_config(void) { const char *val = NULL; git_config_get_bool("imap.sslverify", &server.ssl_verify); git_config_get_bool("imap.preformattedhtml", &server.use_html); - git_config_get_string("imap.folder", &imap_folder); + git_config_get_string("imap.folder", &server.folder); if (!git_config_get_value("imap.host", &val)) { if (!val) { @@ -1362,7 +1361,7 @@ int main(int argc, char **argv) if (!server.port) server.port = server.use_ssl ? 993 : 143; - if (!imap_folder) { + if (!server.folder) { fprintf(stderr, "no imap store specified\n"); return 1; } @@ -1392,7 +1391,7 @@ int main(int argc, char **argv) } /* write it to the imap server */ - ctx = imap_open_store(&server, imap_folder); + ctx = imap_open_store(&server, server.folder); if (!ctx) { fprintf(stderr, "failed to open store\n"); return 1; |