From 44e5e1231be7ca1f962740b3c4162640436f8ab3 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 4 Jun 2018 07:12:32 +0800 Subject: [PATCH] minimal client: add different paths to multi --- .../minimal-http-client-multi/README.md | 1 + .../minimal-http-client-multi.c | 19 ++++++++++++++---- test-apps/1.png | Bin 0 -> 5249 bytes test-apps/2.png | Bin 0 -> 5195 bytes test-apps/3.png | Bin 0 -> 5171 bytes test-apps/4.png | Bin 0 -> 5171 bytes test-apps/5.png | Bin 0 -> 5114 bytes test-apps/6.png | Bin 0 -> 5153 bytes test-apps/7.png | Bin 0 -> 5055 bytes test-apps/8.png | Bin 0 -> 5117 bytes 10 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 test-apps/1.png create mode 100644 test-apps/2.png create mode 100644 test-apps/3.png create mode 100644 test-apps/4.png create mode 100644 test-apps/5.png create mode 100644 test-apps/6.png create mode 100644 test-apps/7.png create mode 100644 test-apps/8.png diff --git a/minimal-examples/http-client/minimal-http-client-multi/README.md b/minimal-examples/http-client/minimal-http-client-multi/README.md index f31b62285..7eaac9ddb 100644 --- a/minimal-examples/http-client/minimal-http-client-multi/README.md +++ b/minimal-examples/http-client/minimal-http-client-multi/README.md @@ -21,4 +21,5 @@ Option|Meaning -p|Use http/1.1 pipelining or h2 simultaneous streams --h1|Force http/1 only -l|Connect to server on https://localhost:7681 instead of https://warmcat.com:443 +-n|Read numbered files like /1.png, /2.png etc. Default is just read / diff --git a/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c b/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c index 19940ffeb..b84e01e3f 100644 --- a/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c +++ b/minimal-examples/http-client/minimal-http-client-multi/minimal-http-client-multi.c @@ -40,7 +40,7 @@ struct user { int index; }; -static int interrupted, completed, failed; +static int interrupted, completed, failed, numbered; static struct lws *client_wsi[COUNT]; static struct user user[COUNT]; @@ -154,7 +154,13 @@ unsigned long long us(void) static void lws_try_client_connection(struct lws_client_connect_info *i, int m) { - i->path = "/"; + char path[128]; + + if (numbered) { + lws_snprintf(path, sizeof(path), "/%d.png", m + 1); + i->path = path; + } else + i->path = "/"; i->pwsi = &client_wsi[m]; user[m].index = m; @@ -167,7 +173,8 @@ lws_try_client_connection(struct lws_client_connect_info *i, int m) interrupted = 1; } } else - lwsl_user("started connection %p: idx %d\n", client_wsi[m], m); + lwsl_user("started connection %p: idx %d (%s)\n", + client_wsi[m], m, i->path); } int main(int argc, const char **argv) @@ -196,7 +203,8 @@ int main(int argc, const char **argv) lws_set_log_level(logs, NULL); lwsl_user("LWS minimal http client [-s (staggered)] [-p (pipeline)]\n"); - lwsl_user(" [--h1 (http/1 only)] [-l (localhost)] [-d ]\n"); + lwsl_user(" [--h1 (http/1 only)] [-l (localhost)] [-d ]\n"); + lwsl_user(" [-n (numbered)]\n"); memset(&info, 0, sizeof info); /* otherwise uninitialized garbage */ info.options = LWS_SERVER_OPTION_DO_SSL_GLOBAL_INIT; @@ -237,6 +245,9 @@ int main(int argc, const char **argv) i.address = "warmcat.com"; } + if (lws_cmdline_option(argc, argv, "-n")) + numbered = 1; + if ((p = lws_cmdline_option(argc, argv, "--port"))) i.port = atoi(p); diff --git a/test-apps/1.png b/test-apps/1.png new file mode 100644 index 0000000000000000000000000000000000000000..4a022b9d6d930b01eb15f546dfe9985229779432 GIT binary patch literal 5249 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 Hu0mjfz&OKL literal 0 HcmV?d00001 diff --git a/test-apps/2.png b/test-apps/2.png new file mode 100644 index 0000000000000000000000000000000000000000..d6bc9d1bae4236ebb1d55df34ec32d936e63ced4 GIT binary patch literal 5195 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 FV1j#2D&znF literal 0 HcmV?d00001 diff --git a/test-apps/3.png b/test-apps/3.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4614de6b443d56d96f65c09199ff022ba5ca81 GIT binary patch literal 5171 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 literal 0 HcmV?d00001 diff --git a/test-apps/4.png b/test-apps/4.png new file mode 100644 index 0000000000000000000000000000000000000000..4319faad6805e15b0486351ec3b39fcbb9ea9674 GIT binary patch literal 5171 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 literal 0 HcmV?d00001 diff --git a/test-apps/5.png b/test-apps/5.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2838cfb66663c9008564c1e7797137620c44c5 GIT binary patch literal 5114 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 literal 0 HcmV?d00001 diff --git a/test-apps/6.png b/test-apps/6.png new file mode 100644 index 0000000000000000000000000000000000000000..a6ee64814620fe710dcb0041c8cdd26101c3b1ac GIT binary patch literal 5153 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 P00000NkvXXu0mjfIu0{S literal 0 HcmV?d00001 diff --git a/test-apps/7.png b/test-apps/7.png new file mode 100644 index 0000000000000000000000000000000000000000..d02ab8178c56c330a4e48be365c3bc06509a37d7 GIT binary patch literal 5055 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 V8f1!dxT^pF002ovPDHLkV1kkkl{)|c literal 0 HcmV?d00001 diff --git a/test-apps/8.png b/test-apps/8.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f6e808b3d7e3fe49703e162cfb21fe50775c55 GIT binary patch literal 5117 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 literal 0 HcmV?d00001