[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-challenger] branch master updated: skeleton for various challenge
From: |
gnunet |
Subject: |
[taler-challenger] branch master updated: skeleton for various challenger endpoints |
Date: |
Fri, 21 Apr 2023 00:23:16 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository challenger.
The following commit(s) were added to refs/heads/master by this push:
new 450ce1d skeleton for various challenger endpoints
450ce1d is described below
commit 450ce1ddef69afdb25050aa389d488884dee6b98
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri Apr 21 00:23:14 2023 +0200
skeleton for various challenger endpoints
---
src/challenger/Makefile.am | 6 +-
src/challenger/challenger-httpd.c | 24 ++++
src/challenger/challenger-httpd_auth.c | 136 +++++++++++++++++++++
...enger-httpd_login.h => challenger-httpd_auth.h} | 16 +--
src/challenger/challenger-httpd_challenge.c | 136 +++++++++++++++++++++
...-httpd_login.h => challenger-httpd_challenge.h} | 16 +--
src/challenger/challenger-httpd_info.c | 36 ++++++
...enger-httpd_login.h => challenger-httpd_info.h} | 16 +--
src/challenger/challenger-httpd_login.h | 2 +-
src/challenger/challenger-httpd_solve.c | 136 +++++++++++++++++++++
...nger-httpd_login.h => challenger-httpd_solve.h} | 12 +-
11 files changed, 504 insertions(+), 32 deletions(-)
diff --git a/src/challenger/Makefile.am b/src/challenger/Makefile.am
index 6a2b86f..43fadb9 100644
--- a/src/challenger/Makefile.am
+++ b/src/challenger/Makefile.am
@@ -26,9 +26,13 @@ challenger_admin_LDADD = \
challenger_httpd_SOURCES = \
challenger-httpd.c challenger-httpd.h \
+ challenger-httpd_auth.c challenger-httpd_auth.h \
+ challenger-httpd_challenge.c challenger-httpd_challenge.h \
challenger-httpd_config.c challenger-httpd_config.h \
+ challenger-httpd_info.c challenger-httpd_info.h \
challenger-httpd_login.c challenger-httpd_login.h \
- challenger-httpd_mhd.c challenger-httpd_mhd.h
+ challenger-httpd_mhd.c challenger-httpd_mhd.h \
+ challenger-httpd_solve.c challenger-httpd_solve.h
challenger_httpd_LDADD = \
$(top_builddir)/src/util/libchallengerutil.la \
$(top_builddir)/src/challengerdb/libchallengerdb.la \
diff --git a/src/challenger/challenger-httpd.c
b/src/challenger/challenger-httpd.c
index 059c99a..8562ba6 100644
--- a/src/challenger/challenger-httpd.c
+++ b/src/challenger/challenger-httpd.c
@@ -24,8 +24,12 @@
#include <gnunet/gnunet_curl_lib.h>
#include "challenger_util.h"
#include "challenger-httpd.h"
+#include "challenger-httpd_auth.h"
+#include "challenger-httpd_challenge.h"
+#include "challenger-httpd_info.h"
#include "challenger-httpd_login.h"
#include "challenger-httpd_mhd.h"
+#include "challenger-httpd_solve.h"
#include "challenger_database_lib.h"
#include "challenger-httpd_config.h"
@@ -142,6 +146,26 @@ url_handler (void *cls,
.method = MHD_HTTP_METHOD_GET,
.handler = &CH_handler_login
},
+ {
+ .url = "/challenge",
+ .method = MHD_HTTP_METHOD_POST,
+ .handler = &CH_handler_challenge
+ },
+ {
+ .url = "/solve",
+ .method = MHD_HTTP_METHOD_POST,
+ .handler = &CH_handler_solve
+ },
+ {
+ .url = "/auth",
+ .method = MHD_HTTP_METHOD_POST,
+ .handler = &CH_handler_auth
+ },
+ {
+ .url = "/info",
+ .method = MHD_HTTP_METHOD_GET,
+ .handler = &CH_handler_info
+ },
{
NULL, NULL, NULL
}
diff --git a/src/challenger/challenger-httpd_auth.c
b/src/challenger/challenger-httpd_auth.c
new file mode 100644
index 0000000..fcc6463
--- /dev/null
+++ b/src/challenger/challenger-httpd_auth.c
@@ -0,0 +1,136 @@
+/*
+ This file is part of Challenger
+ Copyright (C) 2023 Taler Systems SA
+
+ Challenger is free software; you can redistribute it and/or modify it under
the
+ terms of the GNU Affero General Public License as published by the Free
Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ Challenger is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
+
+ You should have received a copy of the GNU Affero General Public License
along with
+ Challenger; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file challenger-httpd_auth.c
+ * @brief functions to handle incoming /auth requests
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "challenger-httpd.h"
+#include <gnunet/gnunet_util_lib.h>
+#include "challenger-httpd_auth.h"
+#include <taler/taler_json_lib.h>
+#include <taler/taler_merchant_service.h>
+#include <taler/taler_signatures.h>
+
+
+/**
+ * Context for a /auth operation.
+ */
+struct AuthContext
+{
+
+ /**
+ * Handle for processing uploaded data.
+ */
+ struct MHD_PostProcessor *pp;
+};
+
+
+/**
+ * Function called to clean up a backup context.
+ *
+ * @param hc a `struct AuthContext`
+ */
+static void
+cleanup_ctx (void *cls)
+{
+ struct AuthContext *bc = cls;
+
+ if (NULL != bc->pp)
+ {
+ GNUNET_break_op (MHD_YES ==
+ MHD_destroy_post_processor (bc->pp));
+ }
+ GNUNET_free (bc);
+}
+
+
+/**
+ * Iterator over key-value pairs where the value may be made available
+ * in increments and/or may not be zero-terminated. Used for
+ * processing POST data.
+ *
+ * @param cls a `struct AuthContext *`
+ * @param kind type of the value, always #MHD_POSTDATA_KIND when called from
MHD
+ * @param key 0-terminated key for the value
+ * @param filename name of the uploaded file, NULL if not known
+ * @param content_type mime-type of the data, NULL if not known
+ * @param transfer_encoding encoding of the data, NULL if not known
+ * @param data pointer to @a size bytes of data at the
+ * specified offset
+ * @param off offset of data in the overall value
+ * @param size number of bytes in @a data available
+ * @return #MHD_YES to continue iterating,
+ * #MHD_NO to abort the iteration
+ */
+static enum MHD_Result
+post_iter (void *cls,
+ enum MHD_ValueKind kind,
+ const char *key,
+ const char *filename,
+ const char *content_type,
+ const char *transfer_encoding,
+ const char *data,
+ uint64_t off,
+ size_t size)
+{
+ struct AuthContext *bc = cls;
+
+ (void) bc;
+ GNUNET_break (0);
+ return MHD_NO;
+}
+
+
+MHD_RESULT
+CH_handler_auth (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size)
+{
+ struct AuthContext *bc = hc->ctx;
+
+ if (NULL == bc)
+ {
+ /* first call, setup internals */
+ bc = GNUNET_new (struct AuthContext);
+ hc->cc = &cleanup_ctx;
+ hc->ctx = bc;
+ bc->pp = MHD_create_post_processor (hc->connection,
+ 1024,
+ &post_iter,
+ bc);
+ /* FIXME: check content-length is low-enough */
+ return MHD_YES;
+ }
+ /* handle upload */
+ if (0 != *upload_data_size)
+ {
+ enum MHD_Result res;
+
+ res = MHD_post_process (bc->pp,
+ upload_data,
+ *upload_data_size);
+ *upload_data_size = 0;
+ if (MHD_YES == res)
+ return MHD_YES;
+ /* FIXME: return more specific error if possible... */
+ return MHD_NO;
+ }
+
+ /* FIXME: generate proper response */
+ return MHD_NO;
+}
diff --git a/src/challenger/challenger-httpd_login.h
b/src/challenger/challenger-httpd_auth.h
similarity index 74%
copy from src/challenger/challenger-httpd_login.h
copy to src/challenger/challenger-httpd_auth.h
index 6201bc7..4a7710a 100644
--- a/src/challenger/challenger-httpd_login.h
+++ b/src/challenger/challenger-httpd_auth.h
@@ -14,18 +14,18 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
- * @file challenger-httpd_policy.h
- * @brief functions to handle incoming requests on /login
+ * @file authr-httpd_auth.h
+ * @brief functions to handle incoming requests on /auth
* @author Christian Grothoff
*/
-#ifndef CHALLENGER_HTTPD_LOGIN_H
-#define CHALLENGER_HTTPD_LOGIN_H
+#ifndef AUTHR_HTTPD_AUTH_H
+#define AUTHR_HTTPD_AUTH_H
#include <microhttpd.h>
/**
- * Handle request on @a connection for /login.
+ * Handle a client POSTing a /auth request
*
* @param hc context of the connection
* @param upload_data upload data, if any
@@ -33,9 +33,9 @@
* @return MHD result code
*/
MHD_RESULT
-CH_handler_login (struct CH_HandlerContext *hc,
- const char *upload_data,
- size_t *upload_data_size);
+CH_handler_auth (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size);
#endif
diff --git a/src/challenger/challenger-httpd_challenge.c
b/src/challenger/challenger-httpd_challenge.c
new file mode 100644
index 0000000..63aeeda
--- /dev/null
+++ b/src/challenger/challenger-httpd_challenge.c
@@ -0,0 +1,136 @@
+/*
+ This file is part of Challenger
+ Copyright (C) 2023 Taler Systems SA
+
+ Challenger is free software; you can redistribute it and/or modify it under
the
+ terms of the GNU Affero General Public License as published by the Free
Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ Challenger is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
+
+ You should have received a copy of the GNU Affero General Public License
along with
+ Challenger; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file challenger-httpd_challenge.c
+ * @brief functions to handle incoming /challenge requests
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "challenger-httpd.h"
+#include <gnunet/gnunet_util_lib.h>
+#include "challenger-httpd_challenge.h"
+#include <taler/taler_json_lib.h>
+#include <taler/taler_merchant_service.h>
+#include <taler/taler_signatures.h>
+
+
+/**
+ * Context for a /challenge operation.
+ */
+struct ChallengeContext
+{
+
+ /**
+ * Handle for processing uploaded data.
+ */
+ struct MHD_PostProcessor *pp;
+};
+
+
+/**
+ * Function called to clean up a backup context.
+ *
+ * @param hc a `struct ChallengeContext`
+ */
+static void
+cleanup_ctx (void *cls)
+{
+ struct ChallengeContext *bc = cls;
+
+ if (NULL != bc->pp)
+ {
+ GNUNET_break_op (MHD_YES ==
+ MHD_destroy_post_processor (bc->pp));
+ }
+ GNUNET_free (bc);
+}
+
+
+/**
+ * Iterator over key-value pairs where the value may be made available
+ * in increments and/or may not be zero-terminated. Used for
+ * processing POST data.
+ *
+ * @param cls a `struct ChallengeContext *`
+ * @param kind type of the value, always #MHD_POSTDATA_KIND when called from
MHD
+ * @param key 0-terminated key for the value
+ * @param filename name of the uploaded file, NULL if not known
+ * @param content_type mime-type of the data, NULL if not known
+ * @param transfer_encoding encoding of the data, NULL if not known
+ * @param data pointer to @a size bytes of data at the
+ * specified offset
+ * @param off offset of data in the overall value
+ * @param size number of bytes in @a data available
+ * @return #MHD_YES to continue iterating,
+ * #MHD_NO to abort the iteration
+ */
+static enum MHD_Result
+post_iter (void *cls,
+ enum MHD_ValueKind kind,
+ const char *key,
+ const char *filename,
+ const char *content_type,
+ const char *transfer_encoding,
+ const char *data,
+ uint64_t off,
+ size_t size)
+{
+ struct ChallengeContext *bc = cls;
+
+ (void) bc;
+ GNUNET_break (0);
+ return MHD_NO;
+}
+
+
+MHD_RESULT
+CH_handler_challenge (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size)
+{
+ struct ChallengeContext *bc = hc->ctx;
+
+ if (NULL == bc)
+ {
+ /* first call, setup internals */
+ bc = GNUNET_new (struct ChallengeContext);
+ hc->cc = &cleanup_ctx;
+ hc->ctx = bc;
+ bc->pp = MHD_create_post_processor (hc->connection,
+ 1024,
+ &post_iter,
+ bc);
+ /* FIXME: check content-length is low-enough */
+ return MHD_YES;
+ }
+ /* handle upload */
+ if (0 != *upload_data_size)
+ {
+ enum MHD_Result res;
+
+ res = MHD_post_process (bc->pp,
+ upload_data,
+ *upload_data_size);
+ *upload_data_size = 0;
+ if (MHD_YES == res)
+ return MHD_YES;
+ /* FIXME: return more specific error if possible... */
+ return MHD_NO;
+ }
+
+ /* FIXME: generate proper response */
+ return MHD_NO;
+}
diff --git a/src/challenger/challenger-httpd_login.h
b/src/challenger/challenger-httpd_challenge.h
similarity index 72%
copy from src/challenger/challenger-httpd_login.h
copy to src/challenger/challenger-httpd_challenge.h
index 6201bc7..f3f0d7b 100644
--- a/src/challenger/challenger-httpd_login.h
+++ b/src/challenger/challenger-httpd_challenge.h
@@ -14,18 +14,18 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
- * @file challenger-httpd_policy.h
- * @brief functions to handle incoming requests on /login
+ * @file challenger-httpd_challenge.h
+ * @brief functions to handle incoming requests on /challenge
* @author Christian Grothoff
*/
-#ifndef CHALLENGER_HTTPD_LOGIN_H
-#define CHALLENGER_HTTPD_LOGIN_H
+#ifndef CHALLENGER_HTTPD_CHALLENGE_H
+#define CHALLENGER_HTTPD_CHALLENGE_H
#include <microhttpd.h>
/**
- * Handle request on @a connection for /login.
+ * Handle a client POSTing a /challenge request
*
* @param hc context of the connection
* @param upload_data upload data, if any
@@ -33,9 +33,9 @@
* @return MHD result code
*/
MHD_RESULT
-CH_handler_login (struct CH_HandlerContext *hc,
- const char *upload_data,
- size_t *upload_data_size);
+CH_handler_challenge (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size);
#endif
diff --git a/src/challenger/challenger-httpd_info.c
b/src/challenger/challenger-httpd_info.c
new file mode 100644
index 0000000..04a8b47
--- /dev/null
+++ b/src/challenger/challenger-httpd_info.c
@@ -0,0 +1,36 @@
+/*
+ This file is part of Challenger
+ Copyright (C) 2023 Taler Systems SA
+
+ Challenger is free software; you can redistribute it and/or modify it under
the
+ terms of the GNU Affero General Public License as published by the Free
Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ Challenger is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
+
+ You should have received a copy of the GNU Affero General Public License
along with
+ Challenger; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file challenger-httpd_info.c
+ * @brief functions to handle incoming requests for infos
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "challenger-httpd.h"
+#include <gnunet/gnunet_util_lib.h>
+#include "challenger-httpd_info.h"
+
+
+MHD_RESULT
+CH_handler_info (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size)
+{
+ return TALER_MHD_reply_with_error (hc->connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+
TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE,
+ NULL);
+}
diff --git a/src/challenger/challenger-httpd_login.h
b/src/challenger/challenger-httpd_info.h
similarity index 74%
copy from src/challenger/challenger-httpd_login.h
copy to src/challenger/challenger-httpd_info.h
index 6201bc7..606db86 100644
--- a/src/challenger/challenger-httpd_login.h
+++ b/src/challenger/challenger-httpd_info.h
@@ -14,18 +14,18 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
- * @file challenger-httpd_policy.h
- * @brief functions to handle incoming requests on /login
+ * @file challenger-httpd_info.h
+ * @brief functions to handle incoming requests on /info
* @author Christian Grothoff
*/
-#ifndef CHALLENGER_HTTPD_LOGIN_H
-#define CHALLENGER_HTTPD_LOGIN_H
+#ifndef CHALLENGER_HTTPD_INFO_H
+#define CHALLENGER_HTTPD_INFO_H
#include <microhttpd.h>
/**
- * Handle request on @a connection for /login.
+ * Handle request on @a connection for /info.
*
* @param hc context of the connection
* @param upload_data upload data, if any
@@ -33,9 +33,9 @@
* @return MHD result code
*/
MHD_RESULT
-CH_handler_login (struct CH_HandlerContext *hc,
- const char *upload_data,
- size_t *upload_data_size);
+CH_handler_info (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size);
#endif
diff --git a/src/challenger/challenger-httpd_login.h
b/src/challenger/challenger-httpd_login.h
index 6201bc7..37e0131 100644
--- a/src/challenger/challenger-httpd_login.h
+++ b/src/challenger/challenger-httpd_login.h
@@ -14,7 +14,7 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
- * @file challenger-httpd_policy.h
+ * @file challenger-httpd_login.h
* @brief functions to handle incoming requests on /login
* @author Christian Grothoff
*/
diff --git a/src/challenger/challenger-httpd_solve.c
b/src/challenger/challenger-httpd_solve.c
new file mode 100644
index 0000000..05e3063
--- /dev/null
+++ b/src/challenger/challenger-httpd_solve.c
@@ -0,0 +1,136 @@
+/*
+ This file is part of Challenger
+ Copyright (C) 2023 Taler Systems SA
+
+ Challenger is free software; you can redistribute it and/or modify it under
the
+ terms of the GNU Affero General Public License as published by the Free
Software
+ Foundation; either version 3, or (at your option) any later version.
+
+ Challenger is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
details.
+
+ You should have received a copy of the GNU Affero General Public License
along with
+ Challenger; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+*/
+/**
+ * @file challenger-httpd_solve.c
+ * @brief functions to handle incoming /solve requests
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "challenger-httpd.h"
+#include <gnunet/gnunet_util_lib.h>
+#include "challenger-httpd_solve.h"
+#include <taler/taler_json_lib.h>
+#include <taler/taler_merchant_service.h>
+#include <taler/taler_signatures.h>
+
+
+/**
+ * Context for a /solve operation.
+ */
+struct SolveContext
+{
+
+ /**
+ * Handle for processing uploaded data.
+ */
+ struct MHD_PostProcessor *pp;
+};
+
+
+/**
+ * Function called to clean up a backup context.
+ *
+ * @param hc a `struct SolveContext`
+ */
+static void
+cleanup_ctx (void *cls)
+{
+ struct SolveContext *bc = cls;
+
+ if (NULL != bc->pp)
+ {
+ GNUNET_break_op (MHD_YES ==
+ MHD_destroy_post_processor (bc->pp));
+ }
+ GNUNET_free (bc);
+}
+
+
+/**
+ * Iterator over key-value pairs where the value may be made available
+ * in increments and/or may not be zero-terminated. Used for
+ * processing POST data.
+ *
+ * @param cls a `struct SolveContext *`
+ * @param kind type of the value, always #MHD_POSTDATA_KIND when called from
MHD
+ * @param key 0-terminated key for the value
+ * @param filename name of the uploaded file, NULL if not known
+ * @param content_type mime-type of the data, NULL if not known
+ * @param transfer_encoding encoding of the data, NULL if not known
+ * @param data pointer to @a size bytes of data at the
+ * specified offset
+ * @param off offset of data in the overall value
+ * @param size number of bytes in @a data available
+ * @return #MHD_YES to continue iterating,
+ * #MHD_NO to abort the iteration
+ */
+static enum MHD_Result
+post_iter (void *cls,
+ enum MHD_ValueKind kind,
+ const char *key,
+ const char *filename,
+ const char *content_type,
+ const char *transfer_encoding,
+ const char *data,
+ uint64_t off,
+ size_t size)
+{
+ struct SolveContext *bc = cls;
+
+ (void) bc;
+ GNUNET_break (0);
+ return MHD_NO;
+}
+
+
+MHD_RESULT
+CH_handler_solve (struct CH_HandlerContext *hc,
+ const char *upload_data,
+ size_t *upload_data_size)
+{
+ struct SolveContext *bc = hc->ctx;
+
+ if (NULL == bc)
+ {
+ /* first call, setup internals */
+ bc = GNUNET_new (struct SolveContext);
+ hc->cc = &cleanup_ctx;
+ hc->ctx = bc;
+ bc->pp = MHD_create_post_processor (hc->connection,
+ 1024,
+ &post_iter,
+ bc);
+ /* FIXME: check content-length is low-enough */
+ return MHD_YES;
+ }
+ /* handle upload */
+ if (0 != *upload_data_size)
+ {
+ enum MHD_Result res;
+
+ res = MHD_post_process (bc->pp,
+ upload_data,
+ *upload_data_size);
+ *upload_data_size = 0;
+ if (MHD_YES == res)
+ return MHD_YES;
+ /* FIXME: return more specific error if possible... */
+ return MHD_NO;
+ }
+
+ /* FIXME: generate proper response */
+ return MHD_NO;
+}
diff --git a/src/challenger/challenger-httpd_login.h
b/src/challenger/challenger-httpd_solve.h
similarity index 81%
copy from src/challenger/challenger-httpd_login.h
copy to src/challenger/challenger-httpd_solve.h
index 6201bc7..83111c8 100644
--- a/src/challenger/challenger-httpd_login.h
+++ b/src/challenger/challenger-httpd_solve.h
@@ -14,18 +14,18 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
/**
- * @file challenger-httpd_policy.h
- * @brief functions to handle incoming requests on /login
+ * @file challenger-httpd_solve.h
+ * @brief functions to handle incoming requests on /solve
* @author Christian Grothoff
*/
-#ifndef CHALLENGER_HTTPD_LOGIN_H
-#define CHALLENGER_HTTPD_LOGIN_H
+#ifndef CHALLENGER_HTTPD_SOLVE_H
+#define CHALLENGER_HTTPD_SOLVE_H
#include <microhttpd.h>
/**
- * Handle request on @a connection for /login.
+ * Handle a client POSTing a /solve request
*
* @param hc context of the connection
* @param upload_data upload data, if any
@@ -33,7 +33,7 @@
* @return MHD result code
*/
MHD_RESULT
-CH_handler_login (struct CH_HandlerContext *hc,
+CH_handler_solve (struct CH_HandlerContext *hc,
const char *upload_data,
size_t *upload_data_size);
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-challenger] branch master updated: skeleton for various challenger endpoints,
gnunet <=