]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
altsvc: move logic from setopt into Curl_altsvc_ctrl()
authorDaniel Stenberg <daniel@haxx.se>
Sat, 10 Jan 2026 22:17:58 +0000 (23:17 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 11 Jan 2026 09:44:43 +0000 (10:44 +0100)
To keep it all in one place.

Closes #20247

lib/altsvc.c
lib/altsvc.h
lib/setopt.c

index 7006333b0700f54f1e11ba82fee761b1810ff0b2..108f5c09158a8220a1cb0f74049da923bc463030 100644 (file)
@@ -310,10 +310,18 @@ CURLcode Curl_altsvc_load(struct altsvcinfo *asi, const char *file)
 /*
  * Curl_altsvc_ctrl() passes on the external bitmask.
  */
-CURLcode Curl_altsvc_ctrl(struct altsvcinfo *asi, const long ctrl)
+CURLcode Curl_altsvc_ctrl(struct Curl_easy *data, const long ctrl)
 {
-  DEBUGASSERT(asi);
-  asi->flags = ctrl;
+  DEBUGASSERT(data);
+  if(!ctrl)
+    return CURLE_BAD_FUNCTION_ARGUMENT;
+
+  if(!data->asi) {
+    data->asi = Curl_altsvc_init();
+    if(!data->asi)
+      return CURLE_OUT_OF_MEMORY;
+  }
+  data->asi->flags = ctrl;
   return CURLE_OK;
 }
 
index b82eaa8f717d9d98ca348de5b3529c9e80935a3a..85da8cceb91ce31062a51388be33bb31cb595ea6 100644 (file)
@@ -54,7 +54,7 @@ struct altsvcinfo *Curl_altsvc_init(void);
 CURLcode Curl_altsvc_load(struct altsvcinfo *asi, const char *file);
 CURLcode Curl_altsvc_save(struct Curl_easy *data,
                           struct altsvcinfo *asi, const char *file);
-CURLcode Curl_altsvc_ctrl(struct altsvcinfo *asi, const long ctrl);
+CURLcode Curl_altsvc_ctrl(struct Curl_easy *data, const long ctrl);
 void Curl_altsvc_cleanup(struct altsvcinfo **altsvc);
 CURLcode Curl_altsvc_parse(struct Curl_easy *data,
                            struct altsvcinfo *altsvc, const char *value,
index 402a1f6d9ad4b9600731c741d2c36212d66f3b26..62e19a05622886b6db7ab35965daba592459c63a 100644 (file)
@@ -1261,16 +1261,7 @@ static CURLcode setopt_long(struct Curl_easy *data, CURLoption option,
 #endif /* !CURL_DISABLE_HSTS */
 #ifndef CURL_DISABLE_ALTSVC
   case CURLOPT_ALTSVC_CTRL:
-    if(!arg) {
-      DEBUGF(infof(data, "bad CURLOPT_ALTSVC_CTRL input"));
-      return CURLE_BAD_FUNCTION_ARGUMENT;
-    }
-    if(!data->asi) {
-      data->asi = Curl_altsvc_init();
-      if(!data->asi)
-        return CURLE_OUT_OF_MEMORY;
-    }
-    return Curl_altsvc_ctrl(data->asi, arg);
+    return Curl_altsvc_ctrl(data, arg);
 #endif /* !CURL_DISABLE_ALTSVC */
 #ifndef CURL_DISABLE_WEBSOCKETS
   case CURLOPT_WS_OPTIONS: