From aabba128ae9621fa2fe6f05c0c0c026fef59f5d5 Mon Sep 17 00:00:00 2001
From: Jeffrey <jeffryan@tamu.edu>
Date: Sun, 6 Mar 2022 23:50:46 -0600
Subject: [PATCH] Remove levin_helper.h and levin_client.*

---
 contrib/epee/include/net/levin_client.h   |  89 ----------
 contrib/epee/include/net/levin_client.inl | 199 ----------------------
 contrib/epee/include/net/levin_helper.h   | 161 -----------------
 3 files changed, 449 deletions(-)
 delete mode 100644 contrib/epee/include/net/levin_client.h
 delete mode 100644 contrib/epee/include/net/levin_client.inl
 delete mode 100644 contrib/epee/include/net/levin_helper.h

diff --git a/contrib/epee/include/net/levin_client.h b/contrib/epee/include/net/levin_client.h
deleted file mode 100644
index 76d528234..000000000
--- a/contrib/epee/include/net/levin_client.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright (c) 2006-2013, Andrey N. Sabelnikov, www.sabelnikov.net
-// All rights reserved.
-// 
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-// * Neither the name of the Andrey N. Sabelnikov nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-// 
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER  BE LIABLE FOR ANY
-// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// 
-
-
-
-
-
-#ifndef _LEVIN_CLIENT_H_
-#define _LEVIN_CLIENT_H_
-
-#include "net_helper.h"
-#include "levin_base.h"
-
-
-#ifndef MAKE_IP
-#define MAKE_IP( a1, a2, a3, a4 )	(a1|(a2<<8)|(a3<<16)|(a4<<24))
-#endif
-
-namespace epee
-{
-namespace levin
-{
-  /************************************************************************/
-  /*                                                                      */
-  /************************************************************************/
-	class levin_client_impl
-	{
-	public:
-		levin_client_impl();
-		virtual ~levin_client_impl();
-
-		bool connect(u_long ip, int port, unsigned int timeout, const std::string& bind_ip = "0.0.0.0");
-    bool connect(const std::string& addr, int port, unsigned int timeout, const std::string& bind_ip = "0.0.0.0");
-		bool is_connected();
-		bool disconnect();
-
-		virtual int invoke(int command, const epee::span<const uint8_t> in_buff, std::string& buff_out);
-		virtual int notify(int command, const std::string& in_buff);
-
-	protected: 
-		net_utils::blocked_mode_client m_transport;
-	};
-
-
-  /************************************************************************/
-  /*                                                                      */
-  /************************************************************************/
-  class levin_client_impl2: public levin_client_impl
-  {
-  public:
-
-    int invoke(int command, const epee::span<const uint8_t> in_buff, std::string& buff_out);
-    int notify(int command, const std::string& in_buff);
-  };
-
-}
-namespace net_utils
-{
-  typedef levin::levin_client_impl levin_client;
-  typedef levin::levin_client_impl2 levin_client2;
-}
-}
-
-#include "levin_client.inl"
-
-#endif //_LEVIN_CLIENT_H_
diff --git a/contrib/epee/include/net/levin_client.inl b/contrib/epee/include/net/levin_client.inl
deleted file mode 100644
index 2f048b027..000000000
--- a/contrib/epee/include/net/levin_client.inl
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright (c) 2006-2013, Andrey N. Sabelnikov, www.sabelnikov.net
-// All rights reserved.
-// 
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-// * Neither the name of the Andrey N. Sabelnikov nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-// 
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER  BE LIABLE FOR ANY
-// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// 
-
-
-
-
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-#include "string_tools.h"
-
-#undef MONERO_DEFAULT_LOG_CATEGORY
-#define MONERO_DEFAULT_LOG_CATEGORY "net"
-
-namespace epee
-{
-namespace levin
-{
-inline
-bool levin_client_impl::connect(u_long ip, int port, unsigned int timeout, const std::string& bind_ip)
-{
-	return m_transport.connect(string_tools::get_ip_string_from_int32(ip), port, timeout, timeout, bind_ip);
-}
-//------------------------------------------------------------------------------
-inline
-  bool levin_client_impl::connect(const std::string& addr, int port, unsigned int timeout, const std::string& bind_ip)
-{
-  return m_transport.connect(addr, port, timeout, timeout, bind_ip);
-}
-//------------------------------------------------------------------------------
-inline
-bool levin_client_impl::is_connected()
-{
-	return m_transport.is_connected();
-}
-//------------------------------------------------------------------------------
-inline
-bool levin_client_impl::disconnect()
-{
-	return m_transport.disconnect();
-}
-//------------------------------------------------------------------------------
-inline
-levin_client_impl::levin_client_impl()
-{
-}
-//------------------------------------------------------------------------------
-inline
-levin_client_impl::~levin_client_impl()
-{
-	disconnect();
-}
-//------------------------------------------------------------------------------
-inline
-int levin_client_impl::invoke(int command, const epee::span<const uint8_t> in_buff, std::string& buff_out)
-{
-	if(!is_connected())
-		return -1;
-
-	bucket_head head = {0};
-	head.m_signature = SWAP64LE(LEVIN_SIGNATURE);
-	head.m_cb = SWAP64LE(in_buff.size());
-	head.m_have_to_return_data = true;
-	head.m_command = SWAP32LE(command);
-	if(!m_transport.send(&head, sizeof(head)))
-		return -1;
-	
-	if(!m_transport.send(in_buff))
-		return -1;
-		
-	std::string local_buff;
-	if(!m_transport.recv_n(local_buff, sizeof(bucket_head)))
-		return -1;
-	
-	head = *(bucket_head*)local_buff.data();
-
-
-	if(head.m_signature!=SWAP64LE(LEVIN_SIGNATURE))
-	{
-		LOG_PRINT_L1("Signature mismatch in response");
-		return -1;
-	}
-	
-	if(!m_transport.recv_n(buff_out, head.m_cb))
-		return -1;
-	
-	return head.m_return_code;
-}
-//------------------------------------------------------------------------------
-inline
-int levin_client_impl::notify(int command, const std::string& in_buff)
-{
-	if(!is_connected())
-		return -1;
-
-	bucket_head head = {0};
-	head.m_signature = SWAP64LE(LEVIN_SIGNATURE);
-	head.m_cb = SWAP64LE(in_buff.size());
-	head.m_have_to_return_data = false;
-	head.m_command = SWAP32LE(command);
-	
-	if(!m_transport.send((const char*)&head, sizeof(head)))
-		return -1;
-
-	if(!m_transport.send(in_buff))
-		return -1;
-
-	return 1;
-}
-
-//------------------------------------------------------------------------------
-//------------------------------------------------------------------------------
-inline
-  int levin_client_impl2::invoke(int command, epee::span<const uint8_t>string& in_buff, std::string& buff_out)
-{
-  if(!is_connected())
-    return -1;
-
-  bucket_head2 head = {0};
-  head.m_signature = SWAP64LE(LEVIN_SIGNATURE);
-  head.m_cb = SWAP64LE(in_buff.size());
-  head.m_have_to_return_data = true;
-  head.m_command = SWAP32LE(command);
-  head.m_return_code = SWAP32LE(0);
-  head.m_flags = SWAP32LE(LEVIN_PACKET_REQUEST);
-  head.m_protocol_version = SWAP32LE(LEVIN_PROTOCOL_VER_1);
-  if(!m_transport.send(&head, sizeof(head)))
-    return -1;
-
-  if(!m_transport.send(in_buff))
-    return -1;
-
-  std::string local_buff;
-  if(!m_transport.recv_n(local_buff, sizeof(bucket_head2)))
-    return -1;
-
-  head = *(bucket_head2*)local_buff.data();
-
-  if(head.m_signature != SWAP64LE(LEVIN_SIGNATURE))
-  {
-    LOG_PRINT_L1("Signature mismatch in response");
-    return -1;
-  }
-
-  if(!m_transport.recv_n(buff_out, SWAP64LE(head.m_cb)))
-    return -1;
-
-  return head.m_return_code;
-}
-//------------------------------------------------------------------------------
-inline
-  int levin_client_impl2::notify(int command, const std::string& in_buff)
-{
-  if(!is_connected())
-    return -1;
-
-  bucket_head2 head = {0};
-  head.m_signature = SWAP64LE(LEVIN_SIGNATURE);
-  head.m_cb = SWAP64LE(in_buff.size());
-  head.m_have_to_return_data = false;
-  head.m_command = SWAP32LE(command);
-  head.m_return_code = SWAP32LE(0);
-  head.m_flags = SWAP32LE(LEVIN_PACKET_REQUEST);
-  head.m_protocol_version = SWAP32LE(LEVIN_PROTOCOL_VER_1);
-
-  if(!m_transport.send((const char*)&head, sizeof(head)))
-    return -1;
-
-  if(!m_transport.send(in_buff))
-    return -1;
-
-  return 1;
-}
-
-}
-}
-//------------------------------------------------------------------------------
diff --git a/contrib/epee/include/net/levin_helper.h b/contrib/epee/include/net/levin_helper.h
deleted file mode 100644
index da926a914..000000000
--- a/contrib/epee/include/net/levin_helper.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright (c) 2006-2013, Andrey N. Sabelnikov, www.sabelnikov.net
-// All rights reserved.
-// 
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-// * Neither the name of the Andrey N. Sabelnikov nor the
-// names of its contributors may be used to endorse or promote products
-// derived from this software without specific prior written permission.
-// 
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER  BE LIABLE FOR ANY
-// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// 
-
-
-
-#pragma once
-
-#include "levin_base.h"
-#include "serializeble_struct_helper.h"
-#include "int-util.h"
-
-#undef MONERO_DEFAULT_LOG_CATEGORY
-#define MONERO_DEFAULT_LOG_CATEGORY "net"
-
-namespace epee
-{
-namespace levin
-{
-	template<class t_struct>
-	bool pack_struct_to_levin_message(const t_struct& t, std::string& buff, int command_id)
-	{
-		buff.resize(sizeof(levin::bucket_head));
-		levin::bucket_head& head = *(levin::bucket_head*)(&buff[0]);
-		head.m_signature = SWAP64LE(LEVIN_SIGNATURE);
-		head.m_cb = 0;
-		head.m_have_to_return_data = true;
-		head.m_command = SWAP32LE(command_id);
-		head.m_return_code = SWAP32LE(1);
-		head.m_reservedA = rand(); //probably some flags in future
-		head.m_reservedB = rand(); //probably some check summ in future
-
-		std::string buff_strg;
-		if(!StorageNamed::save_struct_as_storage_to_buff_t<t_struct, StorageNamed::DefaultStorageType>(t, buff_strg))
-			return false;
-		
-		head.m_cb = SWAP64LE(buff_strg.size());
-		buff.append(buff_strg);
-		return true;
-	}
-
-	
-	bool pack_data_to_levin_message(const std::string& data, std::string& buff, int command_id)
-	{
-		buff.resize(sizeof(levin::bucket_head));
-		levin::bucket_head& head = *(levin::bucket_head*)(&buff[0]);
-		head.m_signature = SWAP64LE(LEVIN_SIGNATURE);
-		head.m_cb = 0;
-		head.m_have_to_return_data = true;
-		head.m_command = SWAP32LE(command_id);
-		head.m_return_code = SWAP32LE(1);
-		head.m_reservedA = rand(); //probably some flags in future
-		head.m_reservedB = rand(); //probably some check summ in future
-
-		head.m_cb = SWAP64LE(data.size());
-		buff.append(data);
-		return true;
-	}
-
-	bool load_levin_data_from_levin_message(std::string& levin_data, const std::string& buff, int& command)
-	{
-		if(buff.size() < sizeof(levin::bucket_head) )
-		{
-			LOG_PRINT_L3("size of buff(" << buff.size() << ") is too small, at load_struct_from_levin_message");
-			return false;
-		}
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-		levin::bucket_head &head = *(levin::bucket_head*)(&buff[0]);
-#else
-		levin::bucket_head head = *(levin::bucket_head*)(&buff[0]);
-		head.m_signature = SWAP64LE(head.m_signature);
-		head.m_cb = SWAP64LE(head.m_cb);
-		head.m_command = SWAP32LE(head.m_command);
-		head.m_return_code = SWAP32LE(head.m_return_code);
-		head.m_reservedA = SWAP32LE(head.m_reservedA);
-		head.m_reservedB = SWAP32LE(head.m_reservedB);
-#endif
-		if(head.m_signature != LEVIN_SIGNATURE)
-		{
-			LOG_PRINT_L3("Failed to read signature in levin message, at load_struct_from_levin_message");
-			return false;
-		}
-		if(head.m_cb != buff.size()-sizeof(levin::bucket_head))
-		{
-			LOG_PRINT_L3("sizes mismatch, at load_struct_from_levin_message");
-			return false;
-		}
-
-		//std::string buff_strg;
-		levin_data.assign(&buff[sizeof(levin::bucket_head)], buff.size()-sizeof(levin::bucket_head));
-		command = head.m_command;
-		return true;
-	}
-
-	template<class t_struct>
-	bool load_struct_from_levin_message(t_struct& t, const std::string& buff, int& command)
-	{
-		if(buff.size() < sizeof(levin::bucket_head) )
-		{
-			LOG_ERROR("size of buff(" << buff.size() << ") is too small, at load_struct_from_levin_message");
-			return false;
-		}
-		
-#if BYTE_ORDER == LITTLE_ENDIAN
-		levin::bucket_head &head = *(levin::bucket_head*)(&buff[0]);
-#else
-		levin::bucket_head head = *(levin::bucket_head*)(&buff[0]);
-		head.m_signature = SWAP64LE(head.m_signature);
-		head.m_cb = SWAP64LE(head.m_cb);
-		head.m_command = SWAP32LE(head.m_command);
-		head.m_return_code = SWAP32LE(head.m_return_code);
-		head.m_reservedA = SWAP32LE(head.m_reservedA);
-		head.m_reservedB = SWAP32LE(head.m_reservedB);
-#endif
-		if(head.m_signature != LEVIN_SIGNATURE)
-		{
-			LOG_ERROR("Failed to read signature in levin message, at load_struct_from_levin_message");
-			return false;
-		}
-		if(head.m_cb != buff.size()-sizeof(levin::bucket_head))
-		{
-			LOG_ERROR("sizes mismatch, at load_struct_from_levin_message");
-			return false;
-		}
-
-		std::string buff_strg;
-		buff_strg.assign(&buff[sizeof(levin::bucket_head)], buff.size()-sizeof(levin::bucket_head));
-
-		if(!StorageNamed::load_struct_from_storage_buff_t<t_struct, StorageNamed::DefaultStorageType>(t, buff_strg))
-		{
-			LOG_ERROR("Failed to read storage, at load_struct_from_levin_message");
-			return false;
-		}
-		command = head.m_command;
-		return true;
-	}
-}
-}