Files
c/kubernetes/api/WellKnownAPI.c
2021-09-15 14:14:46 +08:00

72 lines
1.9 KiB
C

#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "WellKnownAPI.h"
#define MAX_NUMBER_LENGTH 16
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do {\
char dst[256];\
snprintf(dst, 256, "%ld", (long int)(src));\
}while(0)
// get service account issuer OpenID configuration, also known as the 'OIDC discovery doc'
//
char*
WellKnownAPI_getServiceAccountIssuerOpenIDConfiguration(apiClient_t *apiClient)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
list_t *localVarHeaderType = list_create();
list_t *localVarContentType = NULL;
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/.well-known/openid-configuration/")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/.well-known/openid-configuration/");
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
localVarHeaderParameters,
localVarFormParameters,
localVarHeaderType,
localVarContentType,
localVarBodyParameters,
"GET");
if (apiClient->response_code == 200) {
printf("%s\n","OK");
}
if (apiClient->response_code == 401) {
printf("%s\n","Unauthorized");
}
//primitive return type simple
char* elementToReturn = strdup((char*)apiClient->dataReceived);
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
apiClient->dataReceived = NULL;
apiClient->dataReceivedLen = 0;
}
list_free(localVarHeaderType);
free(localVarPath);
return elementToReturn;
end:
free(localVarPath);
return NULL;
}