Skip to content

Commit 0e55194

Browse files
committed
MHD examples with HTTP2 option
1 parent d30b015 commit 0e55194

16 files changed

+485
-121
lines changed

src/examples/authorization_example.c

+17-8
Original file line numberDiff line numberDiff line change
@@ -102,19 +102,28 @@ int
102102
main (int argc, char *const *argv)
103103
{
104104
struct MHD_Daemon *d;
105-
unsigned int port;
105+
int use_http2 = 0;
106+
uint16_t port;
106107

107-
if ( (argc != 2) ||
108-
(1 != sscanf (argv[1], "%u", &port)) ||
109-
(UINT16_MAX < port) )
108+
switch (argc)
110109
{
111-
fprintf (stderr,
112-
"%s PORT\n", argv[0]);
110+
case 2:
111+
port = atoi (argv[1]);
112+
break;
113+
case 3:
114+
if (strcmp(argv[1], "-h2") == 0)
115+
{
116+
use_http2 = MHD_USE_HTTP2;
117+
port = atoi (argv[2]);
118+
break;
119+
}
120+
default:
121+
printf ("%s [-h2] PORT\n", argv[0]);
113122
return 1;
114123
}
115124

116-
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG,
117-
atoi (argv[1]),
125+
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | use_http2,
126+
port,
118127
NULL, NULL, &ahc_echo, PAGE, MHD_OPTION_END);
119128
if (d == NULL)
120129
return 1;

src/examples/benchmark.c

+17-4
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,23 @@ main (int argc, char *const *argv)
132132
{
133133
struct MHD_Daemon *d;
134134
unsigned int i;
135+
int use_http2 = 0;
136+
uint16_t port;
135137

136-
if (argc != 2)
138+
switch (argc)
137139
{
138-
printf ("%s PORT\n", argv[0]);
140+
case 2:
141+
port = atoi (argv[1]);
142+
break;
143+
case 3:
144+
if (strcmp(argv[1], "-h2") == 0)
145+
{
146+
use_http2 = MHD_USE_HTTP2;
147+
port = atoi (argv[2]);
148+
break;
149+
}
150+
default:
151+
printf ("%s [-h2] PORT\n", argv[0]);
139152
return 1;
140153
}
141154
response = MHD_create_response_from_buffer (strlen (PAGE),
@@ -146,12 +159,12 @@ main (int argc, char *const *argv)
146159
MHD_HTTP_HEADER_CONNECTION,
147160
"close");
148161
#endif
149-
d = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_SUPPRESS_DATE_NO_CLOCK
162+
d = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_SUPPRESS_DATE_NO_CLOCK | use_http2
150163
#ifdef EPOLL_SUPPORT
151164
| MHD_USE_EPOLL | MHD_USE_TURBO
152165
#endif
153166
,
154-
atoi (argv[1]),
167+
port,
155168
NULL, NULL, &ahc_echo, NULL,
156169
MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 120,
157170
MHD_OPTION_THREAD_POOL_SIZE, (unsigned int) NUMBER_OF_THREADS,

src/examples/benchmark_https.c

+17-4
Original file line numberDiff line numberDiff line change
@@ -183,21 +183,34 @@ main (int argc, char *const *argv)
183183
{
184184
struct MHD_Daemon *d;
185185
unsigned int i;
186+
int use_http2 = 0;
187+
uint16_t port;
186188

187-
if (argc != 2)
189+
switch (argc)
188190
{
189-
printf ("%s PORT\n", argv[0]);
191+
case 2:
192+
port = atoi (argv[1]);
193+
break;
194+
case 3:
195+
if (strcmp(argv[1], "-h2") == 0)
196+
{
197+
use_http2 = MHD_USE_HTTP2;
198+
port = atoi (argv[2]);
199+
break;
200+
}
201+
default:
202+
printf ("%s [-h2] PORT\n", argv[0]);
190203
return 1;
191204
}
192205
response = MHD_create_response_from_buffer (strlen (PAGE),
193206
(void *) PAGE,
194207
MHD_RESPMEM_PERSISTENT);
195-
d = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_TLS
208+
d = MHD_start_daemon (MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_TLS | use_http2
196209
#ifdef EPOLL_SUPPORT
197210
| MHD_USE_EPOLL | MHD_USE_TURBO
198211
#endif
199212
,
200-
atoi (argv[1]),
213+
port,
201214
NULL, NULL, &ahc_echo, NULL,
202215
MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 120,
203216
MHD_OPTION_THREAD_POOL_SIZE, (unsigned int) NUMBER_OF_THREADS,

src/examples/chunked_example.c

-2
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@
1919
/**
2020
* @file chunked_example.c
2121
* @brief example for generating chunked encoding with libmicrohttpd
22-
* and add a trailer at the end of the response.
2322
* @author Christian Grothoff
2423
* @author Karlson2k (Evgeny Grin)
25-
* @author Maru Berezin
2624
*/
2725

2826
#include "platform.h"

src/examples/demo.c

+16-7
Original file line numberDiff line numberDiff line change
@@ -873,14 +873,23 @@ int
873873
main (int argc, char *const *argv)
874874
{
875875
struct MHD_Daemon *d;
876-
unsigned int port;
876+
int use_http2 = 0;
877+
uint16_t port;
877878

878-
if ( (argc != 2) ||
879-
(1 != sscanf (argv[1], "%u", &port)) ||
880-
(UINT16_MAX < port) )
879+
switch (argc)
881880
{
882-
fprintf (stderr,
883-
"%s PORT\n", argv[0]);
881+
case 2:
882+
port = atoi (argv[1]);
883+
break;
884+
case 3:
885+
if (strcmp(argv[1], "-h2") == 0)
886+
{
887+
use_http2 = MHD_USE_HTTP2;
888+
port = atoi (argv[2]);
889+
break;
890+
}
891+
default:
892+
printf ("%s [-h2] PORT\n", argv[0]);
884893
return 1;
885894
}
886895
#ifndef MINGW
@@ -905,7 +914,7 @@ main (int argc, char *const *argv)
905914
MHD_RESPMEM_PERSISTENT);
906915
mark_as_html (internal_error_response);
907916
update_directory ();
908-
d = MHD_start_daemon (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG,
917+
d = MHD_start_daemon (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | use_http2,
909918
port,
910919
NULL, NULL,
911920
&generate_page, NULL,

src/examples/demo_https.c

+60-52
Original file line numberDiff line numberDiff line change
@@ -859,54 +859,53 @@ ignore_sigpipe (void)
859859
#endif
860860

861861
/* test server key */
862-
const char srv_signed_key_pem[] = "-----BEGIN RSA PRIVATE KEY-----\n"
863-
"MIIEowIBAAKCAQEAvfTdv+3fgvVTKRnP/HVNG81cr8TrUP/iiyuve/THMzvFXhCW\n"
864-
"+K03KwEku55QvnUndwBfU/ROzLlv+5hotgiDRNFT3HxurmhouySBrJNJv7qWp8IL\n"
865-
"q4sw32vo0fbMu5BZF49bUXK9L3kW2PdhTtSQPWHEzNrCxO+YgCilKHkY3vQNfdJ0\n"
866-
"20Q5EAAEseD1YtWCIpRvJzYlZMpjYB1ubTl24kwrgOKUJYKqM4jmF4DVQp4oOK/6\n"
867-
"QYGGh1QmHRPAy3CBII6sbb+sZT9cAqU6GYQVB35lm4XAgibXV6KgmpVxVQQ69U6x\n"
868-
"yoOl204xuekZOaG9RUPId74Rtmwfi1TLbBzo2wIDAQABAoIBADu09WSICNq5cMe4\n"
869-
"+NKCLlgAT1NiQpLls1gKRbDhKiHU9j8QWNvWWkJWrCya4QdUfLCfeddCMeiQmv3K\n"
870-
"lJMvDs+5OjJSHFoOsGiuW2Ias7IjnIojaJalfBml6frhJ84G27IXmdz6gzOiTIer\n"
871-
"DjeAgcwBaKH5WwIay2TxIaScl7AwHBauQkrLcyb4hTmZuQh6ArVIN6+pzoVuORXM\n"
872-
"bpeNWl2l/HSN3VtUN6aCAKbN/X3o0GavCCMn5Fa85uJFsab4ss/uP+2PusU71+zP\n"
873-
"sBm6p/2IbGvF5k3VPDA7X5YX61sukRjRBihY8xSnNYx1UcoOsX6AiPnbhifD8+xQ\n"
874-
"Tlf8oJUCgYEA0BTfzqNpr9Wxw5/QXaSdw7S/0eP5a0C/nwURvmfSzuTD4equzbEN\n"
875-
"d+dI/s2JMxrdj/I4uoAfUXRGaabevQIjFzC9uyE3LaOyR2zhuvAzX+vVcs6bSXeU\n"
876-
"pKpCAcN+3Z3evMaX2f+z/nfSUAl2i4J2R+/LQAWJW4KwRky/m+cxpfUCgYEA6bN1\n"
877-
"b73bMgM8wpNt6+fcmS+5n0iZihygQ2U2DEud8nZJL4Nrm1dwTnfZfJBnkGj6+0Q0\n"
878-
"cOwj2KS0/wcEdJBP0jucU4v60VMhp75AQeHqidIde0bTViSRo3HWKXHBIFGYoU3T\n"
879-
"LyPyKndbqsOObnsFXHn56Nwhr2HLf6nw4taGQY8CgYBoSW36FLCNbd6QGvLFXBGt\n"
880-
"2lMhEM8az/K58kJ4WXSwOLtr6MD/WjNT2tkcy0puEJLm6BFCd6A6pLn9jaKou/92\n"
881-
"SfltZjJPb3GUlp9zn5tAAeSSi7YMViBrfuFiHObij5LorefBXISLjuYbMwL03MgH\n"
882-
"Ocl2JtA2ywMp2KFXs8GQWQKBgFyIVv5ogQrbZ0pvj31xr9HjqK6d01VxIi+tOmpB\n"
883-
"4ocnOLEcaxX12BzprW55ytfOCVpF1jHD/imAhb3YrHXu0fwe6DXYXfZV4SSG2vB7\n"
884-
"IB9z14KBN5qLHjNGFpMQXHSMek+b/ftTU0ZnPh9uEM5D3YqRLVd7GcdUhHvG8P8Q\n"
885-
"C9aXAoGBAJtID6h8wOGMP0XYX5YYnhlC7dOLfk8UYrzlp3xhqVkzKthTQTj6wx9R\n"
886-
"GtC4k7U1ki8oJsfcIlBNXd768fqDVWjYju5rzShMpo8OCTS6ipAblKjCxPPVhIpv\n"
887-
"tWPlbSn1qj6wylstJ5/3Z+ZW5H4wIKp5jmLiioDhcP0L/Ex3Zx8O\n"
862+
const char srv_signed_key_pem[] =
863+
"-----BEGIN RSA PRIVATE KEY-----\n"
864+
"MIIEowIBAAKCAQEAtN08lLyuR5lAIq0adOu7WiBDuG4m4eZ6qJVKFHaPy3m5TEFf\n"
865+
"qp67/0TQDE8eV3zS2eOf5GzPYHhfKmNL7D8kLz+I7psytCziWLiMJh2lJvb2152I\n"
866+
"niC4sArk4I2rnd1ZGQ6EPX7XiKPusHvVE6VamacaWy7pQTIf1bL19HDydVRQu60+\n"
867+
"faPYQFJRX/Y1/xpinWCO/TLYFcdDjwY5pkg+pInAQX5n4JDu2yBsJUbbCMjM58Wx\n"
868+
"7ulbqF/3lca0765gsIBFy1kWeq7vDEJeWH6nhl10VcDHl1PetSnn27r5hD3HIAsZ\n"
869+
"vBWdQtXJwxxV4bIkoAMzAYwv2+ilYTUOCp1HWQIDAQABAoIBAArOQv3R7gmqDspj\n"
870+
"lDaTFOz0C4e70QfjGMX0sWnakYnDGn6DU19iv3GnX1S072ejtgc9kcJ4e8VUO79R\n"
871+
"EmqpdRR7k8dJr3RTUCyjzf/C+qiCzcmhCFYGN3KRHA6MeEnkvRuBogX4i5EG1k5l\n"
872+
"/5t+YBTZBnqXKWlzQLKoUAiMLPg0eRWh+6q7H4N7kdWWBmTpako7TEqpIwuEnPGx\n"
873+
"u3EPuTR+LN6lF55WBePbCHccUHUQaXuav18NuDkcJmCiMArK9SKb+h0RqLD6oMI/\n"
874+
"dKD6n8cZXeMBkK+C8U/K0sN2hFHACsu30b9XfdnljgP9v+BP8GhnB0nCB6tNBCPo\n"
875+
"32srOwECgYEAxWh3iBT4lWqL6bZavVbnhmvtif4nHv2t2/hOs/CAq8iLAw0oWGZc\n"
876+
"+JEZTUDMvFRlulr0kcaWra+4fN3OmJnjeuFXZq52lfMgXBIKBmoSaZpIh2aDY1Rd\n"
877+
"RbEse7nQl9hTEPmYspiXLGtnAXW7HuWqVfFFP3ya8rUS3t4d07Hig8ECgYEA6ou6\n"
878+
"OHiBRTbtDqLIv8NghARc/AqwNWgEc9PelCPe5bdCOLBEyFjqKiT2MttnSSUc2Zob\n"
879+
"XhYkHC6zN1Mlq30N0e3Q61YK9LxMdU1vsluXxNq2rfK1Scb1oOlOOtlbV3zA3VRF\n"
880+
"hV3t1nOA9tFmUrwZi0CUMWJE/zbPAyhwWotKyZkCgYEAh0kFicPdbABdrCglXVae\n"
881+
"SnfSjVwYkVuGd5Ze0WADvjYsVkYBHTvhgRNnRJMg+/vWz3Sf4Ps4rgUbqK8Vc20b\n"
882+
"AU5G6H6tlCvPRGm0ZxrwTWDHTcuKRVs+pJE8C/qWoklE/AAhjluWVoGwUMbPGuiH\n"
883+
"6Gf1bgHF6oj/Sq7rv/VLZ8ECgYBeq7ml05YyLuJutuwa4yzQ/MXfghzv4aVyb0F3\n"
884+
"QCdXR6o2IYgR6jnSewrZKlA9aPqFJrwHNR6sNXlnSmt5Fcf/RWO/qgJQGLUv3+rG\n"
885+
"7kuLTNDR05azSdiZc7J89ID3Bkb+z2YkV+6JUiPq/Ei1+nDBEXb/m+/HqALU/nyj\n"
886+
"P3gXeQKBgBusb8Rbd+KgxSA0hwY6aoRTPRt8LNvXdsB9vRcKKHUFQvxUWiUSS+L9\n"
887+
"/Qu1sJbrUquKOHqksV5wCnWnAKyJNJlhHuBToqQTgKXjuNmVdYSe631saiI7PHyC\n"
888+
"eRJ6DxULPxABytJrYCRrNqmXi5TCiqR2mtfalEMOPxz8rUU8dYyx\n"
888889
"-----END RSA PRIVATE KEY-----\n";
889890

890891
/* test server CA signed certificates */
891-
const char srv_signed_cert_pem[] = "-----BEGIN CERTIFICATE-----\n"
892-
"MIIDGzCCAgWgAwIBAgIES0KCvTALBgkqhkiG9w0BAQUwFzEVMBMGA1UEAxMMdGVz\n"
893-
"dF9jYV9jZXJ0MB4XDTEwMDEwNTAwMDcyNVoXDTQ1MDMxMjAwMDcyNVowFzEVMBMG\n"
894-
"A1UEAxMMdGVzdF9jYV9jZXJ0MIIBHzALBgkqhkiG9w0BAQEDggEOADCCAQkCggEA\n"
895-
"vfTdv+3fgvVTKRnP/HVNG81cr8TrUP/iiyuve/THMzvFXhCW+K03KwEku55QvnUn\n"
896-
"dwBfU/ROzLlv+5hotgiDRNFT3HxurmhouySBrJNJv7qWp8ILq4sw32vo0fbMu5BZ\n"
897-
"F49bUXK9L3kW2PdhTtSQPWHEzNrCxO+YgCilKHkY3vQNfdJ020Q5EAAEseD1YtWC\n"
898-
"IpRvJzYlZMpjYB1ubTl24kwrgOKUJYKqM4jmF4DVQp4oOK/6QYGGh1QmHRPAy3CB\n"
899-
"II6sbb+sZT9cAqU6GYQVB35lm4XAgibXV6KgmpVxVQQ69U6xyoOl204xuekZOaG9\n"
900-
"RUPId74Rtmwfi1TLbBzo2wIDAQABo3YwdDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQM\n"
901-
"MAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMHIAAwHQYDVR0OBBYEFOFi4ilKOP1d\n"
902-
"XHlWCMwmVKr7mgy8MB8GA1UdIwQYMBaAFP2olB4s2T/xuoQ5pT2RKojFwZo2MAsG\n"
903-
"CSqGSIb3DQEBBQOCAQEAHVWPxazupbOkG7Did+dY9z2z6RjTzYvurTtEKQgzM2Vz\n"
904-
"GQBA+3pZ3c5mS97fPIs9hZXfnQeelMeZ2XP1a+9vp35bJjZBBhVH+pqxjCgiUflg\n"
905-
"A3Zqy0XwwVCgQLE2HyaU3DLUD/aeIFK5gJaOSdNTXZLv43K8kl4cqDbMeRpVTbkt\n"
906-
"YmG4AyEOYRNKGTqMEJXJoxD5E3rBUNrVI/XyTjYrulxbNPcMWEHKNeeqWpKDYTFo\n"
907-
"Bb01PCthGXiq/4A2RLAFosadzRa8SBpoSjPPfZ0b2w4MJpReHqKbR5+T2t6hzml6\n"
908-
"4ToyOKPDmamiTuN5KzLN3cw7DQlvWMvqSOChPLnA3Q==\n"
909-
"-----END CERTIFICATE-----\n";
892+
const char srv_signed_cert_pem[] =
893+
"-----BEGIN CERTIFICATE-----\n"
894+
"MIICpjCCAZCgAwIBAgIESEPtjjALBgkqhkiG9w0BAQUwADAeFw0wODA2MDIxMjU0\n"
895+
"MzhaFw0wOTA2MDIxMjU0NDZaMAAwggEfMAsGCSqGSIb3DQEBAQOCAQ4AMIIBCQKC\n"
896+
"AQC03TyUvK5HmUAirRp067taIEO4bibh5nqolUoUdo/LeblMQV+qnrv/RNAMTx5X\n"
897+
"fNLZ45/kbM9geF8qY0vsPyQvP4jumzK0LOJYuIwmHaUm9vbXnYieILiwCuTgjaud\n"
898+
"3VkZDoQ9fteIo+6we9UTpVqZpxpbLulBMh/VsvX0cPJ1VFC7rT59o9hAUlFf9jX/\n"
899+
"GmKdYI79MtgVx0OPBjmmSD6kicBBfmfgkO7bIGwlRtsIyMznxbHu6VuoX/eVxrTv\n"
900+
"rmCwgEXLWRZ6ru8MQl5YfqeGXXRVwMeXU961KefbuvmEPccgCxm8FZ1C1cnDHFXh\n"
901+
"siSgAzMBjC/b6KVhNQ4KnUdZAgMBAAGjLzAtMAwGA1UdEwEB/wQCMAAwHQYDVR0O\n"
902+
"BBYEFJcUvpjvE5fF/yzUshkWDpdYiQh/MAsGCSqGSIb3DQEBBQOCAQEARP7eKSB2\n"
903+
"RNd6XjEjK0SrxtoTnxS3nw9sfcS7/qD1+XHdObtDFqGNSjGYFB3Gpx8fpQhCXdoN\n"
904+
"8QUs3/5ZVa5yjZMQewWBgz8kNbnbH40F2y81MHITxxCe1Y+qqHWwVaYLsiOTqj2/\n"
905+
"0S3QjEJ9tvklmg7JX09HC4m5QRYfWBeQLD1u8ZjA1Sf1xJriomFVyRLI2VPO2bNe\n"
906+
"JDMXWuP+8kMC7gEvUnJ7A92Y2yrhu3QI3bjPk8uSpHea19Q77tul1UVBJ5g+zpH3\n"
907+
"OsF5p0MyaVf09GTzcLds5nE/osTdXGUyHJapWReVmPm3Zn6gqYlnzD99z+DPIgIV\n"
908+
"RhZvQx74NQnS6g==\n" "-----END CERTIFICATE-----\n";
910909

911910

912911
/**
@@ -922,14 +921,23 @@ int
922921
main (int argc, char *const *argv)
923922
{
924923
struct MHD_Daemon *d;
925-
unsigned int port;
924+
int use_http2 = 0;
925+
uint16_t port;
926926

927-
if ( (argc != 2) ||
928-
(1 != sscanf (argv[1], "%u", &port)) ||
929-
(UINT16_MAX < port) )
927+
switch (argc)
930928
{
931-
fprintf (stderr,
932-
"%s PORT\n", argv[0]);
929+
case 2:
930+
port = atoi (argv[1]);
931+
break;
932+
case 3:
933+
if (strcmp(argv[1], "-h2") == 0)
934+
{
935+
use_http2 = MHD_USE_HTTP2;
936+
port = atoi (argv[2]);
937+
break;
938+
}
939+
default:
940+
printf ("%s [-h2] PORT\n", argv[0]);
933941
return 1;
934942
}
935943
#ifndef MINGW
@@ -954,7 +962,7 @@ main (int argc, char *const *argv)
954962
MHD_RESPMEM_PERSISTENT);
955963
mark_as_html (internal_error_response);
956964
update_directory ();
957-
d = MHD_start_daemon (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | MHD_USE_TLS,
965+
d = MHD_start_daemon (MHD_USE_AUTO | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | MHD_USE_TLS | use_http2,
958966
port,
959967
NULL, NULL,
960968
&generate_page, NULL,

src/examples/digest_auth_example.c

+17-4
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,23 @@ main (int argc, char *const *argv)
102102
ssize_t len;
103103
size_t off;
104104
struct MHD_Daemon *d;
105+
int use_http2 = 0;
106+
uint16_t port;
105107

106-
if (argc != 2)
108+
switch (argc)
107109
{
108-
printf ("%s PORT\n", argv[0]);
110+
case 2:
111+
port = atoi (argv[1]);
112+
break;
113+
case 3:
114+
if (strcmp(argv[1], "-h2") == 0)
115+
{
116+
use_http2 = MHD_USE_HTTP2;
117+
port = atoi (argv[2]);
118+
break;
119+
}
120+
default:
121+
printf ("%s [-h2] PORT\n", argv[0]);
109122
return 1;
110123
}
111124
fd = open("/dev/urandom", O_RDONLY);
@@ -131,8 +144,8 @@ main (int argc, char *const *argv)
131144
off += len;
132145
}
133146
(void) close(fd);
134-
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG,
135-
atoi (argv[1]),
147+
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | use_http2,
148+
port,
136149
NULL, NULL, &ahc_echo, PAGE,
137150
MHD_OPTION_DIGEST_AUTH_RANDOM, sizeof(rnd), rnd,
138151
MHD_OPTION_NONCE_NC_SIZE, 300,

src/examples/fileserver_example.c

+19-5
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,29 @@ int
116116
main (int argc, char *const *argv)
117117
{
118118
struct MHD_Daemon *d;
119+
int use_http2 = 0;
120+
uint16_t port;
119121

120-
if (argc != 2)
122+
switch (argc)
121123
{
122-
printf ("%s PORT\n", argv[0]);
124+
case 2:
125+
port = atoi (argv[1]);
126+
break;
127+
case 3:
128+
if (strcmp(argv[1], "-h2") == 0)
129+
{
130+
use_http2 = MHD_USE_HTTP2;
131+
port = atoi (argv[2]);
132+
break;
133+
}
134+
default:
135+
printf ("%s [-h2] PORT\n", argv[0]);
123136
return 1;
124137
}
125-
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG,
126-
atoi (argv[1]),
127-
NULL, NULL, &ahc_echo, PAGE, MHD_OPTION_END);
138+
d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD | MHD_USE_ERROR_LOG | use_http2,
139+
port,
140+
NULL, NULL, &ahc_echo, PAGE,
141+
MHD_OPTION_END);
128142
if (d == NULL)
129143
return 1;
130144
(void) getc (stdin);

0 commit comments

Comments
 (0)