MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ProxyCheck

Function ProxyCheck

freebsd/netinet/libalias/alias_proxy.c:458–493  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

456*/
457
458int
459ProxyCheck(struct libalias *la, struct in_addr *proxy_server_addr,
460 u_short * proxy_server_port, struct in_addr src_addr,
461 struct in_addr dst_addr, u_short dst_port, u_char ip_p)
462{
463 struct proxy_entry *ptr;
464
465 LIBALIAS_LOCK_ASSERT(la);
466
467 ptr = la->proxyList;
468 while (ptr != NULL) {
469 u_short proxy_port;
470
471 proxy_port = ptr->proxy_port;
472 if ((dst_port == proxy_port || proxy_port == 0)
473 && ip_p == ptr->proto
474 && src_addr.s_addr != ptr->server_addr.s_addr) {
475 struct in_addr src_addr_masked;
476 struct in_addr dst_addr_masked;
477
478 src_addr_masked.s_addr = src_addr.s_addr & ptr->src_mask.s_addr;
479 dst_addr_masked.s_addr = dst_addr.s_addr & ptr->dst_mask.s_addr;
480
481 if ((src_addr_masked.s_addr == ptr->src_addr.s_addr)
482 && (dst_addr_masked.s_addr == ptr->dst_addr.s_addr)) {
483 if ((*proxy_server_port = ptr->server_port) == 0)
484 *proxy_server_port = dst_port;
485 *proxy_server_addr = ptr->server_addr;
486 return (ptr->proxy_type);
487 }
488 }
489 ptr = ptr->next;
490 }
491
492 return (0);
493}
494
495void
496ProxyModify(struct libalias *la, struct alias_link *lnk,

Callers 2

UdpAliasOutFunction · 0.85
TcpAliasOutFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected