+/*
+ * The libcurl API doesn't provide a way to capture the actual SMTP result message returned
+ * by the remote server. This is an ugly way to extract it, by capturing debug data from
+ * the library and filtering on the lines we want.
+ */
+int ctdl_libcurl_smtp_debug_callback(CURL *handle, curl_infotype type, char *data, size_t size, void *userptr)
+{
+ if (type != CURLINFO_HEADER_IN) return 0;
+ if (!userptr) return 0;
+ char *debugbuf = (char *)userptr;
+
+ int len = strlen(debugbuf);
+ if (len + size > SIZ) return 0;
+
+ memcpy(&debugbuf[len], data, size);
+ debugbuf[len+size] = 0;
+ return 0;
+}
+
+