add socks_decoder, stratum_decoder and session_flags
This commit is contained in:
55
include/stellar/session_flags.h
Normal file
55
include/stellar/session_flags.h
Normal file
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define MESSAGE_MAGIC 0x12345678
|
||||
|
||||
#define SESSION_FLAGS_MESSAGE_TOPIC "TOPIC_SESSION_FLAGS"
|
||||
|
||||
enum
|
||||
{
|
||||
session_flags_bulky_mask = 1,
|
||||
session_flags_cbr_mask,
|
||||
session_flags_local_client_mask,
|
||||
session_flags_local_server_mask,
|
||||
session_flags_download_mask,
|
||||
session_flags_interactive_mask,
|
||||
session_flags_inbound_mask,
|
||||
session_flags_outbound_mask,
|
||||
session_flags_pseudo_unidirectional_mask,
|
||||
session_flags_streaming_mask,
|
||||
session_flags_unidirectional_mask,
|
||||
session_flags_random_looking_mask,
|
||||
session_flags_c2s_mask,
|
||||
session_flags_s2c_mask,
|
||||
session_flags_bidirectional_mask,
|
||||
session_flags_tunneling_mask,
|
||||
session_flags_all_mask
|
||||
};
|
||||
|
||||
#define SESSION_FLAGS_START (0x0000000000000001)
|
||||
#define SESSION_FLAGS_BULKY (SESSION_FLAGS_START << session_flags_bulky_mask)
|
||||
#define SESSION_FLAGS_CBR (SESSION_FLAGS_START << session_flags_cbr_mask)
|
||||
#define SESSION_FLAGS_LOCAL_CLIENT (SESSION_FLAGS_START << session_flags_local_client_mask)
|
||||
#define SESSION_FLAGS_LOCAL_SERVER (SESSION_FLAGS_START << session_flags_local_server_mask)
|
||||
#define SESSION_FLAGS_DOWNLOAD (SESSION_FLAGS_START << session_flags_download_mask)
|
||||
#define SESSION_FLAGS_INTERACTIVE (SESSION_FLAGS_START << session_flags_interactive_mask)
|
||||
#define SESSION_FLAGS_INBOUND (SESSION_FLAGS_START << session_flags_inbound_mask)
|
||||
#define SESSION_FLAGS_OUTBOUND (SESSION_FLAGS_START << session_flags_outbound_mask)
|
||||
#define SESSION_FLAGS_PSEUDO_UNIDIRECTIONAL (SESSION_FLAGS_START << session_flags_pseudo_unidirectional_mask)
|
||||
#define SESSION_FLAGS_STREAMING (SESSION_FLAGS_START << session_flags_streaming_mask)
|
||||
#define SESSION_FLAGS_UNIDIRECTIONAL (SESSION_FLAGS_START << session_flags_unidirectional_mask)
|
||||
#define SESSION_FLAGS_RANDOM_LOOKING (SESSION_FLAGS_START << session_flags_random_looking_mask)
|
||||
#define SESSION_FLAGS_C2S (SESSION_FLAGS_START << session_flags_c2s_mask)
|
||||
#define SESSION_FLAGS_S2C (SESSION_FLAGS_START << session_flags_s2c_mask)
|
||||
#define SESSION_FLAGS_BIDIRECTIONAL (SESSION_FLAGS_START << session_flags_bidirectional_mask)
|
||||
#define SESSION_FLAGS_TUNNELING (SESSION_FLAGS_START << session_flags_tunneling_mask)
|
||||
|
||||
struct session_flags_message
|
||||
{
|
||||
int magic;
|
||||
uint64_t flags;
|
||||
uint32_t array_num;
|
||||
uint32_t *packet_sequence_array;
|
||||
};
|
||||
44
include/stellar/socks_decoder.h
Normal file
44
include/stellar/socks_decoder.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#include <sys/uio.h>
|
||||
|
||||
#include <netinet/in.h>
|
||||
#ifndef IPV6_ADDR_LEN
|
||||
#define IPV6_ADDR_LEN (sizeof(struct in6_addr))
|
||||
#endif
|
||||
|
||||
|
||||
#define SOCKS_MESSAGE_TOPIC "TOPIC_SOCKS"
|
||||
|
||||
|
||||
enum socks_addr_type
|
||||
{
|
||||
SOCKS_ADDR_IPV4,
|
||||
SOCKS_ADDR_IPV6,
|
||||
SOCKS_ADDR_FQDN
|
||||
};
|
||||
|
||||
struct socks_addr
|
||||
{
|
||||
enum socks_addr_type type;
|
||||
union
|
||||
{
|
||||
uint32_t ipv4; /* network order */
|
||||
uint8_t ipv6[IPV6_ADDR_LEN] ;
|
||||
struct iovec fqdn;
|
||||
};
|
||||
uint16_t port; /* network order */
|
||||
};
|
||||
|
||||
enum socks_version
|
||||
{
|
||||
SOCKS_VERSION_4,
|
||||
SOCKS_VERSION_5
|
||||
};
|
||||
|
||||
struct socks_info
|
||||
{
|
||||
enum socks_version version;
|
||||
struct socks_addr dst_addr;
|
||||
struct iovec user_name;
|
||||
struct iovec password;
|
||||
};//message data
|
||||
|
||||
18
include/stellar/stratum_decoder.h
Normal file
18
include/stellar/stratum_decoder.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <sys/uio.h>
|
||||
|
||||
#define STRATUM_MESSAGE_TOPIC "TOPIC_STRATUM"
|
||||
|
||||
enum cryptocurrency_type
|
||||
{
|
||||
ETH=1,
|
||||
OTHER=2
|
||||
};
|
||||
|
||||
struct stratum_field
|
||||
{
|
||||
enum cryptocurrency_type type;
|
||||
struct iovec mining_pools;
|
||||
struct iovec mining_program;
|
||||
struct iovec mining_subscribe;
|
||||
|
||||
};//message data
|
||||
Reference in New Issue
Block a user