Hi Gavin.
I'm not sure if I understood properly, but, if you are trying to share your
config instance to your request handle function, you can send it
via MHD_start_daemon(), for example, supposing code at
https://github.com/SentryPeer/SentryPeer/blob/99a5b5be48c788d9e5f4177725babc5a97e8f37e/src/http_daemon.c#L127,
it would looks like this:
...
daemon = MHD_start_daemon(MHD_USE_THREAD_PER_CONNECTION,
HTTP_DAEMON_PORT, NULL, NULL, &ahc_get, *your_config_instance*,
MHD_OPTION_END);
...
so you would be able to access it as:
...
static enum MHD_Result ahc_get(void *cls, struct MHD_Connection *connection,
const char *url, const char *method,
const char *version, const char *upload_data,
size_t *upload_data_size, void **ptr)
{
*your_config_instance* = cls;
...
Let me know if this is what you are looking for.
The "ptr" in general is used to share something between requests. I have
been using both in my project
<https://github.com/risoflora/libsagui/blob/master/src/sg_httpsrv.c>.
A good reference:
https://www.gnu.org/software/libmicrohttpd/manual/libmicrohttpd.html#index-MHD_005fstart_005fdaemon
On Fri, Dec 17, 2021 at 1:47 PM Gavin Henry <[email protected]> wrote:
> Hi all,
>
> At
> https://github.com/SentryPeer/SentryPeer/blob/99a5b5be48c788d9e5f4177725babc5a97e8f37e/src/http_daemon.c#L135
>
> I'm looking to pass in sentrypeer_config const *config, and am using
> dh_cls to pick off cls in:
>
>
> https://github.com/SentryPeer/SentryPeer/blob/99a5b5be48c788d9e5f4177725babc5a97e8f37e/src/http_daemon.c#L56
>
> Is that the correct way? It looks like I should be using **ptr at:
>
>
> https://github.com/SentryPeer/SentryPeer/blob/99a5b5be48c788d9e5f4177725babc5a97e8f37e/src/http_daemon.c#L59
>
> But how do I set that in MHD_start_daemon()
>
> Thanks.
>
> --
> Kind Regards,
>
> Gavin Henry.
> https://sentrypeer.org
>
--
Silvio Clécio