diff options
Diffstat (limited to 'apps/http-server/http-client')
-rw-r--r-- | apps/http-server/http-client/http_client.h | 29 | ||||
-rw-r--r-- | apps/http-server/http-client/http_client_icn.cc | 37 | ||||
-rw-r--r-- | apps/http-server/http-client/http_client_icn.h | 34 | ||||
-rw-r--r-- | apps/http-server/http-client/http_client_tcp.cc | 99 | ||||
-rw-r--r-- | apps/http-server/http-client/http_client_tcp.h | 36 |
5 files changed, 0 insertions, 235 deletions
diff --git a/apps/http-server/http-client/http_client.h b/apps/http-server/http-client/http_client.h deleted file mode 100644 index f36c2fa35..000000000 --- a/apps/http-server/http-client/http_client.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include <string> - -#include <hicn/transport/http/facade.h> - -class HTTPClient { - public: - virtual ~HTTPClient() = default; - - virtual void setTcp() = 0; - - virtual bool download(const std::string &url, std::ostream &out) = 0; -}; diff --git a/apps/http-server/http-client/http_client_icn.cc b/apps/http-server/http-client/http_client_icn.cc deleted file mode 100644 index 327d2eed1..000000000 --- a/apps/http-server/http-client/http_client_icn.cc +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "http_client_icn.h" -#include "response.h" - -#include <curl/curl.h> - -using namespace std; - -HTTPClientIcn::HTTPClientIcn(uint32_t timeout) { - std::chrono::seconds _timeout(timeout); - connection_.setTimeout(_timeout); -} - -void HTTPClientIcn::setTcp() {} - -HTTPClientIcn::~HTTPClientIcn() {} - -bool HTTPClientIcn::download(const std::string &url, std::ostream &out) { - connection_.get(url); - libl4::http::HTTPResponse r = connection_.response(); - out.write(reinterpret_cast<const char *>(r.data()), r.size()); - return true; -} diff --git a/apps/http-server/http-client/http_client_icn.h b/apps/http-server/http-client/http_client_icn.h deleted file mode 100644 index 5586f6d62..000000000 --- a/apps/http-server/http-client/http_client_icn.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "http_client.h" - -#include <string> - -class HTTPClientIcn : public HTTPClient { -public: - HTTPClientIcn(uint32_t timeout); - - void setTcp(); - - ~HTTPClientIcn(); - - bool download(const std::string &url, std::ostream &out); - -private: - libl4::http::HTTPClientConnection connection_; -}; diff --git a/apps/http-server/http-client/http_client_tcp.cc b/apps/http-server/http-client/http_client_tcp.cc deleted file mode 100644 index 530f8ef95..000000000 --- a/apps/http-server/http-client/http_client_tcp.cc +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "http_client_tcp.h" -#include "response.h" - -#include <curl/curl.h> -#include <iostream> -#include <sstream> -#include <stdio.h> -#include <string.h> - -using namespace std; - -struct UserData { - void *out; - void *curl; - bool tcp; - bool first_time; -}; - -typedef struct UserData UserData; - -size_t write_data(void *ptr, size_t size, size_t nmemb, void *user_data) { - - UserData *data = (UserData *)user_data; - - if (data->first_time) { - double cl; - - int res = - curl_easy_getinfo(data->curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl); - - if (res >= 0) { - *(ostream *)data->out - << "HTTP/1.0 200 OK\r\nContent-Length: " << std::size_t(cl) - << "\r\n\r\n"; - } - - data->first_time = false; - } - - ((icn_httpserver::Response *)data->out) - ->write((const char *)ptr, size * nmemb); - // ((icn_httpserver::Response*) data->out)->send(); - return size * nmemb; -} - -HTTPClientTcp::HTTPClientTcp() { - tcp_ = false; - first_time = true; - curl_ = curl_easy_init(); -} - -void HTTPClientTcp::setTcp() { tcp_ = true; } - -HTTPClientTcp::~HTTPClientTcp() { curl_easy_cleanup(curl_); } - -bool HTTPClientTcp::download(const std::string &url, std::ostream &out) { - curl_easy_setopt(curl_, CURLOPT_URL, url.c_str()); - - /* example.com is redirected, so we tell libcurl to follow redirection */ - curl_easy_setopt(curl_, CURLOPT_FOLLOWLOCATION, 1L); - curl_easy_setopt(curl_, CURLOPT_NOSIGNAL, 1); - curl_easy_setopt(curl_, CURLOPT_ACCEPT_ENCODING, "deflate"); - - curl_easy_setopt(curl_, CURLOPT_WRITEFUNCTION, write_data); - UserData data; - data.out = &out; - data.curl = curl_; - data.tcp = tcp_; - data.first_time = first_time; - - curl_easy_setopt(curl_, CURLOPT_WRITEDATA, &data); - - /* Perform the request, res will get the return code */ - CURLcode res = curl_easy_perform(curl_); - - /* Check for errors */ - if (res != CURLE_OK) { - fprintf(stderr, "curl_easy_perform() failed: %s\n", - curl_easy_strerror(res)); - return false; - } - - return true; -} diff --git a/apps/http-server/http-client/http_client_tcp.h b/apps/http-server/http-client/http_client_tcp.h deleted file mode 100644 index 9433e8a36..000000000 --- a/apps/http-server/http-client/http_client_tcp.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2019 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include "http_client.h" - -#include <string> - -class HTTPClientTcp : public HTTPClient { -public: - HTTPClientTcp(); - - void setTcp(); - - ~HTTPClientTcp(); - - bool download(const std::string &url, std::ostream &out); - -private: - bool first_time; - bool tcp_; - void *curl_; -}; |