2 /*****************************************************************************
4 * Project ___| | | | _ \| |
6 * | (__| |_| | _ <| |___
7 * \___|\___/|_| \_\_____|
12 #ifdef HAVE_SYS_STAT_H
19 #include <curl/mprintf.h>
23 /* build request url */
24 static char *suburl(const char *base, int i)
26 return curl_maprintf("%s%.4d", base, i);
30 * Test GET_PARAMETER: PUT, HEARTBEAT, and POST
38 struct_stat file_info;
39 char *stream_uri = NULL;
41 struct curl_slist *custom_headers=NULL;
43 if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
44 fprintf(stderr, "curl_global_init() failed\n");
45 return TEST_ERR_MAJOR_BAD;
48 if ((curl = curl_easy_init()) == NULL) {
49 fprintf(stderr, "curl_easy_init() failed\n");
50 curl_global_cleanup();
51 return TEST_ERR_MAJOR_BAD;
55 test_setopt(curl, CURLOPT_HEADERDATA, stdout);
56 test_setopt(curl, CURLOPT_WRITEDATA, stdout);
57 test_setopt(curl, CURLOPT_VERBOSE, 1L);
59 test_setopt(curl, CURLOPT_URL, URL);
62 if((stream_uri = suburl(URL, request++)) == NULL) {
63 res = TEST_ERR_MAJOR_BAD;
66 test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
70 test_setopt(curl, CURLOPT_RTSP_TRANSPORT, "Planes/Trains/Automobiles");
71 test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_SETUP);
72 fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__);
73 res = curl_easy_perform(curl);
74 fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__);
78 if((stream_uri = suburl(URL, request++)) == NULL) {
79 res = TEST_ERR_MAJOR_BAD;
82 test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
85 fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__);
87 /* PUT style GET_PARAMETERS */
88 params = open("log/file572.txt", O_RDONLY);
89 fstat(params, &file_info);
92 paramsf = fopen("log/file572.txt", "rb");
94 fprintf(stderr, "can't open log/file572.txt\n");
95 res = TEST_ERR_MAJOR_BAD;
98 test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_GET_PARAMETER);
100 test_setopt(curl, CURLOPT_READDATA, paramsf);
101 test_setopt(curl, CURLOPT_UPLOAD, 1L);
102 test_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size);
104 fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__);
105 res = curl_easy_perform(curl);
109 test_setopt(curl, CURLOPT_UPLOAD, 0L);
112 fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__);
114 /* Heartbeat GET_PARAMETERS */
115 if((stream_uri = suburl(URL, request++)) == NULL) {
116 res = TEST_ERR_MAJOR_BAD;
119 test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
123 fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__);
124 res = curl_easy_perform(curl);
128 /* POST GET_PARAMETERS */
130 if((stream_uri = suburl(URL, request++)) == NULL) {
131 res = TEST_ERR_MAJOR_BAD;
134 test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
138 test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_GET_PARAMETER);
139 test_setopt(curl, CURLOPT_POSTFIELDS, "packets_received\njitter\n");
141 res = curl_easy_perform(curl);
145 test_setopt(curl, CURLOPT_POSTFIELDS, NULL);
147 /* Make sure we can do a normal request now */
148 if((stream_uri = suburl(URL, request++)) == NULL) {
149 res = TEST_ERR_MAJOR_BAD;
152 test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
156 test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_OPTIONS);
157 res = curl_easy_perform(curl);
168 curl_slist_free_all(custom_headers);
170 curl_easy_cleanup(curl);
171 curl_global_cleanup();