136 lines
4.3 KiB
C
136 lines
4.3 KiB
C
/************************************************************************/
|
|
/* SISCO SOFTWARE MODULE HEADER *****************************************/
|
|
/************************************************************************/
|
|
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
|
/* 1998 - 1999, All Rights Reserved */
|
|
/* */
|
|
/* MODULE NAME : c_obtfi.c */
|
|
/* PRODUCT(S) : MMSEASE-LITE */
|
|
/* */
|
|
/* MODULE DESCRIPTION : */
|
|
/* */
|
|
/* GLOBAL FUNCTIONS DEFINED IN THIS MODULE : */
|
|
/* mvl_obtfile */
|
|
/* mvla_obtfile */
|
|
/* _mvl_process_obtfile_conf */
|
|
/* */
|
|
/* MODIFICATION LOG : */
|
|
/* Date Who Rev Comments */
|
|
/* -------- --- ------ ------------------------------------------- */
|
|
/* 04/09/07 MDE 06 Enhanced filtered logging */
|
|
/* 11/01/01 JRB 05 mvl_wait_req_done now returns ST_RET. */
|
|
/* 09/21/01 JRB 04 Alloc global bufs only once at startup. */
|
|
/* 03/07/01 JRB 03 Del LOCK on sync functs: caused deadlocks. */
|
|
/* 01/21/00 MDE 02 Eliminated an allocation */
|
|
/* 10/14/99 GLB 01 Created to add Obtain File function */
|
|
/************************************************************************/
|
|
|
|
#include "glbtypes.h"
|
|
#include "sysincs.h"
|
|
#include "glbsem.h"
|
|
|
|
#include "mmsdefs.h"
|
|
#include "mms_pvmd.h"
|
|
#include "mvl_defs.h"
|
|
#include "mvl_log.h"
|
|
|
|
/************************************************************************/
|
|
/* For debug version, use a static pointer to avoid duplication of */
|
|
/* __FILE__ strings. */
|
|
/************************************************************************/
|
|
|
|
#ifdef DEBUG_SISCO
|
|
SD_CONST static ST_CHAR *SD_CONST thisFileName = __FILE__;
|
|
#endif
|
|
|
|
/************************************************************************/
|
|
/* mvl_obtfile */
|
|
/************************************************************************/
|
|
|
|
#if defined(MVL_SYNC_REQ_INTERFACE)
|
|
|
|
ST_RET mvl_obtfile (
|
|
MVL_NET_INFO *net_info,
|
|
ST_CHAR *srcfilename,
|
|
ST_CHAR *destfilename,
|
|
MVL_REQ_PEND **req_out)
|
|
{
|
|
ST_RET rc;
|
|
|
|
if (_mvl_comm_serve_active == SD_TRUE)
|
|
{
|
|
MVL_LOG_NERR0 ("Error: mvl_comm_serv active");
|
|
return (MVL_ERR_COMM_SERVE_ACTIVE);
|
|
}
|
|
|
|
rc = mvla_obtfile (net_info, srcfilename, destfilename, req_out);
|
|
if (rc == SD_SUCCESS)
|
|
rc = mvl_wait_req_done (*req_out);
|
|
return (rc);
|
|
}
|
|
|
|
#endif
|
|
|
|
/************************************************************************/
|
|
/* mvla_obtfile */
|
|
/************************************************************************/
|
|
|
|
/* Allocate OBTFILE_REQ_INFO with "two" FILE_NAME entries after it. */
|
|
/* If need multiple FILE_NAME elements, must use "mpl_frename". */
|
|
#define OBTFILE_REQ_INFO_SIZE (sizeof (OBTFILE_REQ_INFO) + (2 * sizeof (FILE_NAME)))
|
|
|
|
ST_RET mvla_obtfile (
|
|
MVL_NET_INFO *net_info,
|
|
ST_CHAR *srcfilename,
|
|
ST_CHAR *destfilename,
|
|
MVL_REQ_PEND **req_out)
|
|
{
|
|
ST_RET rc;
|
|
MVL_REQ_PEND *req_pend;
|
|
OBTFILE_REQ_INFO *req_info;
|
|
FILE_NAME *fname_idx;
|
|
ST_CHAR obtfile_req_info[OBTFILE_REQ_INFO_SIZE];
|
|
|
|
*req_out = req_pend = _mvl_get_req_ctrl (net_info, MMSOP_OBTAIN_FILE);
|
|
if (!req_pend)
|
|
return (MVL_ERR_REQ_CONTROL);
|
|
|
|
req_info = (OBTFILE_REQ_INFO *) obtfile_req_info;
|
|
|
|
req_info->ar_title_pres = SD_FALSE;
|
|
req_info->num_of_src_fname = 1;
|
|
req_info->num_of_dest_fname = 1;
|
|
|
|
/* Point to the FILE_NAME structure and fill in the current FileName */
|
|
fname_idx = (FILE_NAME *)(req_info + 1);
|
|
fname_idx->fn_len = strlen (srcfilename);
|
|
fname_idx->fname = srcfilename;
|
|
/* move the pointer by 1 name and fill in the new FileName */
|
|
fname_idx++;
|
|
fname_idx->fn_len = strlen (destfilename);
|
|
fname_idx->fname = destfilename;
|
|
|
|
|
|
S_LOCK_COMMON_RESOURCES ();
|
|
|
|
/* Build a frename request */
|
|
rc = mpl_obtfile (req_info);
|
|
if (rc == SD_SUCCESS)
|
|
mpl_req_log (req_pend, req_info);
|
|
|
|
rc = _mvl_send_req (net_info, req_pend, rc);
|
|
|
|
S_UNLOCK_COMMON_RESOURCES ();
|
|
return (rc);
|
|
}
|
|
|
|
/************************************************************************/
|
|
/* _mvl_process_obtfile_conf */
|
|
/************************************************************************/
|
|
|
|
ST_VOID _mvl_process_obtfile_conf (MVL_REQ_PEND *req_pend)
|
|
{
|
|
/* Nothing to do. Common code takes care of setting req_pend->result. */
|
|
}
|
|
|