Tools/ConnectionPatcher: Dropped obsolete function DownloadFile

* Also broken in boost 1.66
This commit is contained in:
joschiwald
2018-03-04 13:55:03 +01:00
parent 16a7a414ab
commit 7e643662fd
2 changed files with 1 additions and 71 deletions

View File

@@ -17,6 +17,7 @@
*/
#include "Helper.hpp"
#include "Patterns/Common.hpp"
namespace Connection_Patcher
{
@@ -45,70 +46,6 @@ namespace Connection_Patcher
}
}
// adapted from http://stackoverflow.com/questions/21422094/boostasio-download-image-file-from-server
void DownloadFile(const std::string& serverName, int port, const std::string& getCommand, std::ostream& out)
{
using namespace boost::asio;
using boost::asio::ip::tcp;
io_service io_service;
// Get a list of endpoints corresponding to the server name.
tcp::resolver resolver(io_service);
tcp::resolver::query query(serverName, std::to_string(port));
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::resolver::iterator end;
// Try each endpoint until we successfully establish a connection.
tcp::socket socket(io_service);
boost::system::error_code error = boost::asio::error::host_not_found;
while (error && endpoint_iterator != end)
{
socket.close();
socket.connect(*endpoint_iterator++, error);
}
boost::asio::streambuf request;
std::ostream request_stream(&request);
request_stream << "GET " << getCommand << " HTTP/1.0\r\n";
request_stream << "Host: " << serverName << ':' << port << "\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Connection: close\r\n\r\n";
// Send the request.
boost::asio::write(socket, request);
// Read the response status line.
boost::asio::streambuf response;
boost::asio::read_until(socket, response, "\r\n");
// Check that response is OK.
std::istream response_stream(&response);
std::string http_version;
response_stream >> http_version;
unsigned int status_code;
response_stream >> status_code;
std::string status_message;
std::getline(response_stream, status_message);
// Read the response headers, which are terminated by a blank line.
boost::asio::read_until(socket, response, "\r\n\r\n");
// Process the response headers.
std::string header;
while (std::getline(response_stream, header) && header != "\r")
{ }
// Write whatever content we already have to output.
if (response.size() > 0)
out << &response;
// Read until EOF, writing data to output as we go.
while (boost::asio::read(socket, response, boost::asio::transfer_at_least(1), error))
out << &response;
}
Constants::BinaryTypes GetBinaryType(std::vector<unsigned char> const& data)
{
// Check MS-DOS magic

View File

@@ -20,23 +20,16 @@
#define CONNECTION_PATCHER_HELPER_HPP
#include "Constants/BinaryTypes.hpp"
#include "Patterns/Common.hpp"
#include <boost/filesystem.hpp>
#include <boost/asio.hpp>
#include <vector>
#include <set>
#include <string>
#include <stdexcept>
#include <SHA256.h>
#include <Util.h>
namespace Connection_Patcher
{
namespace Helper
{
void CopyDir(boost::filesystem::path const & source, boost::filesystem::path const & destination);
void DownloadFile(const std::string& serverName, int port, const std::string& getCommand, std::ostream& out);
Constants::BinaryTypes GetBinaryType(std::vector<unsigned char> const& data);
std::set<size_t> SearchOffset(std::vector<unsigned char> const& binary, std::vector<unsigned char> const& pattern);
uint32_t GetBuildNumber(std::vector<unsigned char> const& binary);