mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
tweaks
This commit is contained in:
parent
ed301e9055
commit
88ad844981
@ -199,7 +199,10 @@ get_https_proxy(const URLSpec &url, const string &body) {
|
|||||||
<< "CONNECT " << url.get_authority() << " HTTP/1.1\r\n"
|
<< "CONNECT " << url.get_authority() << " HTTP/1.1\r\n"
|
||||||
<< "\r\n";
|
<< "\r\n";
|
||||||
string request_str = request.str();
|
string request_str = request.str();
|
||||||
|
|
||||||
|
if (downloader_cat.is_debug()) {
|
||||||
|
downloader_cat.debug() << "send:\n" << request_str << "\n";
|
||||||
|
}
|
||||||
BIO_puts(bio, request_str.c_str());
|
BIO_puts(bio, request_str.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,10 +216,14 @@ get_https_proxy(const URLSpec &url, const string &body) {
|
|||||||
<< ": " << doc->get_status_code() << " "
|
<< ": " << doc->get_status_code() << " "
|
||||||
<< doc->get_status_string() << "\n";
|
<< doc->get_status_string() << "\n";
|
||||||
|
|
||||||
// If the proxy won't open a raw connection for us, see if it will
|
// If the proxy refused to open a raw connection for us, see if
|
||||||
// handle the https communication directly.
|
// it will handle the https communication directly. For other
|
||||||
BIO_free_all(bio);
|
// error codes, just return error.
|
||||||
return get_http_proxy(url, body);
|
if ((doc->get_status_code() / 100) == 4) {
|
||||||
|
BIO_free_all(bio);
|
||||||
|
return get_http_proxy(url, body);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,6 +238,16 @@ get_https_proxy(const URLSpec &url, const string &body) {
|
|||||||
nassertr(ssl != (SSL *)NULL, NULL);
|
nassertr(ssl != (SSL *)NULL, NULL);
|
||||||
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
|
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
|
||||||
|
|
||||||
|
if (BIO_do_handshake(sbio) <= 0) {
|
||||||
|
downloader_cat.info()
|
||||||
|
<< "Could not establish SSL handshake with "
|
||||||
|
<< url.get_server() << ":" << url.get_port() << "\n";
|
||||||
|
#ifndef NDEBUG
|
||||||
|
ERR_print_errors_fp(stderr);
|
||||||
|
#endif
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
send_get_request(sbio, url.get_path(), url.get_server(), body);
|
send_get_request(sbio, url.get_path(), url.get_server(), body);
|
||||||
return sbio;
|
return sbio;
|
||||||
}
|
}
|
||||||
@ -265,5 +282,8 @@ send_get_request(BIO *bio,
|
|||||||
}
|
}
|
||||||
|
|
||||||
string request_str = request.str();
|
string request_str = request.str();
|
||||||
|
if (downloader_cat.is_debug()) {
|
||||||
|
downloader_cat.debug() << "send:\n" << request_str << "\n";
|
||||||
|
}
|
||||||
BIO_puts(bio, request_str.c_str());
|
BIO_puts(bio, request_str.c_str());
|
||||||
}
|
}
|
||||||
|
@ -165,6 +165,9 @@ read_headers() {
|
|||||||
if (!line.empty() && line[line.length() - 1] == '\r') {
|
if (!line.empty() && line[line.length() - 1] == '\r') {
|
||||||
line = line.substr(0, line.length() - 1);
|
line = line.substr(0, line.length() - 1);
|
||||||
}
|
}
|
||||||
|
if (downloader_cat.is_debug()) {
|
||||||
|
downloader_cat.debug() << "recv: " << line << "\n";
|
||||||
|
}
|
||||||
if (!(*_source) || line.length() < 5 || line.substr(0, 5) != "HTTP/") {
|
if (!(*_source) || line.length() < 5 || line.substr(0, 5) != "HTTP/") {
|
||||||
// Not an HTTP response.
|
// Not an HTTP response.
|
||||||
_status_code = 0;
|
_status_code = 0;
|
||||||
@ -203,6 +206,9 @@ read_headers() {
|
|||||||
if (!line.empty() && line[line.length() - 1] == '\r') {
|
if (!line.empty() && line[line.length() - 1] == '\r') {
|
||||||
line = line.substr(0, line.length() - 1);
|
line = line.substr(0, line.length() - 1);
|
||||||
}
|
}
|
||||||
|
if (downloader_cat.is_debug()) {
|
||||||
|
downloader_cat.debug() << "recv: " << line << "\n";
|
||||||
|
}
|
||||||
while (!_source->eof() && !_source->fail() && !line.empty()) {
|
while (!_source->eof() && !_source->fail() && !line.empty()) {
|
||||||
if (isspace(line[0])) {
|
if (isspace(line[0])) {
|
||||||
// If the line begins with a space, that continues the previous
|
// If the line begins with a space, that continues the previous
|
||||||
@ -236,6 +242,9 @@ read_headers() {
|
|||||||
if (!line.empty() && line[line.length() - 1] == '\r') {
|
if (!line.empty() && line[line.length() - 1] == '\r') {
|
||||||
line = line.substr(0, line.length() - 1);
|
line = line.substr(0, line.length() - 1);
|
||||||
}
|
}
|
||||||
|
if (downloader_cat.is_debug()) {
|
||||||
|
downloader_cat.debug() << "recv: " << line << "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!field_name.empty()) {
|
if (!field_name.empty()) {
|
||||||
_headers[field_name] = field_value;
|
_headers[field_name] = field_value;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user