Sun-Solaris-Ucred

 view release on metacpan or  search on metacpan

Ucred.xs  view on Meta::CPAN

ucred_getsuid(uc)
	Sun::Solaris::Ucred::Ucred *uc;

gid_t
ucred_getegid(uc)
	Sun::Solaris::Ucred::Ucred *uc;

gid_t
ucred_getrgid(uc)
	Sun::Solaris::Ucred::Ucred *uc;

gid_t
ucred_getsgid(uc)
	Sun::Solaris::Ucred::Ucred *uc;

pid_t
ucred_getpid(uc)
	Sun::Solaris::Ucred::Ucred *uc;

zoneid_t
ucred_getzoneid(uc)
	Sun::Solaris::Ucred::Ucred *uc;

uint_t
ucred_getpflags(uc, flags)
	Sun::Solaris::Ucred::Ucred *uc;
	uint_t flags;

Sun::Solaris::Privilege::Privset *
ucred_getprivset(uc, which)
	Sun::Solaris::Ucred::Ucred *uc;
	const char *which;
PREINIT:
	const priv_set_t *val;
CODE:
	/*
	 * Since this function returns a pointer into the ucred_t, we need
	 * to copy it or perl may free one before the other; and the
	 * priv_set_t * returned by it doesn't react kindly to free().
	 */
	val = ucred_getprivset(uc, which);
	if (val == NULL || (RETVAL = dupset(val)) == NULL)
		XSRETURN_UNDEF;
	RETPRIVSET(RETVAL);

Sun::Solaris::Ucred::Ucred *
getpeerucred(fd)
	int fd;
CODE:
	RETVAL = NULL;
	if (getpeerucred(fd, &RETVAL) != 0)
		XSRETURN_UNDEF;
	RETUCRED(RETVAL);

void
ucred_getgroups(uc)
	Sun::Solaris::Ucred::Ucred *uc;
PREINIT:
	const gid_t *gids;
	int n;
PPCODE:
	n = ucred_getgroups(uc, &gids);
	if (n < 0)
		XSRETURN_UNDEF;

	PUTBACK;
	if (GIMME_V == G_SCALAR) {
		EXTEND(SP, 1);
		PUSHs(sv_2mortal(newSViv(n)));
		PUTBACK;
		XSRETURN(1);
	} else if (GIMME_V == G_ARRAY) {
		int i;
		EXTEND(SP, n);

		for (i = 0; i < n; i++)
			PUSHs(sv_2mortal(newSViv(gids[i])));
		PUTBACK;
		XSRETURN(n);
	} else {
		PUTBACK;
		XSRETURN(0);
	}




MODULE = Sun::Solaris::Ucred PACKAGE = Sun::Solaris::Ucred::UcredPtr PREFIX = Ucred_

void
Ucred_DESTROY(uc)
	Sun::Solaris::Ucred::Ucred *uc;
CODE:
	ucred_free(uc);



( run in 0.651 second using v1.01-cache-2.11-cpan-5511b514fd6 )