1cb93a386Sopenharmony_ci/* Feel free to use this example code in any way 2cb93a386Sopenharmony_ci you see fit (Public Domain) */ 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_ci#include <sys/types.h> 5cb93a386Sopenharmony_ci#ifndef _WIN32 6cb93a386Sopenharmony_ci#include <sys/select.h> 7cb93a386Sopenharmony_ci#include <sys/socket.h> 8cb93a386Sopenharmony_ci#else 9cb93a386Sopenharmony_ci#include <winsock2.h> 10cb93a386Sopenharmony_ci#endif 11cb93a386Sopenharmony_ci#include <microhttpd.h> 12cb93a386Sopenharmony_ci#include <stdio.h> 13cb93a386Sopenharmony_ci 14cb93a386Sopenharmony_ci#define PORT 8888 15cb93a386Sopenharmony_ci 16cb93a386Sopenharmony_ci 17cb93a386Sopenharmony_cistatic int 18cb93a386Sopenharmony_ciprint_out_key (void *cls, enum MHD_ValueKind kind, const char *key, 19cb93a386Sopenharmony_ci const char *value) 20cb93a386Sopenharmony_ci{ 21cb93a386Sopenharmony_ci printf ("%s: %s\n", key, value); 22cb93a386Sopenharmony_ci return MHD_YES; 23cb93a386Sopenharmony_ci} 24cb93a386Sopenharmony_ci 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_cistatic int 27cb93a386Sopenharmony_cianswer_to_connection (void *cls, struct MHD_Connection *connection, 28cb93a386Sopenharmony_ci const char *url, const char *method, 29cb93a386Sopenharmony_ci const char *version, const char *upload_data, 30cb93a386Sopenharmony_ci size_t *upload_data_size, void **con_cls) 31cb93a386Sopenharmony_ci{ 32cb93a386Sopenharmony_ci printf ("New %s request for %s using version %s\n", method, url, version); 33cb93a386Sopenharmony_ci 34cb93a386Sopenharmony_ci MHD_get_connection_values (connection, MHD_HEADER_KIND, print_out_key, 35cb93a386Sopenharmony_ci NULL); 36cb93a386Sopenharmony_ci 37cb93a386Sopenharmony_ci return MHD_NO; 38cb93a386Sopenharmony_ci} 39cb93a386Sopenharmony_ci 40cb93a386Sopenharmony_ci 41cb93a386Sopenharmony_ciint 42cb93a386Sopenharmony_cimain () 43cb93a386Sopenharmony_ci{ 44cb93a386Sopenharmony_ci struct MHD_Daemon *daemon; 45cb93a386Sopenharmony_ci 46cb93a386Sopenharmony_ci daemon = MHD_start_daemon (MHD_USE_SELECT_INTERNALLY, PORT, NULL, NULL, 47cb93a386Sopenharmony_ci &answer_to_connection, NULL, MHD_OPTION_END); 48cb93a386Sopenharmony_ci if (NULL == daemon) 49cb93a386Sopenharmony_ci return 1; 50cb93a386Sopenharmony_ci 51cb93a386Sopenharmony_ci (void) getchar (); 52cb93a386Sopenharmony_ci 53cb93a386Sopenharmony_ci MHD_stop_daemon (daemon); 54cb93a386Sopenharmony_ci return 0; 55cb93a386Sopenharmony_ci} 56