static bool test_rawdata_transfer(void) { int ret; char http_req[] = "GET /404.file HTTP/1.0\r\nHost: " SERVER_HOST "\r\n\r\n"; char http_resp_expected[] = "HTTP/1.0 404 Not Found"; char http_resp[1024 * 100]; size_t resp_size = sizeof(http_resp); ASSERT(wait_gsm_status(1), "wait_gsm_status(%d) failed", 1); ret = gsm_activate_context(f_gsm); ASSERT(ret == 0, "gsm_activate_context() = %d", ret); ret = at_cmd(f_gsm, "AT#SKTD=0," SERVER_PORT ",\"" SERVER_HOST "\",0,0"); ASSERT(ret == 0, "at_cmd(AT#SKTD) = %d\n", ret); ret = at_verify_response(f_gsm, "\r\nCONNECT\r\n", 60 * HZ); ASSERT(ret == 0, "at_verify_response(CONNECT) = %d\n", ret); ret = fwrite(http_req, 1, sizeof(http_req) - 1, f_gsm); ASSERT(ret == sizeof(http_req) - 1, "fwrite(HTTP) = %d\n", ret); ret = at_recv(http_resp, &resp_size); ASSERT((ret == 0 || ret == -ETIMEOUT) && resp_size > 100, "at_recv(http_resp) = %d\n", ret); http_resp[resp_size] = '\0'; ret = memcmp(http_resp, http_resp_expected, strlen(http_resp_expected)); ASSERT(ret == 0, "HTTP response mismatch, buf = %s", http_resp); printf("%s: HTTP response from %s OK\n", __func__, SERVER_HOST); return true; }
static int at_cmd(FILE *fp, char *buf, const char *fmt, ...) { va_list ap; va_start(ap, fmt); at_send(fp, fmt, ap); va_end(ap); return at_recv(fp, buf); }