root/sbin/ipf/libipf/optprintv6.c

/*
 * Copyright (C) 2012 by Darren Reed.
 *
 * See the IPFILTER.LICENCE file for details on licencing.
 *
 * $Id$
 */
#include "ipf.h"


#ifdef  USE_INET6

void
optprintv6(u_short *sec, u_long optmsk, u_long optbits)
{
        u_short secmsk = sec[0], secbits = sec[1];
        struct ipopt_names *io;
        char *s;

        s = " v6hdr ";
        for (io = v6ionames; io->on_name; io++)
                if ((io->on_bit & optmsk) &&
                    ((io->on_bit & optmsk) == (io->on_bit & optbits))) {
                        printf("%s%s", s, io->on_name);
                        s = ",";
                }

        if ((optmsk && (optmsk != optbits)) ||
            (secmsk && (secmsk != secbits))) {
                s = " ";
                printf(" not v6hdrs");
                if (optmsk != optbits) {
                        for (io = v6ionames; io->on_name; io++)
                                if ((io->on_bit & optmsk) &&
                                    ((io->on_bit & optmsk) !=
                                     (io->on_bit & optbits))) {
                                        printf("%s%s", s, io->on_name);
                                        s = ",";
                                }
                }

        }
}
#endif