| OpenTTD
    | 
Base socket handler for HTTP traffic. More...
#include <tcp_http.h>
 
  
 | Public Member Functions | |
| bool | IsConnected () const | 
| Whether this socket is currently bound to a socket. | |
| virtual NetworkRecvStatus | CloseConnection (bool error=true) | 
| Close the current connection; for TCP this will be mostly equivalent to Close(), but for UDP it just means the packet has to be dropped. | |
| NetworkHTTPSocketHandler (SOCKET sock, HTTPCallback *callback, const char *host, const char *url, const char *data, int depth) | |
| Start the querying. | |
| ~NetworkHTTPSocketHandler () | |
| Free whatever needs to be freed. | |
|  Public Member Functions inherited from NetworkSocketHandler | |
| NetworkSocketHandler () | |
| Create a new unbound socket. | |
| virtual | ~NetworkSocketHandler () | 
| Close the socket when destructing the socket handler. | |
| virtual void | Close () | 
| Really close the socket. | |
| bool | HasClientQuit () const | 
| Whether the current client connected to the socket has quit. | |
| void | Reopen () | 
| Reopen the socket so we can send/receive stuff again. | |
| void | SendGRFIdentifier (Packet *p, const GRFIdentifier *grf) | 
| Serializes the GRFIdentifier (GRF ID and MD5 checksum) to the packet. | |
| void | ReceiveGRFIdentifier (Packet *p, GRFIdentifier *grf) | 
| Deserializes the GRFIdentifier (GRF ID and MD5 checksum) from the packet. | |
| void | SendCompanyInformation (Packet *p, const struct Company *c, const struct NetworkCompanyStats *stats, uint max_len=NETWORK_COMPANY_NAME_LENGTH) | 
| Package some generic company information into a packet. | |
| Static Public Member Functions | |
| static int | Connect (char *uri, HTTPCallback *callback, const char *data=NULL, int depth=0) | 
| Connect to the given URI. | |
| static void | HTTPReceive () | 
| Do the receiving for all HTTP connections. | |
| Data Fields | |
| SOCKET | sock | 
| The socket currently connected to. | |
| Private Member Functions | |
| int | HandleHeader () | 
| Handle the header of a HTTP reply. | |
| int | Receive () | 
| Handle receiving of HTTP data. | |
| Private Attributes | |
| char | recv_buffer [4096] | 
| Partially received message. | |
| int | recv_pos | 
| Current position in buffer. | |
| int | recv_length | 
| Length of the data still retrieving. | |
| HTTPCallback * | callback | 
| The callback to call for the incoming data. | |
| const char * | data | 
| The (POST) data we might want to forward (to a redirect). | |
| int | redirect_depth | 
| The depth of the redirection. | |
Base socket handler for HTTP traffic.
Definition at line 42 of file tcp_http.h.
| NetworkHTTPSocketHandler::NetworkHTTPSocketHandler | ( | SOCKET | s, | 
| HTTPCallback * | callback, | ||
| const char * | host, | ||
| const char * | url, | ||
| const char * | data, | ||
| int | depth | ||
| ) | 
Start the querying.
| s | the socket of this connection | 
| callback | the callback for HTTP retrieval | 
| host | the hostname of the server to connect to | 
| url | the url at the server | 
| data | the data to send | 
| depth | the depth (redirect recursion) of the queries | 
Definition at line 37 of file tcp_http.cpp.
References AllocaM, SmallVector< T, S >::Append(), DEBUG, HTTPCallback::OnFailure(), seprintf(), and sock.
| NetworkHTTPSocketHandler::~NetworkHTTPSocketHandler | ( | ) | 
Free whatever needs to be freed.
Definition at line 72 of file tcp_http.cpp.
References CloseConnection(), data, free(), and sock.
| 
 | virtual | 
Close the current connection; for TCP this will be mostly equivalent to Close(), but for UDP it just means the packet has to be dropped.
| error | Whether we quit under an error condition or not. | 
Reimplemented from NetworkSocketHandler.
Definition at line 81 of file tcp_http.cpp.
References NETWORK_RECV_STATUS_OKAY.
Referenced by HTTPReceive(), and ~NetworkHTTPSocketHandler().
| 
 | static | 
Connect to the given URI.
| uri | the URI to connect to. | 
| callback | the callback to send data back on. | 
| data | the data we want to send (as POST). | 
| depth | the recursion/redirect depth. | 
Definition at line 197 of file tcp_http.cpp.
References ParseConnectionString(), and return_error.
Referenced by HandleHeader().
| 
 | private | 
Handle the header of a HTTP reply.
Definition at line 110 of file tcp_http.cpp.
References callback, Connect(), CONTENT_LENGTH, data, DEBUG, END_OF_HEADER, HTTP_1_0, HTTP_1_1, LOCATION, NEWLINE, recv_buffer, redirect_depth, and return_error.
Referenced by Receive().
| 
 | inline | 
Whether this socket is currently bound to a socket.
Definition at line 60 of file tcp_http.h.
References sock.
| 
 | private | 
Handle receiving of HTTP data.
Definition at line 232 of file tcp_http.cpp.
References callback, DEBUG, END_OF_HEADER, HandleHeader(), lengthof, min(), HTTPCallback::OnReceiveData(), recv_buffer, recv_length, recv_pos, and sock.
Referenced by HTTPReceive().
 1.8.1.2
 1.8.1.2