/* * This file contains two print routines used to read the objects structure * and print to the screen. */ #include "objects.h" void dumpnet(char *netname, int verbose) { /* used for searching object list for specific pattern */ objlist *obj; /* if 'netname' is defined, search list until we find this one specifically. * Then restrict printing to just this specific object * Used with -n option */ if(netname != NULL) { /* start both off at the top of the structure */ obj = ohead->nodelink; while(obj->nodelink != NULL) { if((obj->objname != NULL) && (strcmp(obj->objname,netname) == 0)) { /* set pointer to correct spot in the object list */ oprev = obj; /* print out this specific entry we just found */ dumpnetobj(verbose); printf("\n"); } obj = obj->nodelink; } return; } if(netname == NULL) { oprev = ohead->nodelink; /* print a pretty header :) */ printf("%7s%32s%16s%16s%15s%10s\n","Object","Object Name","IP Address","Netmask", "Gateways","Broadcast"); while(oprev->nodelink != NULL) { dumpnetobj(verbose); oprev = oprev->nodelink; printf("\n"); } } } void dumpnetobj(int verbose) { int i; /* contains name of object (type) like group, network... */ char name[4]; /* NUM TYPE OBJECT IPADDR NETMASK GATEWAY BROADCAST */ /* type network */ if(strcmp(oprev->type,"network") == 0) { sprintf(name,"%s","Network"); printf("%7s%32s%16s%16s%15s%10s",name,oprev->objname,oprev->ipaddr,oprev->netmask, oprev->gateways,oprev->broadcast); } /* type gateway */ if(strcmp(oprev->type,"gateway") == 0) { sprintf(name,"%s","Gateway"); printf("%7s%32s%16s%16s%15s%10s",name,oprev->objname,oprev->ipaddr,oprev->netmask, oprev->gateways,oprev->broadcast); } /* type domain */ if(strcmp(oprev->type,"domain") == 0) { sprintf(name,"%s","Domain"); printf("%7s%32s%16c%16c%15s%10c",name,oprev->objname,' ',' ',oprev->gateways,' '); } /* type host */ if(strcmp(oprev->type,"host") == 0) { sprintf(name,"%s","Host"); printf("%7s%32s%16s%16c%15c%10c",name,oprev->objname,oprev->ipaddr,' ',' ',' '); } i=0; if((oprev->iface[0].ifname != NULL) && (strlen(oprev->iface[0].ifname) > 0)) { printf("\nMultiple Interfaces: \n"); } while((oprev->iface[i].ifname != NULL) && (strlen(oprev->iface[i].ifname)) > 0) { printf("%7c%3d%12c%17s%16s%16s",' ',i,' ',oprev->iface[i].ifname, oprev->iface[i].ipaddr,oprev->iface[i].netmask); i++; printf("\n"); } /* type group */ if(strcmp(oprev->type,"group") == 0) { sprintf(name,"%s","Group"); printf("%7s%32s",name,oprev->objname); i=0; while((oprev->group[i] != NULL) && (strlen(oprev->group[i])) > 0) { printf("\n"); printf("%7c%3d%32s",' ',i,oprev->group[i]); find_group(oprev->group[i]); i++; } printf("\n"); } }