/[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 199 by twoaday, Tue Mar 14 11:01:22 2006 UTC revision 200 by twoaday, Mon Apr 17 09:12:50 2006 UTC
# Line 77  wHTTP::reset (void) Line 77  wHTTP::reset (void)
77      fd = statcode = 0;      fd = statcode = 0;
78      method = HTTP_GET;      method = HTTP_GET;
79      nleft = -1;      nleft = -1;
80        error = 0;
81  }  }
82    
83    
# Line 199  wHTTP::connect (const char *_host, int _ Line 200  wHTTP::connect (const char *_host, int _
200            
201      if (isalpha (*_host)) {      if (isalpha (*_host)) {
202          hp = gethostbyname (_host);          hp = gethostbyname (_host);
203          if (!hp)          if (!hp) {
204                this->error = (int)WSAGetLastError ();
205              return WPTERR_WINSOCK_CONNECT;              return WPTERR_WINSOCK_CONNECT;
206            }
207          memcpy (&srv.sin_addr, hp->h_addr, hp->h_length);          memcpy (&srv.sin_addr, hp->h_addr, hp->h_length);
208      }      }
209      else {      else {
210          addr = inet_addr (_host);          addr = inet_addr (_host);
211          if (addr == INADDR_NONE)          if (addr == INADDR_NONE) {
212                this->error = (int)WSAGetLastError ();
213              return WPTERR_WINSOCK_CONNECT;              return WPTERR_WINSOCK_CONNECT;
214            }
215          memcpy (&srv.sin_addr, &addr, sizeof addr);          memcpy (&srv.sin_addr, &addr, sizeof addr);
216      }      }
217                            
218      fd = socket (AF_INET, SOCK_STREAM, 0);      fd = socket (AF_INET, SOCK_STREAM, 0);
219      if (fd < 0)      if (fd < 0) {
220            this->error = (int)WSAGetLastError ();
221          return WPTERR_WINSOCK_SOCKET;          return WPTERR_WINSOCK_SOCKET;
222        }
223    
224      if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR,      if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR,
225                      (const char*)&i, sizeof i)) {                      (const char*)&i, sizeof i)) {
226          closesocket (fd);          closesocket (fd);
227          fd = 0;          fd = 0;
228            this->error = (int)WSAGetLastError ();
229          return WPTERR_WINSOCK_SOCKET;          return WPTERR_WINSOCK_SOCKET;
230      }      }
231            
232      if (::connect (fd, (struct sockaddr *)&srv, sizeof srv)) {      if (::connect (fd, (struct sockaddr *)&srv, sizeof srv)) {
233          closesocket (fd);          closesocket (fd);
234          fd = 0;          fd = 0;
235            this->error = (int)WSAGetLastError ();
236          return WPTERR_WINSOCK_CONNECT;          return WPTERR_WINSOCK_CONNECT;
237      }      }
238    
# Line 550  wHTTP::~wHTTP (void) Line 559  wHTTP::~wHTTP (void)
559      }      }
560      free_if_malloc (url);      free_if_malloc (url);
561      free_if_malloc (host);      free_if_malloc (host);
562      if (fd != 0)      if (fd != 0) {
563          closesocket (fd);          closesocket (fd);
564            fd = 0;
565        }
566  }  }
567    
568    
569    /* Read @buflen bytes from the http stream into the buffer @buf. */
570  int  int
571  wHTTP::read (void *buf, unsigned int buflen)  wHTTP::read (void *buf, unsigned int buflen)
572  {  {
# Line 581  wHTTP::read (void *buf, unsigned int buf Line 593  wHTTP::read (void *buf, unsigned int buf
593  }  }
594    
595    
596    /* Write the buffer @buf to the http stream. */
597  int  int
598  wHTTP::write (const void *buf, unsigned buflen)  wHTTP::write (const void *buf, unsigned buflen)
599  {  {
# Line 590  wHTTP::write (const void *buf, unsigned Line 603  wHTTP::write (const void *buf, unsigned
603          return -1;          return -1;
604      return send (fd, (const char*)buf, (int)buflen, 0);      return send (fd, (const char*)buf, (int)buflen, 0);
605  }  }
606    
607    
608    /* Return the winsock specific error code. */
609    int wHTTP::getErrorCode (void)
610    {
611        return error;
612    }

Legend:
Removed from v.199  
changed lines
  Added in v.200

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26