aboutsummaryrefslogtreecommitdiffstats
path: root/apps/http-proxy/src/forwarder_interface.cc
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2020-06-02 18:52:39 +0200
committerAngelo Mantellini <angelo.mantellini@cisco.com>2020-06-03 16:21:49 +0200
commit5d8156ea4c34f9a3cb986da16a71faebfb2add6b (patch)
tree5895f7546c91eab1c6cad917f3a41594a543ca64 /apps/http-proxy/src/forwarder_interface.cc
parent15458966a342caa0912b7806a755d0d8277ca00f (diff)
[HICN-622] Add stop() functionality to http proxy.
Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I9091cd8ef0f9da869b886541a0116adf3f30e6b9 Signed-off-by: Angelo Mantellini <angelo.mantellini@cisco.com>
Diffstat (limited to 'apps/http-proxy/src/forwarder_interface.cc')
-rw-r--r--apps/http-proxy/src/forwarder_interface.cc22
1 files changed, 12 insertions, 10 deletions
diff --git a/apps/http-proxy/src/forwarder_interface.cc b/apps/http-proxy/src/forwarder_interface.cc
index 105d5a8e9..d80939b8b 100644
--- a/apps/http-proxy/src/forwarder_interface.cc
+++ b/apps/http-proxy/src/forwarder_interface.cc
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-#include "forwarder_interface.h"
+#include <hicn/http-proxy/forwarder_interface.h>
#include <arpa/inet.h>
#include <hicn/transport/utils/log.h>
@@ -41,16 +41,18 @@ int ForwarderInterface::connectToForwarder() {
}
void ForwarderInterface::close() {
- internal_ioservice_.post([this]() {
- work_.reset();
- if (sock_) {
- hc_sock_free(sock_);
- sock_ = nullptr;
- }
- });
+ if (!closed_) {
+ internal_ioservice_.post([this]() {
+ work_.reset();
+ if (sock_) {
+ hc_sock_free(sock_);
+ sock_ = nullptr;
+ }
+ });
- if (thread_->joinable()) {
- thread_->join();
+ if (thread_->joinable()) {
+ thread_->join();
+ }
}
}