if (!cfg.even_proxy_localhost && (sk_hostname_is_local(hostname) || sk_address_is_local(addr))) return 0;
static int proxy_for_destination (SockAddr addr, char * hostname, int port){    int s = 0, e = 0;    char hostip[64];    int hostip_len, hostname_len;    char * exclude_list;    /* we want a string representation of the IP address for comparisons */    sk_getaddr(addr, hostip, 64);    hostip_len = strlen(hostip);    hostname_len = strlen(hostname);    exclude_list = cfg.proxy_exclude_list;    /* now parse the exclude list, and see if either our IP     * or hostname matches anything in it.     */    while (exclude_list[s]) {	while (exclude_list[s] &&	       (isspace(exclude_list[s]) ||		exclude_list[s] == ',')) s++;	if (!exclude_list[s]) break;	e = s;	while (exclude_list[e] &&	       (isalnum(exclude_list[e]) ||		exclude_list[e] == '-' ||		exclude_list[e] == '.' ||		exclude_list[e] == '*')) e++;	if (exclude_list[s] == '*') {	    /* wildcard at beginning of entry */	    if (strnicmp(hostip + hostip_len - (e - s - 1),			 exclude_list + s + 1, e - s - 1) == 0 ||		strnicmp(hostname + hostname_len - (e - s - 1),			 exclude_list + s + 1, e - s - 1) == 0)		return 0; /* IP/hostname range excluded. do not use proxy. */	} else if (exclude_list[e-1] == '*') {	    /* wildcard at end of entry */	    if (strnicmp(hostip, exclude_list + s, e - s - 1) == 0 ||		strnicmp(hostname, exclude_list + s, e - s - 1) == 0)		return 0; /* IP/hostname range excluded. do not use proxy. */	} else {	    /* no wildcard at either end, so let's try an absolute	     * match (ie. a specific IP)	     */	    if (stricmp(hostip, exclude_list + s) == 0)		return 0; /* IP/hostname excluded. do not use proxy. */	    if (stricmp(hostname, exclude_list + s) == 0)		return 0; /* IP/hostname excluded. do not use proxy. */	}	s = e;    }    /* no matches in the exclude list, so use the proxy */    return 1;}