ftp.nice.ch/pub/next/tools/system/Quotas.N.bs.tar.gz#/Quotas/Source/pageq/getpu.c

This is getpu.c in view mode; [Download] [Up]

#include <netinfo/ni.h>
#include <stdio.h>
#include "quota.h"

main(argc,argv)
int argc;
char *argv[];
{
	ni_status rc, ni_printdir();
	void *myhandle;
	ni_namelist mynamelist;
	ni_proplist  myproplist;
	ni_property myproperty;
	ni_entrylist myentrylist;
	ni_id myid;
	char str[256], user[16], domain[16];
	int i, j, q;
	int userp, domainp;

        userp = 0;
        domainp = 0;

        for (i = 1; i < argc; i++) {
                if (argv[i][0] == '-') switch(argv[i][1]) {
                        case 'd': strcpy(domain,argv[++i]); domainp = 1; break;
                        case 'u': strcpy(user,argv[++i]); userp = 1; break;
                        default: usage(argv[0]);
                }
                else {
                        strcpy(user,argv[i]);
                        userp = 1;
                }
        }

        if (domainp == 0) strcpy(domain,DEFAULTDOMAIN);
        if (userp == 0) usage(argv[0]);
	
	/* open netinfo */
	rc = ni_open(NULL, domain, &myhandle);
	if (rc) errexit("ni_open",rc);
	
	sprintf(str,"/users/%s",user);
	/* open the user's home directory */
	rc = ni_pathsearch(myhandle, &myid, str);
	if (rc) errexit("ni_pathsearch",rc);
	
	/* look up the PUPROP property */
	rc = ni_lookupprop(myhandle,&myid,PUPROP,&mynamelist);
	if (rc == NI_NOPROP) {
		q = 0;
		rc = 0;
	}
	else if (rc) errexit("ni_lookupprop",rc);
	else sscanf(mynamelist.ni_namelist_val[0],"%d",&q);
	printf("%d\n",q);
	
	ni_free(myhandle);
	exit(0);
}


errexit(s,rc)
char *s;
ni_status rc;
{
	fprintf(stderr,"%s: %s\n",s,ni_error(rc));
	exit(1);
}

usage(n)
char *n;
{
	fprintf(stderr,"usage: %s user\n",n);
	exit(1);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.