[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libmicrohttpd] feature request: get connection_timeout value from M
From: |
Evgeny Grin |
Subject: |
Re: [libmicrohttpd] feature request: get connection_timeout value from MHD_Connection structure |
Date: |
Wed, 15 Mar 2017 22:09:43 +0300 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
We already have specialized function MHD_get_connection_info().
Now it can return timeout value. ;)
--
Best Wishes,
Evgeny Grin
On 15.03.2017 17:06, Vitaliy T wrote:
> On 15 March 2017 at 13:35, Vitaliy T <address@hidden> wrote:
>> I suppose we may close the question in the next way. I will implement
>> everything as I want, e.g. will made local patch to MHD and will test
>> within some kind amount of time (weeks, months). And in the case if I
>> would like see this feature in MHD-core I will send a patch.
>
> Sorry, I have decided that's better make the patch right now than skip
> it to better times.
> The patch is below. It is a quite simple.
>
> Do I have to create a test for it? If so, just tell me how you cooking tests.
> Do I have to expand notes?
> Do I have to change/fix something?
>
> If nothing is required, let's close the question. I can easily to
> forgot about it, I have to code billions lines :)
>
>
> diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
> index c1461988..a91a1885 100644
> --- a/src/include/microhttpd.h
> +++ b/src/include/microhttpd.h
> @@ -3140,6 +3140,21 @@ MHD_set_connection_option (struct
> MHD_Connection *connection,
>
>
> /**
> + * Get a custom option for the given connection.
> + *
> + * @param connection what connection to get information about
> + * @param option option to get
> + * @param ... arguments to the option, depending on the option type
> + * @return #MHD_YES on success, #MHD_NO if setting the option failed
> + * @ingroup specialized
> + */
> +_MHD_EXTERN int
> +MHD_get_connection_option (struct MHD_Connection *connection,
> + enum MHD_CONNECTION_OPTION option,
> + ...);
> +
> +
> +/**
> * Information about an MHD daemon.
> */
> union MHD_DaemonInfo
> diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
> index f192a1bb..515a69d6 100644
> --- a/src/microhttpd/connection.c
> +++ b/src/microhttpd/connection.c
> @@ -3400,6 +3400,47 @@ MHD_set_connection_option (struct
> MHD_Connection *connection,
>
>
> /**
> + * Get a custom option for the given connection.
> + *
> + * @param connection what connection to get information about
> + * @param option option to get
> + * @param ... arguments to the option, depending on the option type
> + * @return #MHD_YES on success, #MHD_NO if setting the option failed
> + * @ingroup specialized
> + */
> +int
> +MHD_get_connection_option (struct MHD_Connection *connection,
> + enum MHD_CONNECTION_OPTION option,
> + ...)
> +{
> + va_list ap;
> + struct MHD_Daemon *daemon;
> + unsigned int *timeout_ptr;
> +
> + daemon = connection->daemon;
> + switch (option)
> + {
> + case MHD_CONNECTION_OPTION_TIMEOUT:
> + va_start (ap, option);
> + timeout_ptr = va_arg (ap, unsigned int *);
> + if (timeout_ptr == NULL) {
> + va_end (ap);
> + return MHD_NO;
> + }
> + if (connection->connection_timeout != daemon->connection_timeout)
> + /* timeout was set by a user */
> + *timeout_ptr = connection->connection_timeout;
> + else
> + *timeout_ptr = daemon->connection_timeout;
> + va_end (ap);
> + return MHD_YES;
> + default:
> + return MHD_NO;
> + }
> +}
> +
> +
> +/**
> * Queue a response to be transmitted to the client (as soon as
> * possible but after #MHD_AccessHandlerCallback returns).
> *
>
>