add function that logically belongs to libgnunetcurl instead of in multiple Taler...
authorChristian Grothoff <christian@grothoff.org>
Sun, 15 Mar 2020 21:06:28 +0000 (22:06 +0100)
committerChristian Grothoff <christian@grothoff.org>
Sun, 15 Mar 2020 21:06:28 +0000 (22:06 +0100)
src/curl/curl.c
src/include/gnunet_curl_lib.h

index 01c7c5fca1bb6b64897b99a7b4d17529116ec55c..da486ecc13c797680c631f873421dd06edc078e7 100644 (file)
@@ -189,7 +189,8 @@ GNUNET_CURL_init (GNUNET_CURL_RescheduleCallback cb, void *cb_cls)
 
   if (curl_fail)
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Curl was not initialised properly\n");
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Curl was not initialised properly\n");
     return NULL;
   }
   if (NULL == (multi = curl_multi_init ()))
@@ -227,6 +228,27 @@ GNUNET_CURL_enable_async_scope_header (struct GNUNET_CURL_Context *ctx,
 }
 
 
+/**
+ * Return #GNUNET_YES if given a valid scope ID and
+ * #GNUNET_NO otherwise.  See #setup_job_headers,
+ * logic related to
+ * #GNUNET_CURL_enable_async_scope_header() for the
+ * code that generates such a @a scope_id.
+ *
+ * @returns #GNUNET_YES iff given a valid scope ID
+ */
+int
+GNUNET_CURL_is_valid_scope_id (const char *scope_id)
+{
+  if (strlen (scope_id) >= 64)
+    return GNUNET_NO;
+  for (size_t i = 0; i < strlen (scope_id); i++)
+    if (! (isalnum (scope_id[i]) || (scope_id[i] == '-')))
+      return GNUNET_NO;
+  return GNUNET_YES;
+}
+
+
 /**
  * Callback used when downloading the reply to an HTTP request.
  * Just appends all of the data to the `buf` in the
index 8e981e91e7630c6a6fdf2321d34bf55075fa8398..875cfa3bd2952cefd7aced0d4ecd57c8b6989c14 100644 (file)
@@ -360,8 +360,21 @@ GNUNET_CURL_gnunet_scheduler_reschedule (void *cls);
  * @param header_name name of the header to send.
  */
 void
-GNUNET_CURL_enable_async_scope_header (struct GNUNET_CURL_Context *ctx, const
-                                       char *header_name);
+GNUNET_CURL_enable_async_scope_header (struct GNUNET_CURL_Context *ctx,
+                                       const char *header_name);
+
+
+/**
+ * Return #GNUNET_YES if given a valid scope ID and
+ * #GNUNET_NO otherwise.  See
+ * #GNUNET_CURL_enable_async_scope_header() for the
+ * code that generates such a @a scope_id in an HTTP
+ * header.
+ *
+ * @returns #GNUNET_YES iff given a valid scope ID
+ */
+int
+GNUNET_CURL_is_valid_scope_id (const char *scope_id);
 
 
 #endif