Blame src/examples/timeout.c

Packit 875988
/*
Packit 875988
     This file is part of libmicrohttpd
Packit 875988
     Copyright (C) 2016, 2017 Christian Grothoff,
Packit 875988
     Silvio Clecio (silvioprog), Karlson2k (Evgeny Grin)
Packit 875988
Packit 875988
     This library is free software; you can redistribute it and/or
Packit 875988
     modify it under the terms of the GNU Lesser General Public
Packit 875988
     License as published by the Free Software Foundation; either
Packit 875988
     version 2.1 of the License, or (at your option) any later version.
Packit 875988
Packit 875988
     This library is distributed in the hope that it will be useful,
Packit 875988
     but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 875988
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 875988
     Lesser General Public License for more details.
Packit 875988
Packit 875988
     You should have received a copy of the GNU Lesser General Public
Packit 875988
     License along with this library; if not, write to the Free Software
Packit 875988
     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
Packit 875988
*/
Packit 875988
/**
Packit 875988
 * @file timeout.c
Packit 875988
 * @brief example for how to use libmicrohttpd request timeout
Packit 875988
 * @author Christian Grothoff, Silvio Clecio (silvioprog), Karlson2k (Evgeny Grin)
Packit 875988
 */
Packit 875988
Packit 875988
#include <microhttpd.h>
Packit 875988
#include <stdio.h>
Packit 875988
#include <string.h>
Packit 875988
Packit 875988
#define PORT 8080
Packit 875988
Packit 875988
static int
Packit 875988
answer_to_connection(void *cls,
Packit 875988
                     struct MHD_Connection *connection,
Packit 875988
                     const char *url,
Packit 875988
                     const char *method,
Packit 875988
                     const char *version,
Packit 875988
                     const char *upload_data,
Packit 875988
                     size_t *upload_data_size,
Packit 875988
                     void **con_cls)
Packit 875988
{
Packit 875988
  const char *page = "<html><body>Hello timeout!</body></html>";
Packit 875988
  struct MHD_Response *response;
Packit 875988
  int ret;
Packit 875988
  (void)cls;               /* Unused. Silent compiler warning. */
Packit 875988
  (void)url;               /* Unused. Silent compiler warning. */
Packit 875988
  (void)version;           /* Unused. Silent compiler warning. */
Packit 875988
  (void)method;            /* Unused. Silent compiler warning. */
Packit 875988
  (void)upload_data;       /* Unused. Silent compiler warning. */
Packit 875988
  (void)upload_data_size;  /* Unused. Silent compiler warning. */
Packit 875988
  (void)con_cls;           /* Unused. Silent compiler warning. */
Packit 875988
Packit 875988
  response = MHD_create_response_from_buffer (strlen(page),
Packit 875988
                                              (void *) page,
Packit 875988
                                              MHD_RESPMEM_PERSISTENT);
Packit 875988
  MHD_add_response_header (response,
Packit 875988
                           MHD_HTTP_HEADER_CONTENT_TYPE,
Packit 875988
                           "text/html");
Packit 875988
  ret = MHD_queue_response (connection,
Packit 875988
                            MHD_HTTP_OK,
Packit 875988
                            response);
Packit 875988
  MHD_destroy_response(response);
Packit 875988
  return ret;
Packit 875988
}
Packit 875988
Packit 875988
Packit 875988
int
Packit 875988
main (void)
Packit 875988
{
Packit 875988
  struct MHD_Daemon *daemon;
Packit 875988
Packit 875988
  daemon = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_INTERNAL_POLLING_THREAD,
Packit 875988
                             PORT,
Packit 875988
                             NULL, NULL,
Packit 875988
                             &answer_to_connection, NULL,
Packit 875988
                             /* 3 seconds */
Packit 875988
                             MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 3,
Packit 875988
                             MHD_OPTION_END);
Packit 875988
  if (NULL == daemon)
Packit 875988
    return 1;
Packit 875988
  getchar();
Packit 875988
  MHD_stop_daemon(daemon);
Packit 875988
  return 0;
Packit 875988
}