conf: merge upstream/upstream_none into single regex/handler
This commit is contained in:
parent
bad36cd9cd
commit
551e914d24
50
src/conf.c
50
src/conf.c
@ -86,7 +86,7 @@
|
|||||||
* number. Given the usual structure of the configuration file, sixteen
|
* number. Given the usual structure of the configuration file, sixteen
|
||||||
* substring matches should be plenty.
|
* substring matches should be plenty.
|
||||||
*/
|
*/
|
||||||
#define RE_MAX_MATCHES 16
|
#define RE_MAX_MATCHES 24
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All configuration handling functions are REQUIRED to be defined
|
* All configuration handling functions are REQUIRED to be defined
|
||||||
@ -162,7 +162,6 @@ static HANDLE_FUNC (handle_xtinyproxy);
|
|||||||
|
|
||||||
#ifdef UPSTREAM_SUPPORT
|
#ifdef UPSTREAM_SUPPORT
|
||||||
static HANDLE_FUNC (handle_upstream);
|
static HANDLE_FUNC (handle_upstream);
|
||||||
static HANDLE_FUNC (handle_upstream_no);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void config_free_regex (void);
|
static void config_free_regex (void);
|
||||||
@ -252,16 +251,12 @@ struct {
|
|||||||
STDCONF ("reversepath", STR "(" WS STR ")?", handle_reversepath),
|
STDCONF ("reversepath", STR "(" WS STR ")?", handle_reversepath),
|
||||||
#endif
|
#endif
|
||||||
#ifdef UPSTREAM_SUPPORT
|
#ifdef UPSTREAM_SUPPORT
|
||||||
{
|
STDCONF ("upstream",
|
||||||
BEGIN "(upstream)" WS "(none)" WS STR END, handle_upstream_no, NULL
|
"(" "(none)" WS STR ")|" \
|
||||||
},
|
"(" "(http|socks4|socks5)" WS \
|
||||||
{
|
"(" USERNAME /*username*/ ":" PASSWORD /*password*/ "@" ")?"
|
||||||
BEGIN "(upstream)" WS "(http|socks4|socks5)" WS
|
"(" IP "|" ALNUM ")"
|
||||||
"(" USERNAME /*username*/ ":" PASSWORD /*password*/ "@" ")?"
|
":" INT "(" WS STR ")?" ")", handle_upstream),
|
||||||
"(" IP "|" ALNUM ")"
|
|
||||||
":" INT "(" WS STR ")?"
|
|
||||||
END, handle_upstream, NULL
|
|
||||||
},
|
|
||||||
#endif
|
#endif
|
||||||
/* loglevel */
|
/* loglevel */
|
||||||
STDCONF ("loglevel", "(critical|error|warning|notice|connect|info)",
|
STDCONF ("loglevel", "(critical|error|warning|notice|connect|info)",
|
||||||
@ -1028,10 +1023,26 @@ static enum proxy_type pt_from_string(const char *s)
|
|||||||
static HANDLE_FUNC (handle_upstream)
|
static HANDLE_FUNC (handle_upstream)
|
||||||
{
|
{
|
||||||
char *ip;
|
char *ip;
|
||||||
int port, mi = 2;
|
int port, mi;
|
||||||
char *domain = 0, *user = 0, *pass = 0, *tmp;
|
char *domain = 0, *user = 0, *pass = 0, *tmp;
|
||||||
enum proxy_type pt;
|
enum proxy_type pt;
|
||||||
|
|
||||||
|
if (match[3].rm_so != -1) {
|
||||||
|
tmp = get_string_arg (line, &match[3]);
|
||||||
|
if(!strcmp(tmp, "none")) {
|
||||||
|
safefree(tmp);
|
||||||
|
if (match[4].rm_so == -1) return -1;
|
||||||
|
domain = get_string_arg (line, &match[4]);
|
||||||
|
if (!domain)
|
||||||
|
return -1;
|
||||||
|
upstream_add (NULL, 0, domain, 0, 0, PT_NONE, &conf->upstream_list);
|
||||||
|
safefree (domain);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mi = 6;
|
||||||
|
|
||||||
tmp = get_string_arg (line, &match[mi]);
|
tmp = get_string_arg (line, &match[mi]);
|
||||||
pt = pt_from_string(tmp);
|
pt = pt_from_string(tmp);
|
||||||
safefree(tmp);
|
safefree(tmp);
|
||||||
@ -1066,17 +1077,4 @@ static HANDLE_FUNC (handle_upstream)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HANDLE_FUNC (handle_upstream_no)
|
|
||||||
{
|
|
||||||
char *domain;
|
|
||||||
|
|
||||||
domain = get_string_arg (line, &match[3]);
|
|
||||||
if (!domain)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
upstream_add (NULL, 0, domain, 0, 0, PT_NONE, &conf->upstream_list);
|
|
||||||
safefree (domain);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user