#include #include #include #include typedef enum Dns2socksVerbosity { Dns2socksVerbosity_Off = 0, Dns2socksVerbosity_Error, Dns2socksVerbosity_Warn, Dns2socksVerbosity_Info, Dns2socksVerbosity_Debug, Dns2socksVerbosity_Trace, } Dns2socksVerbosity; #ifdef __cplusplus extern "C" { #endif // __cplusplus /** * # Safety * * Start dns2socks * Parameters: * - listen_addr: the listen address, e.g. "172.19.0.1:53", or null to use the default value * - dns_remote_server: the dns remote server, e.g. "8.8.8.8:53", or null to use the default value * - socks5_settings: the socks5 server, e.g. "socks5://[username[:password]@]host:port", or null to use the default value * - force_tcp: whether to force tcp, true or false, default is false * - cache_records: whether to cache dns records, true or false, default is false * - verbosity: the verbosity level, see ArgVerbosity enum, default is ArgVerbosity::Info * - timeout: the timeout in seconds, default is 5 */ jint Java_com_github_shadowsocks_bg_Dns2socks_start(JNIEnv env, JClass _clazz, JString listen_addr, JString dns_remote_server, JString socks5_settings, jboolean force_tcp, jboolean cache_records, jint verbosity, jint timeout); /** * # Safety * * Shutdown dns2socks */ jint Java_com_github_shadowsocks_bg_Dns2socks_stop(JNIEnv _env, JClass); /** * # Safety * * Run the dns2socks component with some arguments. * Parameters: * - listen_addr: the listen address, e.g. "0.0.0.0:53", or null to use the default value * - dns_remote_server: the dns remote server, e.g. "8.8.8.8:53", or null to use the default value * - socks5_settings: the socks5 server, e.g. "socks5://[username[:password]@]host:port", or null to use the default value * - force_tcp: whether to force tcp, true or false, default is false * - cache_records: whether to cache dns records, true or false, default is false * - verbosity: the verbosity level, see ArgVerbosity enum, default is ArgVerbosity::Info * - timeout: the timeout in seconds, default is 5 */ int dns2socks_start(const char *listen_addr, const char *dns_remote_server, const char *socks5_settings, bool force_tcp, bool cache_records, enum Dns2socksVerbosity verbosity, int32_t timeout); /** * # Safety * * Shutdown the dns2socks component. */ int dns2socks_stop(void); /** * # Safety * * set dump log info callback. */ void dns2socks_set_log_callback(void (*callback)(enum Dns2socksVerbosity, const char*, void*), void *ctx); #ifdef __cplusplus } // extern "C" #endif // __cplusplus