Home | History | Annotate | Line # | Download | only in lib
      1  1.2   darrenr /*	$NetBSD: printaddr.c,v 1.2 2012/07/22 14:27:36 darrenr Exp $	*/
      2  1.1  christos 
      3  1.1  christos /*
      4  1.2   darrenr  * Copyright (C) 2012 by Darren Reed.
      5  1.1  christos  *
      6  1.1  christos  * See the IPFILTER.LICENCE file for details on licencing.
      7  1.1  christos  *
      8  1.2   darrenr  * Id: printaddr.c,v 1.1.1.2 2012/07/22 13:44:40 darrenr Exp $
      9  1.1  christos  */
     10  1.1  christos 
     11  1.1  christos #include "ipf.h"
     12  1.1  christos 
     13  1.1  christos void
     14  1.1  christos printaddr(family, type, base, ifidx, addr, mask)
     15  1.1  christos 	int family, type, ifidx;
     16  1.1  christos 	char *base;
     17  1.1  christos 	u_32_t *addr, *mask;
     18  1.1  christos {
     19  1.1  christos 	char *suffix;
     20  1.1  christos 
     21  1.1  christos 	switch (type)
     22  1.1  christos 	{
     23  1.1  christos 	case FRI_BROADCAST :
     24  1.1  christos 		suffix = "bcast";
     25  1.1  christos 		break;
     26  1.1  christos 
     27  1.1  christos 	case FRI_DYNAMIC :
     28  1.1  christos 		PRINTF("%s", base + ifidx);
     29  1.1  christos 		printmask(family, mask);
     30  1.1  christos 		suffix = NULL;
     31  1.1  christos 		break;
     32  1.1  christos 
     33  1.1  christos 	case FRI_NETWORK :
     34  1.1  christos 		suffix = "net";
     35  1.1  christos 		break;
     36  1.1  christos 
     37  1.1  christos 	case FRI_NETMASKED :
     38  1.1  christos 		suffix = "netmasked";
     39  1.1  christos 		break;
     40  1.1  christos 
     41  1.1  christos 	case FRI_PEERADDR :
     42  1.1  christos 		suffix = "peer";
     43  1.1  christos 		break;
     44  1.1  christos 
     45  1.1  christos 	case FRI_LOOKUP :
     46  1.1  christos 		suffix = NULL;
     47  1.1  christos 		printlookup(base, (i6addr_t *)addr, (i6addr_t *)mask);
     48  1.1  christos 		break;
     49  1.1  christos 
     50  1.1  christos 	case FRI_NONE :
     51  1.1  christos 	case FRI_NORMAL :
     52  1.1  christos 		printhostmask(family, addr, mask);
     53  1.1  christos 		suffix = NULL;
     54  1.1  christos 		break;
     55  1.1  christos 	case FRI_RANGE :
     56  1.1  christos 		printhost(family, addr);
     57  1.1  christos 		putchar('-');
     58  1.1  christos 		printhost(family, mask);
     59  1.1  christos 		suffix = NULL;
     60  1.1  christos 		break;
     61  1.1  christos 	case FRI_SPLIT :
     62  1.1  christos 		printhost(family, addr);
     63  1.1  christos 		putchar(',');
     64  1.1  christos 		printhost(family, mask);
     65  1.1  christos 		suffix = NULL;
     66  1.1  christos 		break;
     67  1.1  christos 	default :
     68  1.1  christos 		PRINTF("<%d>", type);
     69  1.1  christos 		printmask(family, mask);
     70  1.1  christos 		suffix = NULL;
     71  1.1  christos 		break;
     72  1.1  christos 	}
     73  1.1  christos 
     74  1.1  christos 	if (suffix != NULL) {
     75  1.1  christos 		PRINTF("%s/%s", base + ifidx, suffix);
     76  1.1  christos 	}
     77  1.1  christos }
     78