/[winpt]/trunk/Src/wptHTTP.cpp
ViewVC logotype

Diff of /trunk/Src/wptHTTP.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 309 by twoaday, Fri Mar 23 14:26:30 2007 UTC revision 310 by twoaday, Sat Apr 7 11:07:20 2007 UTC
# Line 62  wHTTP::wHTTP (const char *_url) Line 62  wHTTP::wHTTP (const char *_url)
62  int  int
63  wHTTP::open (const char *_url)  wHTTP::open (const char *_url)
64  {  {
65      releaseMem ();      /* In case the function is used more than once, we
66           need to release the old structures first. */
67        releaseHeaders ();
68        
69        safe_free (this->host);
70        safe_free (this->url);
71            
72      if (extractHostInfo (_url, &this->host, &this->url))      if (extractHostInfo (_url, &this->host, &this->url))
73          return -1;          return -1;
# Line 101  wHTTP::head (const char *_url) Line 106  wHTTP::head (const char *_url)
106      err = extractHostInfo (_url, &this->host, &this->url);      err = extractHostInfo (_url, &this->host, &this->url);
107      if (err)      if (err)
108          return err;          return err;
109        
110      method = HTTP_HEAD;      method = HTTP_HEAD;
111        if (!sendRequest (this->host, this->port, this->url))
     if (!sendRequest (host, port, url))  
112          parseResponse (&statcode);          parseResponse (&statcode);
113    
114      return 0;      return 0;
# Line 116  wHTTP::get (const char *_url) Line 121  wHTTP::get (const char *_url)
121  {  {
122      int err;      int err;
123    
124      safe_free (host);      safe_free (this->host);
125      safe_free (url);      safe_free (this->url);
126    
127      err = extractHostInfo (_url, &this->host, &this->url);      err = extractHostInfo (_url, &this->host, &this->url);
128      if (err)      if (err)
# Line 552  wHTTP::parseResponse (int *_statcode) Line 557  wHTTP::parseResponse (int *_statcode)
557          resp_headers = n;          resp_headers = n;
558      }      }
559      resp_headers = NULL;      resp_headers = NULL;
560      rc = parseHeaders (&resp_headers);      return parseHeaders (&resp_headers);
     if (rc)  
         return rc;  
     return 0;  
561  }  }
562    
563    
564  /* Release all used structures. */  /* Release all used structures. */
565  void  void
566  wHTTP::releaseMem (void)  wHTTP::releaseHeaders (void)
567  {  {
568      http_head_t h;      http_head_t h;
569            
570      while (resp_headers) {      while (resp_headers != NULL) {
571          h = resp_headers->next;          h = resp_headers->next;
572          free (resp_headers);          free (resp_headers);
573          resp_headers = h;          resp_headers = h;
574      }      }
575      resp_headers = NULL;      resp_headers = NULL;
576      while (req_headers) {      while (req_headers != NULL) {
577          h = req_headers->next;          h = req_headers->next;
578          free (req_headers);          free (req_headers);
579          req_headers = h;          req_headers = h;
580      }      }
581      req_headers = NULL;      req_headers = NULL;
     safe_free (url);  
     safe_free (host);  
582  }  }
583    
584    
585  /* Destroy HTTP object. */  /* Destroy HTTP object. */
586  wHTTP::~wHTTP (void)  wHTTP::~wHTTP (void)
587  {  {
588      releaseMem ();      releaseHeaders();
589        safe_free (host);
590        safe_free (url);
591      if (fd != 0) {      if (fd != 0) {
592          closesocket (fd);          closesocket (fd);
593          fd = 0;          fd = 0;

Legend:
Removed from v.309  
changed lines
  Added in v.310

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26