13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (C) 2014 The Android Open Source Project 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License"); 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * you may not use this file except in compliance with the License. 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * You may obtain a copy of the License at 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * http://www.apache.org/licenses/LICENSE-2.0 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Unless required by applicable law or agreed to in writing, software 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS, 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * See the License for the specific language governing permissions and 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * limitations under the License. 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_NO_SESSION_DLL 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*================================================================================================== 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Source Name: dmSessionAPI.cc 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby General Description: Implementation of External interfaces to Server Session. 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby==================================================================================================*/ 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmSessionFactory.h" 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_dm_Manager.h" 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Lib.h" 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Logger.h" 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" { 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDmProcessServerData(CPCHAR szPrincipal, 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DmtSessionProp& session) 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status; 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_NO_SESSION_LIB 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char * lib_name = XPL_DM_GetEnv(SYNCML_DM_SESSION_LIB); 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Loads dynamic library */ 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T lib_handle = XPL_DL_Load(lib_name); 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( lib_handle == NULL ) 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T pFunc = XPL_DL_GetFunction(lib_handle, "DmProcessServerDataInternal"); 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFunc == NULL ) 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = ((SYNCML_DM_RET_STATUS_T (*)(CPCHAR ,const DmtSessionProp&))(pFunc))(szPrincipal,session); 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = DmProcessServerDataInternal(szPrincipal,session); 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_SESS_Debug(("Returning from DmProcessServerDataInternal status=%d\n", ret_status)); 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDmProcessScriptData(const UINT8 * docInputBuffer, 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 inDocSize, 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN isWBXML, 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMBuffer & oResult) 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status; 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_NO_SESSION_LIB 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char * lib_name = XPL_DM_GetEnv(SYNCML_DM_SESSION_LIB); 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* Loads dynamic library */ 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T lib_handle = XPL_DL_Load(lib_name); 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( lib_handle == NULL ) 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T pFunc = XPL_DL_GetFunction(lib_handle, "DmProcessScriptDataInternal"); 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFunc == NULL ) 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = ((SYNCML_DM_RET_STATUS_T (*)(const UINT8 * , UINT32, BOOLEAN, DMBuffer &))(pFunc)) 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (docInputBuffer,inDocSize,isWBXML,oResult); 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = DmProcessScriptDataInternal(docInputBuffer,inDocSize,isWBXML,oResult); 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDmBootstrap(const UINT8 * docInputBuffer, 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 inDocSize, 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN isWBXML, 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN isProcess, 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString & serverID) 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status; 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_NO_SESSION_LIB 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char * lib_name = XPL_DM_GetEnv(SYNCML_DM_SESSION_LIB); 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T lib_handle = XPL_DL_Load(lib_name); 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( lib_handle == NULL ) 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T pFunc = XPL_DL_GetFunction(lib_handle, "DmBootstrapInternal"); 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFunc == NULL ) 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = ((SYNCML_DM_RET_STATUS_T (*)(const UINT8 * , UINT32, BOOLEAN, BOOLEAN, DMString &))(pFunc)) 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby (docInputBuffer,inDocSize,isWBXML,isProcess, serverID); 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = DmBootstrapInternal(docInputBuffer,inDocSize,isWBXML,isProcess, serverID); 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDmAuthenticateServer(SYNCML_DM_AuthContext_T& AuthContext ) 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status; 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_NO_SESSION_LIB 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char * lib_name = XPL_DM_GetEnv(SYNCML_DM_SESSION_LIB); 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T lib_handle = XPL_DL_Load(lib_name); 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( lib_handle == NULL ) 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_HANDLE_T pFunc = XPL_DL_GetFunction(lib_handle, "DmAuthenticateServerInternal"); 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pFunc == NULL ) 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = ((SYNCML_DM_RET_STATUS_T (*)(SYNCML_DM_AuthContext_T& ))(pFunc))(AuthContext); 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_DL_Unload(lib_handle); 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = DmAuthenticateServerInternal(AuthContext); 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 176