📄 wap_wlbif.c
字号:
/*
+-----------------------------------------------------------------------------
| File : wap_wlbif.c
+-----------------------------------------------------------------------------
| Copyright Condat AG 1999-2000, Berlin
| All rights reserved.
|
| This file is confidential and a trade secret of Condat AG
| The receipt of or possession of this file does not convey
| any rights to reproduce or disclose its contents or to
| manufacture, use, or sell anything it may describe, in
| whole, or in part, without the specific written consent of
| Condat AG.
+-----------------------------------------------------------------------------
| Purpose : This Modul defines the interface between the WAP-Lib
| and the Frame/UDP Part of the entity
| History : 15/05/2003 - SPR#1983 - SH - Updated to latest from 1.6.3 version.
+-----------------------------------------------------------------------------
*/
#ifndef WAP_WLBIF_C
#define WAP_WLBIF_C
#endif
#define ENTITY_WAP
/*==== INCLUDES ===================================================*/
#if defined (NEW_FRAME)
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include "typedefs.h"
#include "pcm.h"
#include "pconst.cdg"
#include "mconst.cdg"
#include "message.h"
#include "ccdapi.h"
#include "vsi.h"
#include "custom.h"
#include "gsm.h"
#include "prim.h"
#include "cnf_wap.h"
#include "mon_wap.h"
#include "pei.h"
#include "tok.h"
#include "dti.h" /* functionality of the dti library */
#else
#include <string.h>
#include "stddefs.h"
#include "pconst.cdg"
#include "message.h"
#include "ccdapi.h"
#include "custom.h"
#include "gsm.h"
#include "cnf_wap.h"
#include "mon_wap.h"
#include "prim.h"
#include "vsi.h"
#include "pei.h"
#include "tok.h"
#endif
#include "wap.h"
#include "Cus_wap.h"
#include "capiclnt.h"
#include "aapiclnt.h"
#include "wap_types.h"
#include "wap_examples.h"
#include "mmiutilapi.h"
/*==== CONST =======================================================*/
/*==== TYPES =======================================================*/
/*==== VAR EXPORT ==================================================*/
/*==== VAR LOCAL ===================================================*/
/*==== FUNCTIONS ===================================================*/
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : wap_lib_bind_callback|
+--------------------------------------------------------------------+
PURPOSE : bind_cnf callback, indicates a (un)sucessfull bind
*/
GLOBAL void wap_lib_bind_callback(
UBYTE objectId,
UBYTE channelId,
UINT16 port,
BYTE errMsg
)
{
TRACE_EVENT("wap_lib_bind_callback");
if (!errMsg)
{
/*SPR#2138 - SH */
CLNTc_setDCHIntConfig(objectId, channelId, configONLINE, TRUE);
CLNTc_setupConnectionDone(objectId,channelId,TRUE);
wap_lib_run_aus_callback();
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : wap_lib_closeport_callback |
+--------------------------------------------------------------------+
PURPOSE : close_port_cnf callback, indicates the successfull shutdown
of an UDP port
*/
GLOBAL void wap_lib_closeport_callback (UBYTE objectId,UBYTE channel)
{
/*XXX XXX*/
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : wap_lib_run_aus_callback|
+--------------------------------------------------------------------+
PURPOSE : AUS run-loop callback
*/
GLOBAL void wap_lib_run_aus_callback(void)
{
/*XXX XXX*/
while(CLNTc_wantsToRun()&&(wap_data->aus_runnable))
{
CLNTc_run();
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : wap_lib_error_callback|
+--------------------------------------------------------------------+
PURPOSE : AUS error callback
*/
GLOBAL void wap_lib_error_callback (
UCHAR objectId,
SHORT errNo,
UCHAR errorType
)
{
/*XXX XXX*/
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_terminated |
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_terminated(void)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_terminated");
#endif
}
GLOBAL void CLNTa_closeConnection(
UCHAR objectId,
UCHAR channelID
)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_closeConnection");
{
char temp[60];
sprintf(temp,"objectId %d channel Id %d",(int)objectId,(int)channelID);
TRACE_EVENT(temp);
}
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_setupConnection|
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_setupConnection(
UCHAR objectId,
UCHAR channelID
)
{
T_WAP_MMI_CONNECT_REQ parameter;
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_setupConnection");
{
char temp[60];
sprintf(temp,"objectId %d channel Id %d",(int)objectId,(int)channelID);
TRACE_EVENT(temp);
}
#endif
parameter.object_id = objectId;
parameter.channel = channelID;
W_WAP_MMI_CONNECT_REQ(¶meter);
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_changedChannel|
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_changedChannel(
UCHAR objectId,
UCHAR channelId,
UCHAR isWTLSchannel
)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_changedChannel");
{
char temp[60];
sprintf(temp,"objectId %d channel Id %d",(int)objectId,(int)channelId);
TRACE_EVENT(temp);
}
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_requestConnection|
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_requestConnection ( UCHAR objectId )
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_requestConnection");
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_nonSupportedScheme|
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_nonSupportedScheme (
UCHAR objectId,
const CHAR *URL
)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_nonSupportedScheme");
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_acknowledgePostContent|
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_acknowledgePostContent (UCHAR urlID)
{
#ifdef MMS_WAP_ENABLED
T_WAP_MMI_ACKPOSTCONTENT_REQ parameter;
parameter.urlID = urlID;
W_WAP_MMI_ACKPOSTCONTENT_REQ(¶meter);
#endif
}
#ifdef MMS_MESSAGE_SAR_USED
static int g_codememalloc = 0;
#define MMS_new(ptr, size) MI_ALLOC(ptr, size,g_codememalloc)
#define MMS_free(ptr,size) MI_FREE(ptr, g_codememalloc);
#endif
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_content |
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_content (
UCHAR urlID,
const CHAR *data,
USHORT length,
BOOL moreData,
const CHAR *contentType,
UINT32 totalSize,
SHORT errorNo
)
{
#ifdef MMS_WAP_ENABLED
T_WAP_MMI_CONTENT_REQ parameter;
#endif
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_content");
#endif
#ifdef MMS_WAP_ENABLED
{
T_WAP_MMI_CONTENT_REQ parameter;
if(data == 0)
length = 0;
memset(¶meter,0 ,sizeof(T_WAP_MMI_CONTENT_REQ));
parameter.urlID = urlID;
parameter.moreData = moreData;
parameter.contentType = (char*)contentType;
if(parameter.contentType)
parameter.contentType_length = strlen(contentType);
parameter.totalSize = totalSize;
parameter.errorNo = errorNo;
#ifdef MMS_MESSAGE_SAR_USED
if(length > MMS_MESSAGE_GROUP_SIZE)
{
MMS_new(parameter.data2 ,length);
if(g_codememalloc == EC_MMIMEM_OK)
{
memcpy(parameter.data2 ,data, length);
}
parameter.data_length2 = length;
}
else
{
parameter.data = (char*)data;
parameter.data_length = length;
}
#else
parameter.data = (char*)data;
parameter.data_length = length;
#endif
W_WAP_MMI_CONTENT_REQ(¶meter);
}
#endif
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_getFile |
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_getFile (
UCHAR fileId,
const CHAR *URL
)
{
UBYTE pageIndex;
/* USHORT fileIndex; */
char *file;
USHORT length;
#ifdef TRACE_WAP_AUS_CLNT
char test_string[20];
TRACE_EVENT("CLNTa_getFile");
#endif
pageIndex = 10*(*(URL+8)-'0')+(*(URL+9)-'0'); // Get two digit number from string
#ifdef TRACE_WAP_AUS_CLNT
sprintf(test_string, "Page: %d", pageIndex);
TRACE_EVENT(test_string);
#endif
file = (char *)WAP_loadPage(pageIndex);
if (file==NULL) // File not found
CLNTc_file(fileId, NULL, 0, NULL);
length = *file+256*(*(file+1));
if (*(URL+14) == 's') // wmls file
CLNTc_file(fileId, file+2, (UINT16) length, "application/vnd.wap.wmlscriptc");
else
CLNTc_file(fileId, file+2, (UINT16) length, "application/vnd.wap.wmlc");
return;
}
/*
+--------------------------------------------------------------------+
| PROJECT : GSM-WAP (8444) MODULE : WAP_WLBIF |
| STATE : code ROUTINE : CLNTa_callFunction |
+--------------------------------------------------------------------+
*/
GLOBAL void CLNTa_callFunction (
UCHAR functionId,
const CHAR *device,
const CHAR *function,
const CHAR *attributes
)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_callFunction");
#endif
}
VOID CLNTa_resultDecodeProvisioning (const DATATABSTRUCT *dataTab, UINT16 dataTabLen,
const WCHAR *strTab, UINT16 strTabLen, UINT16 iResult)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_resultDecodeProvisioning");
#endif
}
VOID CLNTa_resultDecodeE2Esecurity (UINT8 objectID, UINT8 id, UINT32 expires, const DATATABSTRUCT *dataTab, UINT16 dataTabLen,
const WCHAR *strTab, UINT16 strTabLen, UINT16 iResult)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_resultDecodeE2Esecurity");
#endif
}
VOID CLNTa_getProvSharedSecret(UINT16 iListID, UINT16 SEC)
{
#ifdef TRACE_WAP_AUS_CLNT
TRACE_EVENT("CLNTa_getProvSharedSecret");
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -