class='cKeyword'>#include<stdio.h>
class='cKeyword'>#include <ntypes.h>
class='cKeyword'>#include <nmasmaf.h>
typedef struct CPWD_INFO
{
nuint32 error;
nuint32 infoFlags;
} CPWD_INFO;
class='cKeyword'>char pwd[128];
int LCM00000001( MAF_Handle mh ) {
nint32 err = 0, mafErr =0;
CPWD_INFO pwdInfo;
size_t replyLen = 0;
FILE *stream = NULL;
printf("In LSMCPWD LCM\n");
mafErr = MAF_Begin (mh);
printf("MAF_Begin return %d\n", mafErr);
if (mafErr)
{
return mafErr;
}
memset(pwd, 0xCC, sizeof(pwd));
stream = popen("/opt/novell/nmas/methods/clrpwd/cpwdgui", "r");
fgets(pwd, 128, stream);
pclose(stream);
pwdInfo.error = 0;
pwdInfo.infoFlags = 0;
mafErr = MAF_Write(mh, sizeof(pwdInfo), &pwdInfo);
if (mafErr)
{
goto MAF_ERROR;
}
mafErr = MAF_XWrite(mh, strlen(pwd), pwd);
if (mafErr)
{
goto MAF_ERROR;
}
mafErr = MAF_Read(mh, &replyLen, &err);
if (mafErr || replyLen < 4 || err)
{
goto MAF_ERROR;
}
if (err)
{
MAF_Write(mh, 4, &err);
}
MAF_ERROR:
if (!err)
{
err = mafErr;
}
MAF_End (mh, err, 0, 0);
return mafErr;
}