Revert "Update to 7.44.0"
[platform/upstream/curl.git] / tests / libtest / lib568.c
index c9406b0..4b15821 100644 (file)
@@ -1,13 +1,24 @@
-/*****************************************************************************
+/***************************************************************************
  *                                  _   _ ____  _
  *  Project                     ___| | | |  _ \| |
  *                             / __| | | | |_) | |
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * $Id$
- */
-
+ * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
 #include "test.h"
 
 #ifdef HAVE_SYS_STAT_H
@@ -32,12 +43,12 @@ static char *suburl(const char *base, int i)
  */
 int test(char *URL)
 {
-  CURLcode res;
+  int res;
   CURL *curl;
   int sdp;
-  FILE *sdpf;
+  FILE *sdpf = NULL;
   struct_stat file_info;
-  char *stream_uri;
+  char *stream_uri = NULL;
   int request=1;
   struct curl_slist *custom_headers=NULL;
 
@@ -52,14 +63,18 @@ int test(char *URL)
     return TEST_ERR_MAJOR_BAD;
   }
 
-  curl_easy_setopt(curl, CURLOPT_HEADERDATA, stdout);
-  curl_easy_setopt(curl, CURLOPT_WRITEDATA, stdout);
+  test_setopt(curl, CURLOPT_HEADERDATA, stdout);
+  test_setopt(curl, CURLOPT_WRITEDATA, stdout);
 
-  curl_easy_setopt(curl, CURLOPT_URL, URL);
+  test_setopt(curl, CURLOPT_URL, URL);
 
-  stream_uri = suburl(URL, request++);
-  curl_easy_setopt(curl, CURLOPT_RTSP_STREAM_URI,stream_uri);
+  if((stream_uri = suburl(URL, request++)) == NULL) {
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
   free(stream_uri);
+  stream_uri = NULL;
 
   sdp = open("log/file568.txt", O_RDONLY);
   fstat(sdp, &file_info);
@@ -68,65 +83,89 @@ int test(char *URL)
   sdpf = fopen("log/file568.txt", "rb");
   if(sdpf == NULL) {
     fprintf(stderr, "can't open log/file568.txt\n");
-    return TEST_ERR_MAJOR_BAD;
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
   }
-  curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_ANNOUNCE);
+  test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_ANNOUNCE);
 
-  curl_easy_setopt(curl, CURLOPT_READDATA, sdpf);
-  curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
-  curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size);
+  test_setopt(curl, CURLOPT_READDATA, sdpf);
+  test_setopt(curl, CURLOPT_UPLOAD, 1L);
+  test_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size);
 
   /* Do the ANNOUNCE */
   res = curl_easy_perform(curl);
-  if(res) {
-    fclose(sdpf);
-    return res;
-  }
+  if(res)
+    goto test_cleanup;
 
-  curl_easy_setopt(curl, CURLOPT_UPLOAD, 0L);
+  test_setopt(curl, CURLOPT_UPLOAD, 0L);
   fclose(sdpf);
+  sdpf = NULL;
 
   /* Make sure we can do a normal request now */
-  stream_uri = suburl(URL, request++);
-  curl_easy_setopt(curl, CURLOPT_RTSP_STREAM_URI,stream_uri);
+  if((stream_uri = suburl(URL, request++)) == NULL) {
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
   free(stream_uri);
+  stream_uri = NULL;
 
-  curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_DESCRIBE);
+  test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_DESCRIBE);
   res = curl_easy_perform(curl);
   if(res)
-    return res;
+    goto test_cleanup;
 
   /* Now do a POST style one */
 
-  stream_uri = suburl(URL, request++);
-  curl_easy_setopt(curl, CURLOPT_RTSP_STREAM_URI,stream_uri);
+  if((stream_uri = suburl(URL, request++)) == NULL) {
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
   free(stream_uri);
+  stream_uri = NULL;
 
   custom_headers = curl_slist_append(custom_headers,
                                      "Content-Type: posty goodness");
-
-  curl_easy_setopt(curl, CURLOPT_RTSPHEADER, custom_headers);
-  curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_ANNOUNCE);
-  curl_easy_setopt(curl, CURLOPT_POSTFIELDS,
-                         "postyfield=postystuff&project=curl\n");
+  if(!custom_headers) {
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  test_setopt(curl, CURLOPT_RTSPHEADER, custom_headers);
+  test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_ANNOUNCE);
+  test_setopt(curl, CURLOPT_POSTFIELDS, "postyfield=postystuff&project=curl\n");
 
   res = curl_easy_perform(curl);
   if(res)
-    return res;
+    goto test_cleanup;
 
-  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, NULL);
-  curl_easy_setopt(curl, CURLOPT_RTSPHEADER, NULL);
+  test_setopt(curl, CURLOPT_POSTFIELDS, NULL);
+  test_setopt(curl, CURLOPT_RTSPHEADER, NULL);
   curl_slist_free_all(custom_headers);
+  custom_headers = NULL;
 
   /* Make sure we can do a normal request now */
-  stream_uri = suburl(URL, request++);
-  curl_easy_setopt(curl, CURLOPT_RTSP_STREAM_URI,stream_uri);
+  if((stream_uri = suburl(URL, request++)) == NULL) {
+    res = TEST_ERR_MAJOR_BAD;
+    goto test_cleanup;
+  }
+  test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri);
   free(stream_uri);
+  stream_uri = NULL;
 
-  curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_OPTIONS);
+  test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_OPTIONS);
   res = curl_easy_perform(curl);
-  if(res)
-    return res;
+
+test_cleanup:
+
+  if(sdpf)
+    fclose(sdpf);
+
+  if(stream_uri)
+    free(stream_uri);
+
+  if(custom_headers)
+    curl_slist_free_all(custom_headers);
 
   curl_easy_cleanup(curl);
   curl_global_cleanup();