OSI/MHS Management Programming Manual
Examples
OSI/MHS Management Programming Manual—424824-001
C-47
Example in C
memset (&old_password, BLANKS, sizeof (zmhs_ddl_old_passw_def));
memcpy (new_password.zstring, new_passw_in->zstring, new_passw_in-
>zlength);
memcpy (old_password.zstring, old_passw_in->zstring, old_passw_in-
>zlength);
exec sql begin work;
/* obtain the old value for the password */
exec sql
select password
into :mspwtabl_row.password
from =mspwtabl
where (appl_name = :mspwtabl_row.appl_name);
if (sqlcode != 0)
{
sql_error = sqlcode;
exec sql rollback work;
return (sql_error);
}
if (!STRNEQUAL (mspwtabl_row.password, old_password.zstring))
{
exec sql rollback work;
*passw_updated = FALSE;
return (sql_error);
}
memcpy (mspwtabl_row.password, new_password.zstring,
sizeof (new_password.zstring));
exec sql
update =mspwtabl
set password = :mspwtabl_row.password
where (appl_name = :mspwtabl_row.appl_name);
sql_error = sqlcode;
if (!sql_error)
{
exec sql commit work;
*passw_updated = TRUE;
}
else
{
exec sql rollback work;
*passw_updated = FALSE;
}
return (sql_error);
} /* end alter_mspwtabl_row_passw */
/***************************************************************************/
/* Function: validate_bind_password */
/* Usage : error = validate_bind_password (appl_name, */
/* passw_in, */
/* ua_osi_address, */
/* passw_valid) */
/* Parameters: appl_name INPUT */
/* passw_in INPUT */
/* ua_osi_address INPUT */
/* passw_valid OUTPUT */
/*-------------------------------------------------------------------------*/
/* Validate the password received in a MS Bind request, and the OSI */
/* address of the calling UA. Select the row from MSPWTABL table */