-
- if(!strcasecmp(proxy, "none")) {
- proxytype = PROXY_NONE;
- } else if(!strcasecmp(proxy, "socks4")) {
- proxytype = PROXY_SOCKS4;
- } else if(!strcasecmp(proxy, "socks4a")) {
- proxytype = PROXY_SOCKS4A;
- } else if(!strcasecmp(proxy, "socks5")) {
- proxytype = PROXY_SOCKS5;
- } else if(!strcasecmp(proxy, "http")) {
- proxytype = PROXY_HTTP;
- } else if(!strcasecmp(proxy, "exec")) {
- proxytype = PROXY_EXEC;
- } else {
- logger(DEBUG_ALWAYS, LOG_ERR, "Unknown proxy type %s!", proxy);
- return false;
- }
-
- switch(proxytype) {
- case PROXY_NONE:
- default:
- break;
-
- case PROXY_EXEC:
- if(!space || !*space) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Argument expected for proxy type exec!");
- return false;
- }
- proxyhost = xstrdup(space);
- break;
-
- case PROXY_SOCKS4:
- case PROXY_SOCKS4A:
- case PROXY_SOCKS5:
- case PROXY_HTTP:
- proxyhost = space;
- if(space && (space = strchr(space, ' ')))
- *space++ = 0, proxyport = space;
- if(space && (space = strchr(space, ' ')))
- *space++ = 0, proxyuser = space;
- if(space && (space = strchr(space, ' ')))
- *space++ = 0, proxypass = space;
- if(!proxyhost || !*proxyhost || !proxyport || !*proxyport) {
- logger(DEBUG_ALWAYS, LOG_ERR, "Host and port argument expected for proxy!");
- return false;
- }
- proxyhost = xstrdup(proxyhost);
- proxyport = xstrdup(proxyport);
- if(proxyuser && *proxyuser)
- proxyuser = xstrdup(proxyuser);
- if(proxypass && *proxypass)
- proxypass = xstrdup(proxypass);
- break;