11612Stwisti/*	$FreeBSD$	*/
25776Smikael
31612Stwisti/*
41612Stwisti * Copyright (C) 2012 by Darren Reed.
51612Stwisti *
61612Stwisti * See the IPFILTER.LICENCE file for details on licencing.
71612Stwisti *
81612Stwisti * Added redirect stuff and a variety of bug fixes. (mcn@EnGarde.com)
91612Stwisti */
101612Stwisti#include "ipf.h"
111612Stwisti#include "kmem.h"
121612Stwisti
131612Stwisti#if !defined(lint)
141612Stwististatic const char rcsid[] = "@(#)$Id$";
151612Stwisti#endif
161612Stwisti
171612Stwisti
181612Stwisti/*
191612Stwisti * Get a nat filter type given its kernel address.
201612Stwisti */
211612Stwistichar *
221612Stwistigetnattype(nat)
231612Stwisti	nat_t *nat;
241612Stwisti{
251612Stwisti	static char unknownbuf[20];
261879Sstefank	char *which;
271879Sstefank
281879Sstefank	if (!nat)
291879Sstefank		return "???";
301879Sstefank
311879Sstefank	switch (nat->nat_redir)
321612Stwisti	{
331612Stwisti	case NAT_MAP :
341612Stwisti		which = "MAP";
351612Stwisti		break;
361612Stwisti	case NAT_MAPBLK :
371612Stwisti		which = "MAP-BLOCK";
381612Stwisti		break;
391612Stwisti	case NAT_REDIRECT :
404009Stwisti		which = "RDR";
414009Stwisti		break;
424009Stwisti	case NAT_MAP|NAT_REWRITE :
434009Stwisti		which = "RWR-MAP";
444009Stwisti		break;
454009Stwisti	case NAT_REDIRECT|NAT_REWRITE :
463879Stwisti		which = "RWR-RDR";
471612Stwisti		break;
481612Stwisti	case NAT_BIMAP :
491612Stwisti		which = "BIMAP";
501612Stwisti		break;
511612Stwisti	case NAT_REDIRECT|NAT_DIVERTUDP :
521612Stwisti		which = "DIV-RDR";
531612Stwisti		break;
541612Stwisti	case NAT_MAP|NAT_DIVERTUDP :
551612Stwisti		which = "DIV-MAP";
561612Stwisti		break;
571612Stwisti	case NAT_REDIRECT|NAT_ENCAP :
581612Stwisti		which = "ENC-RDR";
591612Stwisti		break;
601612Stwisti	case NAT_MAP|NAT_ENCAP :
611612Stwisti		which = "ENC-MAP";
621612Stwisti		break;
631612Stwisti	default :
641612Stwisti		sprintf(unknownbuf, "unknown(%04x)",
651612Stwisti			nat->nat_redir & 0xffffffff);
661612Stwisti		which = unknownbuf;
671612Stwisti		break;
681612Stwisti	}
691612Stwisti	return which;
701612Stwisti}
711612Stwisti