OS2-UPM
view release on metacpan or search on metacpan
if (strEQ(name, "UPM_NOMEM"))
return (USHORT) UPM_NOMEM;
if (strEQ(name, "UPM_NOT_LOGGED"))
return (USHORT) UPM_NOT_LOGGED;
if (strEQ(name, "UPM_OK"))
return (USHORT) UPM_OK;
if (strEQ(name, "UPM_OPEN_SESSIONS"))
return (USHORT) UPM_OPEN_SESSIONS;
if (strEQ(name, "UPM_PASSWORD_EXP"))
return (USHORT) UPM_PASSWORD_EXP;
if (strEQ(name, "UPM_PRIV_ADMIN"))
return (USHORT) UPM_PRIV_ADMIN;
if (strEQ(name, "UPM_PRIV_LOCAL_ADMIN"))
return (USHORT) UPM_PRIV_LOCAL_ADMIN;
if (strEQ(name, "UPM_PRIV_USER"))
return (USHORT) UPM_PRIV_USER;
if (strEQ(name, "UPM_PROF_NOT_FOUND"))
return (USHORT) UPM_PROF_NOT_FOUND;
if (strEQ(name, "UPM_PWDLEN"))
return (USHORT) UPM_PWDLEN;
if (strEQ(name, "UPM_REMLEN"))
return (USHORT) UPM_REMLEN;
if (strEQ(name, "UPM_SS_BUSY"))
return (USHORT) UPM_SS_BUSY;
if (strEQ(name, "UPM_SS_DEAD"))
return (USHORT) UPM_SS_DEAD;
if (strEQ(name, "UPM_SS_PWDEXPWARNING"))
return (USHORT) UPM_SS_PWDEXPWARNING;
if (strEQ(name, "UPM_SYS_ERROR"))
return (USHORT) UPM_SYS_ERROR;
if (strEQ(name, "UPM_UIDLEN"))
return (USHORT) UPM_UIDLEN;
if (strEQ(name, "UPM_ULP_LOADED"))
return (USHORT) UPM_ULP_LOADED;
if (strEQ(name, "UPM_UNAVAIL"))
return (USHORT) UPM_UNAVAIL;
if (strEQ(name, "UPM_USER"))
return (USHORT) UPM_USER;
errno = EINVAL;
return 0;
not_there:
errno = ENOENT;
return 0;
}
MODULE = OS2::UPM PACKAGE = OS2::UPM
BOOT:
initialize();
int
constant(name,arg)
char * name
int arg
void
local_user()
PPCODE:
{
USHORT rc;
PBYTE puserid = (buffer+0);
PUSHORT ptype = (PUSHORT)(buffer+10);
rc = (_THUNK_PROLOG (4+4);
_THUNK_FLAT (puserid);
_THUNK_FLAT (ptype);
_THUNK_CALL16 (UPMELOCU));
if (!rc) {
EXTEND(sp, 2);
PUSHs(sv_2mortal(newSVpv(puserid, 0)));
PUSHs(sv_2mortal(newSViv(*ptype)));
} else
last_error = rc;
}
void
user_list(remote_node="",remote_type=UPM_LOCAL)
char * remote_node
int remote_type
PPCODE:
{
USHORT rc;
PBYTE premotename = (buffer+0);
PUSHORT pread = (PUSHORT)(buffer+18);
PUSHORT ptotal = (PUSHORT)(buffer+20);
PBYTE pentries = (buffer+24);
strcpy((char *)premotename, remote_node);
rc = (_THUNK_PROLOG (4+2+4+2+4+4);
_THUNK_FLAT (premotename);
_THUNK_SHORT (remote_type);
_THUNK_FLAT (pentries);
_THUNK_SHORT (buflen-24);
_THUNK_FLAT (pread);
_THUNK_FLAT (ptotal);
_THUNK_CALL16 (UPMEUSRL));
if (!rc) {
int i;
void *p0 = pentries;
struct UPM_USER_LOGON *p = p0;
EXTEND(sp, *pread * 4);
for (i = *pread; --i >= 0; ++p) {
PUSHs(sv_2mortal(newSVpv(p->userid, 0)));
PUSHs(sv_2mortal(newSVpv(p->remotename, 0)));
PUSHs(sv_2mortal(newSViv(p->remotetype)));
PUSHs(sv_2mortal(newSViv(p->sessionid)));
}
} else
last_error = rc;
}
int
logoff(userid,remote_node="",remote_type=UPM_LOCAL)
char * userid
char * remote_node
int remote_type
CODE:
{
USHORT rc;
PBYTE puserid = (buffer+0);
PBYTE premotename = (buffer+9);
strcpy((char *)puserid, userid);
strcpy((char *)premotename, remote_node);
rc = (_THUNK_PROLOG (4+4+2);
_THUNK_FLAT (puserid);
_THUNK_FLAT (premotename);
_THUNK_SHORT (remote_type);
_THUNK_CALL16 (UPMELGFF));
if (rc) {
last_error = RETVAL;
RETVAL = FALSE;
} else
RETVAL = TRUE;
}
OUTPUT:
RETVAL
int
logoff_user(userid,remote_node="",remote_type=UPM_LOCAL)
char * userid
char * remote_node
int remote_type
CODE:
{
USHORT rc;
PBYTE puserid = (buffer+0);
PBYTE premotename = (buffer+9);
strcpy((char *)puserid, userid);
strcpy((char *)premotename, remote_node);
rc = (_THUNK_PROLOG (4+4+2);
_THUNK_FLAT (puserid);
_THUNK_FLAT (premotename);
_THUNK_SHORT (remote_type);
_THUNK_CALL16 (UPMEULGF));
if (rc) {
last_error = RETVAL;
RETVAL = FALSE;
} else
RETVAL = TRUE;
}
OUTPUT:
RETVAL
void
local_logon()
PPCODE:
{
USHORT rc;
PBYTE puserid = (buffer+0);
PUSHORT ptype = (PUSHORT)(buffer+10);
rc = (_THUNK_PROLOG (4+4);
_THUNK_FLAT (puserid);
_THUNK_FLAT (ptype);
_THUNK_CALL16 (UPMELOCL));
if (!rc) {
EXTEND(sp, 2);
PUSHs(sv_2mortal(newSVpv(puserid, 0)));
PUSHs(sv_2mortal(newSViv(*ptype)));
} else
last_error = rc;
}
int
logon(userid,password,auth_check=UPM_USER,remote_node="",remote_type=UPM_LOCAL)
char * userid
char * password
int auth_check
char * remote_node
int remote_type
CODE:
{
USHORT rc;
PBYTE puserid = (buffer+0);
PBYTE ppassword = (buffer+9);
PBYTE premotename = (buffer+18);
strcpy((char *)puserid, userid);
strcpy((char *)password, password);
strcpy((char *)premotename, remote_node);
rc = (_THUNK_PROLOG (4+4+4+2+2);
_THUNK_FLAT (puserid);
_THUNK_FLAT (ppassword);
_THUNK_FLAT (premotename);
_THUNK_SHORT (remote_type);
_THUNK_SHORT (auth_check);
_THUNK_CALL16 (UPMELGN));
if (rc) {
last_error = RETVAL;
RETVAL = FALSE;
} else
RETVAL = TRUE;
}
OUTPUT:
RETVAL
int
logon_user(userid,password,remote_node="",remote_type=UPM_LOCAL)
char * userid
char * password
char * remote_node
int remote_type
CODE:
{
USHORT rc;
PBYTE puserid = (buffer+0);
PBYTE ppassword = (buffer+9);
PBYTE premotename = (buffer+18);
( run in 2.194 seconds using v1.01-cache-2.11-cpan-71847e10f99 )