bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-wget] http.c code cleaning


From: Dmitry Bogatov
Subject: Re: [Bug-wget] http.c code cleaning
Date: Thu, 09 May 2013 00:55:00 +0400
User-agent: mu4e 0.9.9.5; emacs 24.3.1

>> Giuseppe pushed a patch with that change a few days ago..  Please rebase it 
>> onto the master branch.
> Good idea, but as Darshit said, please rebase it onto the master
> branch.  I will be offline for the next few days, I will review it
> when I am back.
Here it is: 
>From 6b35e408194bb1970537b54d888374e77d26d6b4 Mon Sep 17 00:00:00 2001
From: Dmitry Bogatov <address@hidden>
Date: Wed, 8 May 2013 18:10:55 +0400
Subject: [PATCH] Non-functionality improvement in src/http.c.

Pulled `request_set_method` functionality into `request_new`
to ensure these functions always called in right order.
---
 src/http.c | 35 +++++++++++++++--------------------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/src/http.c b/src/http.c
index 3a33840..4d3b753 100644
--- a/src/http.c
+++ b/src/http.c
@@ -147,27 +147,20 @@ struct request {
 
 extern int numurls;
 
-/* Create a new, empty request.  At least request_set_method must be
-   called before the request can be used.  */
+/* Create a new, empty request. Set the request's method and its
+   arguments.  METHOD should be a literal string (or it should outlive
+   the request) because it will not be freed.  ARG will be freed by
+   request_free.  */
 
 static struct request *
-request_new (void)
+request_new (const char *method, char *arg)
 {
   struct request *req = xnew0 (struct request);
   req->hcapacity = 8;
   req->headers = xnew_array (struct request_header, req->hcapacity);
-  return req;
-}
-
-/* Set the request's method and its arguments.  METH should be a
-   literal string (or it should outlive the request) because it will
-   not be freed.  ARG will be freed by request_free.  */
-
-static void
-request_set_method (struct request *req, const char *meth, char *arg)
-{
-  req->method = meth;
+  req->method = method;
   req->arg = arg;
+  return req;
 }
 
 /* Return the method string passed with the last call to
@@ -1758,15 +1751,18 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, 
struct url *proxy,
   conn = u;
 
   /* Prepare the request to send. */
-
-  req = request_new ();
   {
     char *meth_arg;
     const char *meth = "GET";
     if (head_only)
       meth = "HEAD";
     else if (opt.method)
-      meth = opt.method;
+      {
+        char *q;
+        for (q = opt.method; *q; ++q)
+          *q = c_toupper (*q);
+        meth = opt.method;
+      }
     /* Use the full path, i.e. one that includes the leading slash and
        the query string.  E.g. if u->path is "foo/bar" and u->query is
        "param=value", full_path will be "/foo/bar?param=value".  */
@@ -1781,7 +1777,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, 
struct url *proxy,
       meth_arg = xstrdup (u->url);
     else
       meth_arg = url_full_path (u);
-    request_set_method (req, meth, meth_arg);
+    req = request_new(meth, meth_arg);
   }
 
   request_set_header (req, "Referer", (char *) hs->referer, rel_none);
@@ -2014,8 +2010,7 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, 
struct url *proxy,
         {
           /* When requesting SSL URLs through proxies, use the
              CONNECT method to request passthrough.  */
-          struct request *connreq = request_new ();
-          request_set_method (connreq, "CONNECT",
+          struct request *connreq = request_new ("CONNECT",
                               aprintf ("%s:%d", u->host, u->port));
           SET_USER_AGENT (connreq);
           if (proxyauth)
-- 
1.8.2.2

--
Best regards, Dmitry Bogatov <address@hidden>,
Free Software supporter and netiquette guardian.
        git clone git://gitorious.org/illusionoflife-read-only/rc-files.git 
--depth 1
        GPG: 54B7F00D
Html mail and proprietary format attachments are forwarded to /dev/null.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]