mirror of
https://github.com/shadowsocks/shadowsocks-libev.git
synced 2026-11-02 07:53:43 +00:00
Refine json config handling. #2308
This commit is contained in:
+9
-2
@@ -68,9 +68,10 @@ parse_addr(const char *str_in, ss_addr_t *addr)
|
||||
if (str_in == NULL)
|
||||
return;
|
||||
|
||||
int ipv6 = 0, ret = -1, n = 0;
|
||||
int ipv6 = 0, ret = -1, n = 0, len;
|
||||
char *pch;
|
||||
char *str = strdup(str_in);
|
||||
len = strlen(str_in);
|
||||
|
||||
struct cork_ip ip;
|
||||
if (cork_ip_init(&ip, str) != -1) {
|
||||
@@ -85,6 +86,7 @@ parse_addr(const char *str_in, ss_addr_t *addr)
|
||||
ret = pch - str;
|
||||
pch = strchr(pch + 1, ':');
|
||||
}
|
||||
|
||||
if (n > 1) {
|
||||
ipv6 = 1;
|
||||
if (str[ret - 1] != ']') {
|
||||
@@ -105,7 +107,12 @@ parse_addr(const char *str_in, ss_addr_t *addr)
|
||||
} else {
|
||||
addr->host = ss_strndup(str, ret);
|
||||
}
|
||||
addr->port = strdup(str + ret + 1);
|
||||
if (ret < len - 1)
|
||||
{
|
||||
addr->port = strdup(str + ret + 1);
|
||||
} else {
|
||||
addr->port = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
free(str);
|
||||
|
||||
+3
-2
@@ -1465,12 +1465,13 @@ main(int argc, char **argv)
|
||||
char *plugin_port = NULL;
|
||||
char tmp_port[8];
|
||||
|
||||
srand(time(NULL));
|
||||
|
||||
int remote_num = 0;
|
||||
ss_addr_t remote_addr[MAX_REMOTE_NUM];
|
||||
char *remote_port = NULL;
|
||||
|
||||
memset(remote_addr, 0, sizeof(ss_addr_t) * MAX_REMOTE_NUM);
|
||||
srand(time(NULL));
|
||||
|
||||
static struct option long_options[] = {
|
||||
{ "reuse-port", no_argument, NULL, GETOPT_VAL_REUSE_PORT },
|
||||
{ "fast-open", no_argument, NULL, GETOPT_VAL_FAST_OPEN },
|
||||
|
||||
+6
-4
@@ -854,13 +854,15 @@ main(int argc, char **argv)
|
||||
char *plugin_port = NULL;
|
||||
char tmp_port[8];
|
||||
|
||||
int remote_num = 0;
|
||||
ss_addr_t remote_addr[MAX_REMOTE_NUM];
|
||||
char *remote_port = NULL;
|
||||
|
||||
int dscp_num = 0;
|
||||
ss_dscp_t *dscp = NULL;
|
||||
|
||||
int remote_num = 0;
|
||||
char *remote_port = NULL;
|
||||
ss_addr_t remote_addr[MAX_REMOTE_NUM];
|
||||
|
||||
memset(remote_addr, 0, sizeof(ss_addr_t) * MAX_REMOTE_NUM);
|
||||
|
||||
static struct option long_options[] = {
|
||||
{ "fast-open", no_argument, NULL, GETOPT_VAL_FAST_OPEN },
|
||||
{ "mtu", required_argument, NULL, GETOPT_VAL_MTU },
|
||||
|
||||
+2
-2
@@ -1610,11 +1610,11 @@ main(int argc, char **argv)
|
||||
char *plugin_host = NULL;
|
||||
char *plugin_port = NULL;
|
||||
char tmp_port[8];
|
||||
char *nameservers = NULL;
|
||||
|
||||
int server_num = 0;
|
||||
ss_addr_t server_addr[MAX_REMOTE_NUM];
|
||||
|
||||
char *nameservers = NULL;
|
||||
memset(server_addr, 0, sizeof(ss_addr_t) * MAX_REMOTE_NUM);
|
||||
|
||||
static struct option long_options[] = {
|
||||
{ "fast-open", no_argument, NULL, GETOPT_VAL_FAST_OPEN },
|
||||
|
||||
+6
-4
@@ -885,13 +885,15 @@ main(int argc, char **argv)
|
||||
char *plugin_port = NULL;
|
||||
char tmp_port[8];
|
||||
|
||||
int remote_num = 0;
|
||||
ss_addr_t remote_addr[MAX_REMOTE_NUM];
|
||||
char *remote_port = NULL;
|
||||
|
||||
ss_addr_t tunnel_addr = { .host = NULL, .port = NULL };
|
||||
char *tunnel_addr_str = NULL;
|
||||
|
||||
int remote_num = 0;
|
||||
char *remote_port = NULL;
|
||||
ss_addr_t remote_addr[MAX_REMOTE_NUM];
|
||||
|
||||
memset(remote_addr, 0, sizeof(ss_addr_t) * MAX_REMOTE_NUM);
|
||||
|
||||
static struct option long_options[] = {
|
||||
{ "fast-open", no_argument, NULL, GETOPT_VAL_FAST_OPEN },
|
||||
{ "mtu", required_argument, NULL, GETOPT_VAL_MTU },
|
||||
|
||||
Reference in New Issue
Block a user