diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/stellar/session_flags.h | 15 | ||||
| -rw-r--r-- | include/stellar/socks.h | 84 | ||||
| -rw-r--r-- | include/stellar/stratum.h | 31 |
3 files changed, 119 insertions, 11 deletions
diff --git a/include/stellar/session_flags.h b/include/stellar/session_flags.h index 92811fa..d2231f3 100644 --- a/include/stellar/session_flags.h +++ b/include/stellar/session_flags.h @@ -2,7 +2,7 @@ #include "stellar/session.h" -enum +enum session_flags_mask { session_flags_bulky_mask = 1, session_flags_cbr_mask, @@ -54,4 +54,15 @@ struct session_flags_message void session_flags_topic_free(void *msg, void *msg_free_arg); int stellar_session_flags_create_topic(struct stellar_module_manager *mod_mgr); -int stellar_session_flags_subscribe(struct stellar_module_manager *mod_mgr, on_msg_cb_func *cb, void *args);
\ No newline at end of file +int stellar_session_flags_subscribe(struct stellar_module_manager *mod_mgr, on_msg_cb_func *cb, void *args); + + + + + +#define SESSION_FLAGS_MODULE_NAME "SESSION_FLAGS" +struct session_flags; +struct session_flags *module_to_session_flags(struct stellar_module *mod); + +typedef void on_session_flags_callback(struct session *sess, enum session_flags_mask flags[], int packet_sequence_array[], size_t n_flags, void *args); +int session_flags_subscribe(struct session_flags *sess_flags, on_session_flags_callback *cb, void *args);
\ No newline at end of file diff --git a/include/stellar/socks.h b/include/stellar/socks.h index dc4ec08..e296803 100644 --- a/include/stellar/socks.h +++ b/include/stellar/socks.h @@ -44,3 +44,87 @@ struct socks_info int stellar_socks_create_topic(struct stellar_module_manager *mod_mgr); int stellar_socks_subscribe(struct stellar_module_manager *mod_mgr, on_msg_cb_func *cb, void *args); + +#include "stellar/session.h" +#include "stellar/module_manager.h" +#define SOCKS_MODULE_NAME "SOCKS" +struct socks; +struct socks *module_to_stratums(struct stellar_module *mod); + + +struct socks_auth +{ + const char *user_name; + const char *password; +}; + +struct socks_connect +{ + const char *ip; + const char *domain; + uint16_t port; +}; + +enum socks_reslut +{ + SOCKS_AUTH_SUCCESS, + SOCKS_AUTH_FAILURE +}; +typedef void on_socks_auth_request_callback(struct session *sess, + int version, + struct socks_auth *auth, + void *args); +typedef void on_socks_connect_request_callback(struct session *sess, + int version, + struct socks_connect *conn_req, + void *args); +typedef void on_socks_reply_callback(struct session *sess, + int version, + enum socks_reslut reslut, + struct socks_connect *conn_rep, + void *args); +int socks_subscribe(struct socks *socks, + on_socks_auth_request_callback *req_cb, + on_socks_connect_request_callback *conn_req_cb, + on_socks_reply_callback *reply_cb, + void *args); + +enum socks_command +{ + SOCKS_CMD_CONNECT, + SOCKS_CMD_AUTH, +}; + +struct socks_info +{ + struct socks_auth *auth; + struct socks_connect *conn; +}; +typedef void on_socks_request_callback(struct session *sess, + int version, + enum socks_command command, + struct socks_info *socks_req, + void *args); +typedef void on_socks_reply_callback(struct session *sess, + int version, + enum socks_reslut reslut, + struct socks_info *socks_rep, + void *args); +int socks_subscribe_v2(struct socks *socks, + on_socks_request_callback *req_cb, + on_socks_reply_callback *reply_cb, + void *args); + +struct socks_info +{ + const char *user_name; + const char *password; + const char *remote_address; + uint16_t port; +}; +typedef void on_socks_callback(struct session *sess, + enum socks_version version, + void *args); +int socks_subscribe_v3(struct socks *socks, + on_socks_callback *socks_cb, + void *args);
\ No newline at end of file diff --git a/include/stellar/stratum.h b/include/stellar/stratum.h index 584a481..2d2a762 100644 --- a/include/stellar/stratum.h +++ b/include/stellar/stratum.h @@ -2,6 +2,16 @@ #include "stellar/module_manager.h" +int stellar_stratum_create_topic(struct stellar_module_manager *mod_mgr); +int stellar_stratum_subscribe(struct stellar_module_manager *mod_mgr, on_msg_cb_func *cb, void *args); + + +#include "stellar/session.h" +#include "stellar/module_manager.h" +#define STRATUM_MODULE_NAME "STRATUM" +struct stratum; +struct stratum *module_to_stratums(struct stellar_module *mod); + enum cryptocurrency_type { ETH=1, @@ -10,13 +20,16 @@ enum cryptocurrency_type struct stratum_field { - enum cryptocurrency_type type; - struct iovec mining_pools; - struct iovec mining_program; - struct iovec mining_subscribe; - const struct session *session; - -};//message data + const char *field_name; + size_t field_name_len; + const char *field_value; + size_t field_value_len; +}; -int stellar_stratum_create_topic(struct stellar_module_manager *mod_mgr); -int stellar_stratum_subscribe(struct stellar_module_manager *mod_mgr, on_msg_cb_func *cb, void *args);
\ No newline at end of file +typedef void on_stratum_callback(struct session *sess, + enum cryptocurrency_type type, + struct stratum_field *mining_pools, + struct stratum_field *mining_program, + struct stratum_field *mining_subscribe, + void *args); +int stratum_subscribe(struct stratum *stratum, on_stratum_callback *cb, void *args);
\ No newline at end of file |
