/**
 * post-request callback
 *
 * Note:
 *   New rows have been inserted into the container, and
 *   deleted rows have been removed from the container and
 *   released.
 * @param user_context
 * @param rc : MFD_SUCCESS if all requests succeeded
 *
 * @retval MFD_SUCCESS : success.
 * @retval MFD_ERROR   : other error (ignored)
 */
int
usmDHUserKeyTable_post_request(usmDHUserKeyTable_registration *
                               user_context, int rc)
{
    DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_post_request",
                "called\n"));

    /*
     * TODO:511:o: Perform usmDHUserKeyTable post-request actions.
     */

    /*
     * check to set if any rows were changed.
     */
    if (usmDHUserKeyTable_dirty_get()) {
        /*
         * check if request was successful. If so, this would be
         * a good place to save data to its persistent store.
         */
        if (MFD_SUCCESS == rc) {
            /*
             * save changed rows, if you haven't already
             */
        }

        usmDHUserKeyTable_dirty_set(0); /* clear table dirty flag */
    }

    return MFD_SUCCESS;
}                               /* usmDHUserKeyTable_post_request */
/**
 * @internal
 * wrapper
 */
static int
_mfd_usmDHUserKeyTable_post_request(netsnmp_mib_handler *handler,
                                    netsnmp_handler_registration *reginfo,
                                    netsnmp_agent_request_info
                                    *agtreq_info,
                                    netsnmp_request_info *requests)
{
    usmDHUserKeyTable_rowreq_ctx *rowreq_ctx =
        netsnmp_container_table_row_extract(requests);
    int             rc, packet_rc;

    DEBUGMSGTL(("internal:usmDHUserKeyTable:_mfd_usmDHUserKeyTable_post_request", "called\n"));

    /*
     * release row context, if deleted
     */
    if (rowreq_ctx && (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED))
        usmDHUserKeyTable_release_rowreq_ctx(rowreq_ctx);

    /*
     * wait for last call before calling user
     */
    if (1 != netsnmp_row_merge_status_last(reginfo, agtreq_info)) {
        DEBUGMSGTL(("internal:usmDHUserKeyTable",
                    "waiting for last post_request\n"));
        return SNMP_ERR_NOERROR;
    }

    packet_rc = netsnmp_check_all_requests_error(agtreq_info->asp, 0);
    if ((MFD_SUCCESS != packet_rc) && usmDHUserKeyTable_dirty_get()) {
        /*
         * we shouldn't get here. the undo steps should also clear
         * the dirty flags.
         */
        snmp_log(LOG_WARNING,
                 "usmDHUserKeyTable dirty flag set in post_request "
                 "but status != SUCCESS.\n");
    }

    rc = usmDHUserKeyTable_post_request(usmDHUserKeyTable_if_ctx.user_ctx,
                                        packet_rc);
    if (MFD_SUCCESS != rc) {
        /*
         * nothing we can do about it but log it
         */
        DEBUGMSGTL(("usmDHUserKeyTable", "error %d from "
                    "usmDHUserKeyTable_post_request\n", rc));
    }

    return SNMP_ERR_NOERROR;
}                               /* _mfd_usmDHUserKeyTable_post_request */