summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/mongoose/examples/websocket_ssl_proxy/net_skeleton.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/mongoose/examples/websocket_ssl_proxy/net_skeleton.h')
-rw-r--r--3rdparty/mongoose/examples/websocket_ssl_proxy/net_skeleton.h253
1 files changed, 0 insertions, 253 deletions
diff --git a/3rdparty/mongoose/examples/websocket_ssl_proxy/net_skeleton.h b/3rdparty/mongoose/examples/websocket_ssl_proxy/net_skeleton.h
deleted file mode 100644
index 4d1c33fc820..00000000000
--- a/3rdparty/mongoose/examples/websocket_ssl_proxy/net_skeleton.h
+++ /dev/null
@@ -1,253 +0,0 @@
-// Copyright (c) 2014 Cesanta Software Limited
-// All rights reserved
-//
-// This software is dual-licensed: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License version 2 as
-// published by the Free Software Foundation. For the terms of this
-// license, see <http://www.gnu.org/licenses/>.
-//
-// You are free to use this software under the terms of the GNU General
-// Public License, but WITHOUT ANY WARRANTY; without even the implied
-// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-// See the GNU General Public License for more details.
-//
-// Alternatively, you can license this software under a commercial
-// license, as set out in <http://cesanta.com/>.
-//
-// $Date: 2014-09-28 05:04:41 UTC $
-
-#ifndef NS_SKELETON_HEADER_INCLUDED
-#define NS_SKELETON_HEADER_INCLUDED
-
-#define NS_SKELETON_VERSION "2.1.0"
-
-#undef UNICODE // Use ANSI WinAPI functions
-#undef _UNICODE // Use multibyte encoding on Windows
-#define _MBCS // Use multibyte encoding on Windows
-#define _INTEGRAL_MAX_BITS 64 // Enable _stati64() on Windows
-#define _CRT_SECURE_NO_WARNINGS // Disable deprecation warning in VS2005+
-#undef WIN32_LEAN_AND_MEAN // Let windows.h always include winsock2.h
-#define _XOPEN_SOURCE 600 // For flockfile() on Linux
-#define __STDC_FORMAT_MACROS // <inttypes.h> wants this for C++
-#define __STDC_LIMIT_MACROS // C++ wants that for INT64_MAX
-#ifndef _LARGEFILE_SOURCE
-#define _LARGEFILE_SOURCE // Enable fseeko() and ftello() functions
-#endif
-#define _FILE_OFFSET_BITS 64 // Enable 64-bit file offsets
-
-#ifdef _MSC_VER
-#pragma warning (disable : 4127) // FD_SET() emits warning, disable it
-#pragma warning (disable : 4204) // missing c99 support
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <assert.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <signal.h>
-
-#ifdef _WIN32
-#ifdef _MSC_VER
-#pragma comment(lib, "ws2_32.lib") // Linking with winsock library
-#endif
-#include <windows.h>
-#include <process.h>
-#ifndef EINPROGRESS
-#define EINPROGRESS WSAEINPROGRESS
-#endif
-#ifndef EWOULDBLOCK
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#endif
-#ifndef __func__
-#define STRX(x) #x
-#define STR(x) STRX(x)
-#define __func__ __FILE__ ":" STR(__LINE__)
-#endif
-#ifndef va_copy
-#define va_copy(x,y) x = y
-#endif // MINGW #defines va_copy
-#define snprintf _snprintf
-#define vsnprintf _vsnprintf
-#define sleep(x) Sleep((x) * 1000)
-#define to64(x) _atoi64(x)
-typedef int socklen_t;
-typedef unsigned char uint8_t;
-typedef unsigned int uint32_t;
-typedef unsigned short uint16_t;
-typedef unsigned __int64 uint64_t;
-typedef __int64 int64_t;
-typedef SOCKET sock_t;
-typedef struct _stati64 ns_stat_t;
-#ifndef S_ISDIR
-#define S_ISDIR(x) ((x) & _S_IFDIR)
-#endif
-#else
-#include <errno.h>
-#include <fcntl.h>
-#include <netdb.h>
-#include <pthread.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <arpa/inet.h> // For inet_pton() when NS_ENABLE_IPV6 is defined
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-#define closesocket(x) close(x)
-#define __cdecl
-#define INVALID_SOCKET (-1)
-#define to64(x) strtoll(x, NULL, 10)
-typedef int sock_t;
-typedef struct stat ns_stat_t;
-#endif
-
-#ifdef NS_ENABLE_DEBUG
-#define DBG(x) do { printf("%-20s ", __func__); printf x; putchar('\n'); \
- fflush(stdout); } while(0)
-#else
-#define DBG(x)
-#endif
-
-#ifndef ARRAY_SIZE
-#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
-#endif
-
-#ifdef NS_ENABLE_SSL
-#ifdef __APPLE__
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#include <openssl/ssl.h>
-#else
-typedef void *SSL;
-typedef void *SSL_CTX;
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif // __cplusplus
-
-union socket_address {
- struct sockaddr sa;
- struct sockaddr_in sin;
-#ifdef NS_ENABLE_IPV6
- struct sockaddr_in6 sin6;
-#else
- struct sockaddr sin6;
-#endif
-};
-
-// Describes chunk of memory
-struct ns_str {
- const char *p;
- size_t len;
-};
-
-// IO buffers interface
-struct iobuf {
- char *buf;
- size_t len;
- size_t size;
-};
-
-void iobuf_init(struct iobuf *, size_t initial_size);
-void iobuf_free(struct iobuf *);
-size_t iobuf_append(struct iobuf *, const void *data, size_t data_size);
-void iobuf_remove(struct iobuf *, size_t data_size);
-void iobuf_resize(struct iobuf *, size_t new_size);
-
-// Callback function (event handler) prototype, must be defined by user.
-// Net skeleton will call event handler, passing events defined above.
-struct ns_connection;
-typedef void (*ns_callback_t)(struct ns_connection *, int event_num, void *evp);
-
-// Events. Meaning of event parameter (evp) is given in the comment.
-#define NS_POLL 0 // Sent to each connection on each call to ns_mgr_poll()
-#define NS_ACCEPT 1 // New connection accept()-ed. union socket_address *addr
-#define NS_CONNECT 2 // connect() succeeded or failed. int *success_status
-#define NS_RECV 3 // Data has benn received. int *num_bytes
-#define NS_SEND 4 // Data has been written to a socket. int *num_bytes
-#define NS_CLOSE 5 // Connection is closed. NULL
-
-
-struct ns_mgr {
- struct ns_connection *active_connections;
- const char *hexdump_file; // Debug hexdump file path
- sock_t ctl[2]; // Socketpair for mg_wakeup()
- void *user_data; // User data
-};
-
-
-struct ns_connection {
- struct ns_connection *next, *prev; // ns_mgr::active_connections linkage
- struct ns_connection *listener; // Set only for accept()-ed connections
- struct ns_mgr *mgr;
-
- sock_t sock; // Socket
- union socket_address sa; // Peer address
- struct iobuf recv_iobuf; // Received data
- struct iobuf send_iobuf; // Data scheduled for sending
- SSL *ssl;
- SSL_CTX *ssl_ctx;
- void *user_data; // User-specific data
- void *proto_data; // Application protocol-specific data
- time_t last_io_time; // Timestamp of the last socket IO
- ns_callback_t callback; // Event handler function
-
- unsigned int flags;
-#define NSF_FINISHED_SENDING_DATA (1 << 0)
-#define NSF_BUFFER_BUT_DONT_SEND (1 << 1)
-#define NSF_SSL_HANDSHAKE_DONE (1 << 2)
-#define NSF_CONNECTING (1 << 3)
-#define NSF_CLOSE_IMMEDIATELY (1 << 4)
-#define NSF_WANT_READ (1 << 5)
-#define NSF_WANT_WRITE (1 << 6)
-#define NSF_LISTENING (1 << 7)
-#define NSF_UDP (1 << 8)
-
-#define NSF_USER_1 (1 << 20)
-#define NSF_USER_2 (1 << 21)
-#define NSF_USER_3 (1 << 22)
-#define NSF_USER_4 (1 << 23)
-#define NSF_USER_5 (1 << 24)
-#define NSF_USER_6 (1 << 25)
-};
-
-void ns_mgr_init(struct ns_mgr *, void *user_data);
-void ns_mgr_free(struct ns_mgr *);
-time_t ns_mgr_poll(struct ns_mgr *, int milli);
-void ns_broadcast(struct ns_mgr *, ns_callback_t, void *, size_t);
-
-struct ns_connection *ns_next(struct ns_mgr *, struct ns_connection *);
-struct ns_connection *ns_add_sock(struct ns_mgr *, sock_t,
- ns_callback_t, void *);
-struct ns_connection *ns_bind(struct ns_mgr *, const char *,
- ns_callback_t, void *);
-struct ns_connection *ns_connect(struct ns_mgr *, const char *,
- ns_callback_t, void *);
-
-int ns_send(struct ns_connection *, const void *buf, int len);
-int ns_printf(struct ns_connection *, const char *fmt, ...);
-int ns_vprintf(struct ns_connection *, const char *fmt, va_list ap);
-
-// Utility functions
-void *ns_start_thread(void *(*f)(void *), void *p);
-int ns_socketpair(sock_t [2]);
-int ns_socketpair2(sock_t [2], int sock_type); // SOCK_STREAM or SOCK_DGRAM
-void ns_set_close_on_exec(sock_t);
-void ns_sock_to_str(sock_t sock, char *buf, size_t len, int flags);
-int ns_hexdump(const void *buf, int len, char *dst, int dst_len);
-int ns_avprintf(char **buf, size_t size, const char *fmt, va_list ap);
-int ns_resolve(const char *domain_name, char *ip_addr_buf, size_t buf_len);
-
-#ifdef __cplusplus
-}
-#endif // __cplusplus
-
-#endif // NS_SKELETON_HEADER_INCLUDED