/*
 * File: /u/kscott/work/netg.c 
 * Author: K. Scott Rowe 
 * Time-stamp: <10/10/1997 15:58:46 kscott@pescado.tcct.nmt.edu>
 */
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#ifdef linux
#include <sys/socketio.h>
#endif
#ifdef osf1
#include <string.h>
#endif
#ifdef sunos
#include <sys/sockio.h>
#endif
#include <netinet/in.h>

#define DEBUG 0

main(int argc, char *argv[])
{
    int newline = 1 ;
    char c ;
    char ** mode ;
    char mygroup[100] ;
    char *user ;
    char *machine ;
    char *domain ;

				/* print USAGE when no args are given */
    if(argc <= 1 || argc >= 4)
    {
	fprintf(stderr, "Usage: %s [-numd] <NIS Netgroup Name>\n", argv[0]) ;
	exit(1) ;
    }
            
    strcpy(mygroup, argv[1]) ;
    mode = &machine ;
    while ((c = getopt(argc, argv, "umdhn")) != EOF)
    {
        switch (c)
        {
          case 'u':
            mode = &user ;
            break;
          case 'm':
            mode = &machine ;
            break;
          case 'n':
            newline = 0 ;
          case 'd':
            mode = &domain ;
            break;
          default:
            fprintf(stderr, "Usage: %s [-numd] <NIS Netgroup Name>\n", argv[0]) ;
            exit(1) ;
        }
        strcpy(mygroup, argv[2]) ;
    }
    
    setnetgrent (mygroup);
    while (getnetgrent (&machine, &user, &domain) == 1)
    {
        if(newline)
	    fprintf(stdout, "%s\n", *mode) ;
        else
	    fprintf(stdout, "%s ", *mode) ;

    }
    endnetgrent ();
}

