curl tool: create tool_myfunc.[ch] which later on will hold my_* functions
authorYang Tse <yangsita@gmail.com>
Sat, 17 Sep 2011 23:58:18 +0000 (01:58 +0200)
committerYang Tse <yangsita@gmail.com>
Sat, 17 Sep 2011 23:59:25 +0000 (01:59 +0200)
Additionally function my_useragent() now provides default User-Agent string

packages/Symbian/group/curl.mmp
src/Makefile.inc
src/Makefile.vc6
src/main.c
src/tool_cfgable.c
src/tool_myfunc.c [new file with mode: 0644]
src/tool_myfunc.h [new file with mode: 0644]
src/vc6curlsrc.dsp

index 1c8dd30..d5a87b7 100644 (file)
@@ -10,7 +10,7 @@ SOURCEPATH  ../../../src
 SOURCE \
     main.c hugehelp.c urlglob.c writeout.c writeenv.c \
     getpass.c homedir.c curlutil.c os-specific.c xattr.c \
-    tool_cfgable.c tool_convert.c tool_mfiles.c
+    tool_cfgable.c tool_convert.c tool_mfiles.c tool_myfunc.c
 
 SOURCEPATH  ../../../lib
 SOURCE \
index 5d14ba5..97d7f00 100644 (file)
@@ -16,12 +16,13 @@ CURLX_ONES = $(top_srcdir)/lib/strtoofft.c \
 
 CURL_CFILES = main.c hugehelp.c urlglob.c writeout.c writeenv.c \
        getpass.c homedir.c curlutil.c os-specific.c xattr.c \
-       tool_cfgable.c tool_convert.c tool_mfiles.c
+       tool_cfgable.c tool_convert.c tool_mfiles.c tool_myfunc.c
 
 CURL_HFILES = hugehelp.h setup.h config-win32.h config-mac.h \
        config-riscos.h urlglob.h version.h os-specific.h \
        writeout.h writeenv.h getpass.h homedir.h curlutil.h \
-       xattr.h tool_cfgable.h tool_convert.h tool_mfiles.h
+       xattr.h tool_cfgable.h tool_convert.h tool_mfiles.h \
+       tool_myfunc.h
 
 curl_SOURCES = $(CURL_CFILES) $(CURLX_ONES) $(CURL_HFILES)
 
index ca6c4f9..435970f 100644 (file)
@@ -145,6 +145,7 @@ RELEASE_OBJS= \
        tool_cfgabler.obj \\r
        tool_convertr.obj \\r
        tool_mfilesr.obj \\r
+       tool_myfuncr.obj \\r
        urlglobr.obj \\r
        writeoutr.obj \\r
        xattrr.obj \\r
@@ -163,6 +164,7 @@ DEBUG_OBJS= \
        tool_cfgabled.obj \\r
        tool_convertd.obj \\r
        tool_mfilesd.obj \\r
+       tool_myfuncd.obj \\r
        urlglobd.obj \\r
        writeoutd.obj \\r
        xattrd.obj \\r
@@ -314,6 +316,8 @@ tool_convertr.obj: tool_convert.c
        $(CCR) $(CFLAGS) /Fo"$@" tool_convert.c\r
 tool_mfilesr.obj: tool_mfiles.c\r
        $(CCR) $(CFLAGS) /Fo"$@" tool_mfiles.c\r
+tool_myfuncr.obj: tool_myfunc.c\r
+       $(CCR) $(CFLAGS) /Fo"$@" tool_myfunc.c\r
 xattrr.obj: xattr.c\r
        $(CCR) $(CFLAGS) /Fo"$@" xattr.c\r
 mainr.obj: main.c\r
@@ -348,6 +352,8 @@ tool_convertd.obj: tool_convert.c
        $(CCD) $(CFLAGS) /Fo"$@" tool_convert.c\r
 tool_mfilesd.obj: tool_mfiles.c\r
        $(CCD) $(CFLAGS) /Fo"$@" tool_mfiles.c\r
+tool_myfuncd.obj: tool_myfunc.c\r
+       $(CCD) $(CFLAGS) /Fo"$@" tool_myfunc.c\r
 xattrd.obj: xattr.c\r
        $(CCD) $(CFLAGS) /Fo"$@" xattr.c\r
 maind.obj: main.c\r
index 5ef8998..8ea8f05 100644 (file)
 #include "tool_convert.h"
 #include "tool_mfiles.h"
 #include "tool_cfgable.h"
+#include "tool_myfunc.h"
 #ifdef USE_MANUAL
 #  include "hugehelp.h"
 #endif
@@ -4132,7 +4133,6 @@ static int
 operate(struct Configurable *config, int argc, argv_item_t argv[])
 {
   char errorbuffer[CURL_ERROR_SIZE];
-  char useragent[256]; /* buah, we don't want a larger default user agent */
   struct ProgressData progressbar;
   struct getout *urlnode;
   struct getout *nextnode;
@@ -4150,8 +4150,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
   curl_off_t uploadfilesize; /* -1 means unknown */
   bool stillflags=TRUE;
 
-  bool allocuseragent=FALSE;
-
   char *httpgetfields=NULL;
 
   CURL *curl;
@@ -4281,14 +4279,14 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
     helpf(config->errors, "no URL specified!\n");
     return CURLE_FAILED_INIT;
   }
-  if(NULL == config->useragent) {
-    /* set non-zero default values: */
-    snprintf(useragent, sizeof(useragent),
-             CURL_NAME "/" CURL_VERSION " (" OS ") " "%s", curl_version());
-    config->useragent= useragent;
+
+  if(!config->useragent)
+    config->useragent = my_useragent();
+  if(!config->useragent) {
+    clean_getout(config);
+    res = CURLE_OUT_OF_MEMORY;
+    goto quit_curl;
   }
-  else
-    allocuseragent = TRUE;
 
   /* On WIN32 we can't set the path to curl-ca-bundle.crt
    * at compile time. So we look here for the file in two ways:
@@ -5393,9 +5391,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
   if(heads.stream && (heads.stream != stdout))
     fclose(heads.stream);
 
-  if(allocuseragent)
-    Curl_safefree(config->useragent);
-
   if(config->trace_fopened && config->trace_stream)
     fclose(config->trace_stream);
 
index c2cfac6..2ec57cc 100644 (file)
@@ -38,9 +38,7 @@ void free_config_fields(struct Configurable *config)
 
   Curl_safefree(config->random_file);
   Curl_safefree(config->egd_file);
-
-  /* config->useragent not handled */
-
+  Curl_safefree(config->useragent);
   Curl_safefree(config->cookie);
   Curl_safefree(config->cookiejar);
   Curl_safefree(config->cookiefile);
@@ -123,3 +121,4 @@ void free_config_fields(struct Configurable *config)
   /* config->outs not handled */
 
 }
+
diff --git a/src/tool_myfunc.c b/src/tool_myfunc.c
new file mode 100644 (file)
index 0000000..08afc99
--- /dev/null
@@ -0,0 +1,48 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * 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 "setup.h"
+
+#include <curl/curl.h>
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "version.h"
+#include "tool_myfunc.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/*
+ * my_useragent: returns allocated string with default user agent
+ */
+
+char *my_useragent(void)
+{
+  char useragent[256]; /* we don't want a larger default user agent */
+
+  snprintf(useragent, sizeof(useragent),
+           CURL_NAME "/" CURL_VERSION " (" OS ") " "%s", curl_version());
+
+  return strdup(useragent);
+}
+
diff --git a/src/tool_myfunc.h b/src/tool_myfunc.h
new file mode 100644 (file)
index 0000000..b1d9c66
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef HEADER_CURL_TOOL_MYFUNC_H
+#define HEADER_CURL_TOOL_MYFUNC_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * 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 "setup.h"
+
+char *my_useragent(void);
+
+#endif /* HEADER_CURL_TOOL_MYFUNC_H */
+
index 336bae9..9959db8 100644 (file)
@@ -187,6 +187,10 @@ SOURCE=.\tool_mfiles.c
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=.\tool_myfunc.c\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\urlglob.c\r
 # End Source File\r
 # Begin Source File\r
@@ -259,6 +263,10 @@ SOURCE=.\tool_mfiles.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=.\tool_myfunc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=.\urlglob.h\r
 # End Source File\r
 # Begin Source File\r