예제 #1
0
static struct in_addr *
ipparse_hostnetwork(const char *name, unsigned int *naddrs)
{
	struct in_addr *addrptmp, *addrp;

	if ((addrptmp = xtables_numeric_to_ipaddr(name)) != NULL ||
	    (addrptmp = network_to_ipaddr(name)) != NULL) {
		addrp = xtables_malloc(sizeof(struct in_addr));
		memcpy(addrp, addrptmp, sizeof(*addrp));
		*naddrs = 1;
		return addrp;
	}
	if ((addrptmp = host_to_ipaddr(name, naddrs)) != NULL)
		return addrptmp;

	xt_params->exit_err(PARAMETER_PROBLEM, "host/network `%s' not found", name);
}
예제 #2
0
파일: proxy.c 프로젝트: TC1211/proxy
/******************************************************

int parse_request: deals with GET requests

******************************************************/
int parse_request(char *msg, int sock) {
	printf(" *** INCOMING REQUEST ***\n");
	char *msg_whole;
	msg_whole = malloc(MAX_MSG_LENGTH);
	strcpy(msg_whole, msg);
	char *URL = get_URL_from_request(msg); //get target URL; will need for caching
	char *host = get_host_from_request(msg); //get host
	printf("FINAL URL: %s\nFINAL HOST: %s\n", URL, host);
	char *ip_addr = host_to_ipaddr(host);
	if(ip_addr == NULL)	return 1;
	if(cache_check(URL, sock))	return 0;
	client(ip_addr, msg_whole, sock, URL);


	//free(URL);
	return 0;
}