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