mirror of
https://github.com/ading2210/libcurl.js.git
synced 2025-05-12 05:50:01 -04:00
36 lines
No EOL
1.3 KiB
C
36 lines
No EOL
1.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
#include "curl/curl.h"
|
|
#include "cjson/cJSON.h"
|
|
|
|
int starts_with(const char *a, const char *b) {
|
|
return strncmp(a, b, strlen(b)) == 0;
|
|
}
|
|
|
|
char* get_version() {
|
|
struct curl_version_info_data *version_info = curl_version_info(CURLVERSION_NOW);
|
|
cJSON* version_json = cJSON_CreateObject();
|
|
|
|
cJSON* protocols_array = cJSON_CreateArray();
|
|
const char *const *protocols = version_info->protocols;
|
|
for (; *protocols != NULL; protocols++) {
|
|
cJSON* protocol_item = cJSON_CreateString(*protocols);
|
|
cJSON_AddItemToArray(protocols_array, protocol_item);
|
|
}
|
|
|
|
cJSON* curl_version_item = cJSON_CreateString(version_info->version);
|
|
cJSON* ssl_version_item = cJSON_CreateString(version_info->ssl_version);
|
|
cJSON* brotli_version_item = cJSON_CreateString(version_info->brotli_version);
|
|
cJSON* nghttp2_version_item = cJSON_CreateString(version_info->nghttp2_version);
|
|
|
|
cJSON_AddItemToObject(version_json, "curl", curl_version_item);
|
|
cJSON_AddItemToObject(version_json, "ssl", ssl_version_item);
|
|
cJSON_AddItemToObject(version_json, "brotli", brotli_version_item);
|
|
cJSON_AddItemToObject(version_json, "nghttp2", nghttp2_version_item);
|
|
cJSON_AddItemToObject(version_json, "protocols", protocols_array);
|
|
|
|
char* version_json_str = cJSON_Print(version_json);
|
|
return version_json_str;
|
|
} |