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 */










