#include <sia.h>
#include <siad.h>
 
#ifndef NOUID
#define	NOUID	((uid_t) -1)
#endif
 
main (argc, argv)
int argc;
char **argv;
{
        int i;
	SIAENTITY *entity = NULL;
	int (*sia_collect)() = sia_collect_trm;
	char uname[32];
	struct passwd *pw;
	uid_t myuid;
 
	myuid = getluid();
	if (myuid == NOUID)
		myuid = getuid(); /* get ruid */
	pw = getpwuid(myuid);
	if (!pw || !pw->pw_name || !*pw->pw_name) {
		sleep(1);	/* slow down attacks */
		(void) fprintf(stderr, "\nsorry");
		return 1;
	}
	(void) strcpy(uname, pw->pw_name);
	i = sia_ses_init(&entity, argc, argv, NULL, uname, \
                                              NULL, TRUE, NULL);
	if (i != SIASUCCESS) {
		sleep(1);	/* slow down attacks */
		(void) fprintf(stderr, "\nsorry");
		return 1;
	}

	i = sia_ses_suauthent(sia_collect, entity);
	if (i != SIASUCCESS) {
		(void) sia_ses_release(&entity);
		sleep(3);	/* slow down attacks */
		(void) fprintf(stderr, "sorry");
		return 1;
	}

	i = sia_ses_release(&entity);
	if (i != SIASUCCESS) {
		sleep(1);	/* slow down attacks */
		(void) fprintf(stderr, "\nsorry");
		return 1;
	}
 
	(void) fprintf(stderr, "\nOk");
 
	return 0;
}


