#ifdef __EMSCRIPTEN__ #include #include #include #else #include #endif #ifdef __EMSCRIPTEN__ static void cleanup(struct emscripten_fetch_t *fetch) { free(fetch->userData); emscripten_fetch_close(fetch); } #endif void sign_up(const char *brand, const char *certificate) { #ifdef __EMSCRIPTEN__ emscripten_fetch_attr_t attr; emscripten_fetch_attr_init(&attr); attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; strcpy(attr.requestMethod, "POST"); char *data = malloc(strlen(brand) + 1); strcpy(data, brand); attr.requestData = data; attr.requestDataSize = strlen(data) + 1; attr.userData = data; attr.onsuccess = cleanup; attr.onerror = cleanup; emscripten_fetch(&attr, "register"); (void)certificate; #else curl_global_init(CURL_GLOBAL_SSL); CURL *curl = curl_easy_init(); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); if (certificate) curl_easy_setopt(curl, CURLOPT_CAINFO, certificate); #ifdef DEBUG curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); #endif curl_easy_setopt(curl, CURLOPT_POSTFIELDS, brand); curl_easy_setopt(curl, CURLOPT_URL, SAMPLEURL"/register"); curl_easy_perform(curl); curl_easy_cleanup(curl); curl_global_cleanup(); #endif }