642 lines
17 KiB
C++
642 lines
17 KiB
C++
|
/////////////////////////////////////////
|
||
|
// File: RWPost.cpp
|
||
|
//
|
||
|
//////////////////////////////////////////
|
||
|
|
||
|
//#define STRICT
|
||
|
// Include Files
|
||
|
//
|
||
|
//Modifications :
|
||
|
//MDX1 03/11/99 Suresh
|
||
|
// In SendHTTPData() the MSID will be got from Cookie
|
||
|
// it will no longer be red from the Registry
|
||
|
//
|
||
|
//
|
||
|
|
||
|
|
||
|
#include <windows.h>
|
||
|
#include <windowsx.h>
|
||
|
#include <stdio.h>
|
||
|
#include "resource.h"
|
||
|
#include "Ithread.h"
|
||
|
#include "icw.h"
|
||
|
#include "util.h"
|
||
|
#include "tcp.h"
|
||
|
#include "rw_common.h"
|
||
|
#include "dconv.h"
|
||
|
#include "RwPost.h"
|
||
|
#include "mcm.h"
|
||
|
#include "ATK_RAS.h"
|
||
|
#include "tcp.h"
|
||
|
#define CONNECTION_TIME_OUT 1000 * 60
|
||
|
#define MAX_PROXY_AUTH_RETRY 2
|
||
|
|
||
|
static CInternetThread theInternetClass;
|
||
|
extern BOOL bOemDllLoaded;
|
||
|
extern HANDLE hOemDll;
|
||
|
static DWORD dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
|
||
|
extern DWORD InvokePost(HWND hWnd,CInternetThread *p);
|
||
|
|
||
|
void InitializeInetThread(HINSTANCE hIns)
|
||
|
{
|
||
|
theInternetClass.Initialize(hIns);
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Returns
|
||
|
// DIALUP_NOT_REQUIRED : Use Network for tx
|
||
|
// DIALUP_REQUIRED : Use Dialupo for Tx
|
||
|
// RWZ_ERROR_NOTCPIP : No TCP/IPO
|
||
|
// CONNECTION_CANNOT_BE_ESTABLISHED : No modem or RAS setup
|
||
|
|
||
|
DWORD CheckInternetConnectivityExists(HWND hWnd, HINSTANCE hInstance)
|
||
|
{
|
||
|
static int iAuthRetry =0; // Retry count for the number of times to invoke Proxy Auth Dlg
|
||
|
static CHAR szProxyServer[MAX_PATH];
|
||
|
CHAR szProxySettings[MAX_PATH];
|
||
|
static int iChkInternetConnection = 0;
|
||
|
static DWORD sdwConnectionStatus = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
BOOL bNeedsReboot;
|
||
|
BOOL bRet;
|
||
|
DWORD dwPingStatus;
|
||
|
DWORD dwError= RWZ_NOERROR;
|
||
|
BOOL bProxyExists;
|
||
|
MODEMSTATUS mStatus;
|
||
|
DWORD dwTimeOut = CONNECTION_TIME_OUT;
|
||
|
int iProxyPort;
|
||
|
TCHAR szUserName[48] = _T(""),
|
||
|
szPassword[48] = _T("");
|
||
|
int iDisableAutoDial;
|
||
|
|
||
|
iDisableAutoDial=1;
|
||
|
|
||
|
if( sdwConnectionStatus == DIALUP_NOT_REQUIRED )
|
||
|
return DIALUP_NOT_REQUIRED;
|
||
|
if( sdwConnectionStatus == DIALUP_REQUIRED )
|
||
|
return DIALUP_REQUIRED;
|
||
|
|
||
|
// Disable Auto Dial only
|
||
|
// if there are not active Dialup Connection
|
||
|
//
|
||
|
if( ATK_IsRasDllOk() == RAS_DLL_LOADED )
|
||
|
{
|
||
|
if( IsDialupConnectionActive() )
|
||
|
{
|
||
|
iDisableAutoDial=0;
|
||
|
}
|
||
|
}
|
||
|
if(iDisableAutoDial)
|
||
|
{
|
||
|
DisableAutoDial();// Disable the Auto Dial
|
||
|
}
|
||
|
// Ping Current Host to check if TCP is
|
||
|
// installed /configured.
|
||
|
//
|
||
|
// if it is for the first time
|
||
|
|
||
|
// RWZ_PINGSTATUS_NOTCPIP : if no socket library or get hostname fails
|
||
|
// RWZ_PINGSTATUS_SUCCESS : if gethostname and ping is successful
|
||
|
// RWZ_PINGSTATUS_FAIL : if gethostname is succesful and ping via icmp fails
|
||
|
dwPingStatus = PingHost();
|
||
|
|
||
|
RW_DEBUG <<"\n Ping To Host (40: No TCP/IP 41: Success 42: Failure)=: " << dwPingStatus << flush;
|
||
|
|
||
|
if (dwPingStatus == RWZ_PINGSTATUS_NOTCPIP )
|
||
|
{
|
||
|
return RWZ_ERROR_NOTCPIP;
|
||
|
}
|
||
|
if( dwPingStatus == RWZ_PINGSTATUS_SUCCESS ){
|
||
|
bProxyExists = theInternetClass.GetSystemProxyServer(szProxyServer,MAX_PATH, &iProxyPort);
|
||
|
if (1 /*bProxyExists*/)
|
||
|
{
|
||
|
//theInternetClass.GetSystemProxySettings(szProxySettings,MAX_PATH);
|
||
|
//theInternetClass.SetSystemProxySettings(szProxySettings);
|
||
|
theInternetClass.SetSystemProxySettings("itgproxy");
|
||
|
|
||
|
if(1 /*Ping(szProxyServer)*/)
|
||
|
{
|
||
|
DWORD dwChkSite;
|
||
|
int iExit;
|
||
|
iExit =0;
|
||
|
RW_DEBUG <<"\n Ping Success" << flush;
|
||
|
theInternetClass.m_UserName[0] = _T('\0');
|
||
|
theInternetClass.m_Password[0] = _T('\0');
|
||
|
|
||
|
|
||
|
do {
|
||
|
dwChkSite = ChkSiteAvailability(hWnd, theInternetClass.m_strIISServer,
|
||
|
dwTimeOut,
|
||
|
(LPTSTR) theInternetClass.GetProxyServer(),
|
||
|
theInternetClass.m_UserName,theInternetClass.m_Password);
|
||
|
|
||
|
RW_DEBUG <<"\n After ChkSiteAvailability : " << dwChkSite << flush;
|
||
|
|
||
|
if( dwChkSite == RWZ_SITE_REQUIRES_AUTHENTICATION) {
|
||
|
if( iAuthRetry++ > MAX_PROXY_AUTH_RETRY) {
|
||
|
iExit =1;
|
||
|
}
|
||
|
// Modified on 2/4/98
|
||
|
// No Need to call our Proxy Auth Dlg insted use
|
||
|
// InternetErrorDlg() to invoke Auth Dlg
|
||
|
//if(GetProxyAuthenticationInfo(hInstance,ConvertToUnicode(szProxyServer),
|
||
|
// theInternetClass.m_UserName,theInternetClass.m_Password)) {
|
||
|
//}
|
||
|
|
||
|
|
||
|
}else {
|
||
|
// Exit because Connectivity is OK
|
||
|
iExit = 1;
|
||
|
}
|
||
|
}while(!iExit);
|
||
|
|
||
|
if( dwChkSite == RWZ_SITE_CONNECTED)
|
||
|
{
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_PRECONFIG;
|
||
|
// Modified on 2/4/98to use the PRECONFIGIED rather than the PROXY specified by
|
||
|
// the user programatically
|
||
|
// The INTERNET_OPEN_TYPE_PROXY is changed .....
|
||
|
// This change is done in order for IE Auth Dlg
|
||
|
dwError = DIALUP_NOT_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
goto ExitChk;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// No Procy so check for connection using existing LAN
|
||
|
// already opened Dialup Connection
|
||
|
// Set to NULL Proxy
|
||
|
//
|
||
|
|
||
|
theInternetClass.SetProxyServer("",80);// Set it To Null
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
|
||
|
if( ATK_IsRasDllOk() == RAS_DLL_LOADED )
|
||
|
{
|
||
|
if( IsDialupConnectionActive() )
|
||
|
{
|
||
|
// Already Dialup COnnection is Active
|
||
|
dwError = DIALUP_NOT_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
goto ExitChk;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Check Lan Connection
|
||
|
bRet = CheckHostName( ConvertToANSIString(theInternetClass.m_strIISServer));
|
||
|
if(bRet)
|
||
|
{
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
|
||
|
if(ChkSiteAvailability(NULL, theInternetClass.m_strIISServer,
|
||
|
dwTimeOut,
|
||
|
_T(""),szUserName,szPassword))
|
||
|
{
|
||
|
dwError = DIALUP_NOT_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
goto ExitChk;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
dwError = DIALUP_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
|
||
|
|
||
|
RW_DEBUG << "\n Before MDMCHK..." << flush;
|
||
|
//MDMCHK:
|
||
|
// Install Modem
|
||
|
//
|
||
|
/**bNeedsReboot = theInternetClass.InstallModem(hWnd);
|
||
|
if(bNeedsReboot)
|
||
|
{
|
||
|
// ?????
|
||
|
// This will be abnormally terminating the Registration Wizard,
|
||
|
// So support modem installation in OS which dosent call for a reboot
|
||
|
}
|
||
|
**/
|
||
|
mStatus = MSDetectModemTAPI(hInstance);
|
||
|
if(mStatus != kMsModemOk )
|
||
|
{
|
||
|
dwError = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
sdwConnectionStatus = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
}
|
||
|
|
||
|
if(dwError == DIALUP_REQUIRED )
|
||
|
{
|
||
|
// Load RASPAI32.DLL and Exit if it can not be loaded
|
||
|
if( ATK_IsRasDllOk() != RAS_DLL_LOADED )
|
||
|
{
|
||
|
//
|
||
|
dwError = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
sdwConnectionStatus = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n RASAPI32.DLL NOT FOUND ...";
|
||
|
#endif
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ExitChk:
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG <<"\n Chk Connection ( 1 = via NTWK, 2 = DIalup , 3 = Problem) " << dwError << flush;
|
||
|
#endif
|
||
|
theInternetClass.UnLoadInetCfgDll();
|
||
|
return dwError;
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Returns
|
||
|
// DIALUP_NOT_REQUIRED : Use Network for tx
|
||
|
// DIALUP_REQUIRED : Use Dialupo for Tx
|
||
|
// RWZ_ERROR_NOTCPIP : No TCP/IPO
|
||
|
// CONNECTION_CANNOT_BE_ESTABLISHED : No modem or RAS setup
|
||
|
|
||
|
DWORD CheckInternetConnectivityExistsOldLogic(HWND hWnd, HINSTANCE hInstance)
|
||
|
{
|
||
|
static int iAuthRetry =0; // Retry count for the number of times to invoke Proxy Auth Dlg
|
||
|
static CHAR szProxyServer[MAX_PATH];
|
||
|
CHAR szProxySettings[MAX_PATH];
|
||
|
static int iChkInternetConnection = 0;
|
||
|
static DWORD sdwConnectionStatus = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
BOOL bNeedsReboot;
|
||
|
BOOL bRet;
|
||
|
DWORD dwPingStatus;
|
||
|
DWORD dwError= RWZ_NOERROR;
|
||
|
BOOL bProxyExists;
|
||
|
MODEMSTATUS mStatus;
|
||
|
DWORD dwTimeOut = CONNECTION_TIME_OUT;
|
||
|
int iProxyPort;
|
||
|
TCHAR szUserName[48] = _T(""),
|
||
|
szPassword[48] = _T("");
|
||
|
int iDisableAutoDial;
|
||
|
|
||
|
iDisableAutoDial=1;
|
||
|
|
||
|
if( sdwConnectionStatus == DIALUP_NOT_REQUIRED )
|
||
|
return DIALUP_NOT_REQUIRED;
|
||
|
if( sdwConnectionStatus == DIALUP_REQUIRED )
|
||
|
return DIALUP_REQUIRED;
|
||
|
|
||
|
// Disable Auto Dial only
|
||
|
// if there are not active Dialup Connection
|
||
|
//
|
||
|
if( ATK_IsRasDllOk() == RAS_DLL_LOADED )
|
||
|
{
|
||
|
if( IsDialupConnectionActive() )
|
||
|
{
|
||
|
iDisableAutoDial=0;
|
||
|
}
|
||
|
}
|
||
|
if(iDisableAutoDial)
|
||
|
{
|
||
|
DisableAutoDial();// Disable the Auto Dial
|
||
|
}
|
||
|
// Ping Current Host to check if TCP is
|
||
|
// installed /configured.
|
||
|
//
|
||
|
// if it is for the first time
|
||
|
|
||
|
// RWZ_PINGSTATUS_NOTCPIP : if no socket library or get hostname fails
|
||
|
// RWZ_PINGSTATUS_SUCCESS : if gethostname and ping is successful
|
||
|
// RWZ_PINGSTATUS_FAIL : if gethostname is succesful and ping via icmp fails
|
||
|
dwPingStatus = PingHost();
|
||
|
|
||
|
RW_DEBUG <<"\n Ping To Host (40: No TCP/IP 41: Success 42: Failure)=: " << dwPingStatus << flush;
|
||
|
|
||
|
if (dwPingStatus == RWZ_PINGSTATUS_NOTCPIP )
|
||
|
{
|
||
|
return RWZ_ERROR_NOTCPIP;
|
||
|
}
|
||
|
if( dwPingStatus == RWZ_PINGSTATUS_SUCCESS ){
|
||
|
bProxyExists = theInternetClass.GetSystemProxyServer(szProxyServer,MAX_PATH, &iProxyPort);
|
||
|
if (bProxyExists)
|
||
|
{
|
||
|
theInternetClass.GetSystemProxySettings(szProxySettings,MAX_PATH);
|
||
|
theInternetClass.SetSystemProxySettings(szProxySettings);
|
||
|
|
||
|
|
||
|
if(Ping(szProxyServer))
|
||
|
{
|
||
|
DWORD dwChkSite;
|
||
|
int iExit;
|
||
|
iExit =0;
|
||
|
RW_DEBUG <<"\n Ping Success" << flush;
|
||
|
theInternetClass.m_UserName[0] = _T('\0');
|
||
|
theInternetClass.m_Password[0] = _T('\0');
|
||
|
|
||
|
|
||
|
do {
|
||
|
dwChkSite = ChkSiteAvailability(hWnd, theInternetClass.m_strIISServer,
|
||
|
dwTimeOut,
|
||
|
(LPTSTR) theInternetClass.GetProxyServer(),
|
||
|
theInternetClass.m_UserName,theInternetClass.m_Password);
|
||
|
|
||
|
RW_DEBUG <<"\n After ChkSiteAvailability : " << dwChkSite << flush;
|
||
|
|
||
|
if( dwChkSite == RWZ_SITE_REQUIRES_AUTHENTICATION) {
|
||
|
if( iAuthRetry++ > MAX_PROXY_AUTH_RETRY) {
|
||
|
iExit =1;
|
||
|
}
|
||
|
// Modified on 2/4/98
|
||
|
// No Need to call our Proxy Auth Dlg insted use
|
||
|
// InternetErrorDlg() to invoke Auth Dlg
|
||
|
//if(GetProxyAuthenticationInfo(hInstance,ConvertToUnicode(szProxyServer),
|
||
|
// theInternetClass.m_UserName,theInternetClass.m_Password)) {
|
||
|
//}
|
||
|
|
||
|
|
||
|
}else {
|
||
|
// Exit because Connectivity is OK
|
||
|
iExit = 1;
|
||
|
}
|
||
|
}while(!iExit);
|
||
|
|
||
|
if( dwChkSite == RWZ_SITE_CONNECTED)
|
||
|
{
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_PRECONFIG;
|
||
|
// Modified on 2/4/98to use the PRECONFIGIED rather than the PROXY specified by
|
||
|
// the user programatically
|
||
|
// The INTERNET_OPEN_TYPE_PROXY is changed .....
|
||
|
// This change is done in order for IE Auth Dlg
|
||
|
dwError = DIALUP_NOT_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
goto ExitChk;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// No Procy so check for connection using existing LAN
|
||
|
// already opened Dialup Connection
|
||
|
// Set to NULL Proxy
|
||
|
//
|
||
|
|
||
|
theInternetClass.SetProxyServer("",80);// Set it To Null
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
|
||
|
if( ATK_IsRasDllOk() == RAS_DLL_LOADED )
|
||
|
{
|
||
|
if( IsDialupConnectionActive() )
|
||
|
{
|
||
|
// Already Dialup COnnection is Active
|
||
|
dwError = DIALUP_NOT_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
goto ExitChk;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Check Lan Connection
|
||
|
bRet = CheckHostName( ConvertToANSIString(theInternetClass.m_strIISServer));
|
||
|
if(bRet)
|
||
|
{
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
|
||
|
if(ChkSiteAvailability(NULL, theInternetClass.m_strIISServer,
|
||
|
dwTimeOut,
|
||
|
_T(""),szUserName,szPassword))
|
||
|
{
|
||
|
dwError = DIALUP_NOT_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
goto ExitChk;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
dwError = DIALUP_REQUIRED;
|
||
|
sdwConnectionStatus = DIALUP_REQUIRED;
|
||
|
dwConnectionStatus = DIALUP_NOT_REQUIRED;
|
||
|
theInternetClass.m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
|
||
|
|
||
|
RW_DEBUG << "\n Before MDMCHK..." << flush;
|
||
|
//MDMCHK:
|
||
|
// Install Modem
|
||
|
//
|
||
|
bNeedsReboot = theInternetClass.InstallModem(hWnd);
|
||
|
if(bNeedsReboot)
|
||
|
{
|
||
|
// ?????
|
||
|
// This will be abnormally terminating the Registration Wizard,
|
||
|
// So support modem installation in OS which dosent call for a reboot
|
||
|
}
|
||
|
|
||
|
mStatus = MSDetectModemTAPI(hInstance);
|
||
|
if(mStatus != kMsModemOk )
|
||
|
{
|
||
|
dwError = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
sdwConnectionStatus = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
}
|
||
|
|
||
|
if(dwError == DIALUP_REQUIRED )
|
||
|
{
|
||
|
// Load RASPAI32.DLL and Exit if it can not be loaded
|
||
|
if( ATK_IsRasDllOk() != RAS_DLL_LOADED )
|
||
|
{
|
||
|
//
|
||
|
dwError = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
sdwConnectionStatus = CONNECTION_CANNOT_BE_ESTABLISHED;
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n RASAPI32.DLL NOT FOUND ...";
|
||
|
#endif
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ExitChk:
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG <<"\n Chk Connection ( 1 = via NTWK, 2 = DIalup , 3 = Problem) " << dwError << flush;
|
||
|
#endif
|
||
|
theInternetClass.UnLoadInetCfgDll();
|
||
|
return dwError;
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
DWORD SendHTTPData(HWND hWnd, HINSTANCE hInstance)
|
||
|
{
|
||
|
char czB [MAX_BUFFER + 1]; // Buffer for Tx
|
||
|
DWORD dwBufSize = MAX_BUFFER;
|
||
|
DWORD dwOemBufSize;
|
||
|
DWORD dwRet;
|
||
|
_TCHAR szValue[256];
|
||
|
|
||
|
|
||
|
DWORD dwTimeOut = CONNECTION_TIME_OUT;
|
||
|
|
||
|
// MDX : 03/11/99
|
||
|
// Get MSID From Cookie , No need to check from Registry
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n*******Getting Cookie********\n"<< flush;
|
||
|
#endif
|
||
|
if(dwConnectionStatus == DIALUP_REQUIRED){
|
||
|
ChkSiteAvailability(hWnd, theInternetClass.m_strIISServer,
|
||
|
dwTimeOut,
|
||
|
NULL,
|
||
|
theInternetClass.m_UserName,
|
||
|
theInternetClass.m_Password);
|
||
|
}
|
||
|
else{
|
||
|
ChkSiteAvailability(hWnd, theInternetClass.m_strIISServer,
|
||
|
dwTimeOut,
|
||
|
(LPTSTR) theInternetClass.GetProxyServer(),
|
||
|
theInternetClass.m_UserName,
|
||
|
theInternetClass.m_Password);
|
||
|
}
|
||
|
|
||
|
SetMSID(hInstance);
|
||
|
|
||
|
|
||
|
dwRet = PrepareRegWizTxbuffer(hInstance, czB, &dwBufSize);
|
||
|
dwOemBufSize = MAX_BUFFER - dwBufSize;
|
||
|
dwRet = OemTransmitBuffer(hInstance,czB + dwBufSize,&dwOemBufSize);
|
||
|
dwBufSize += dwOemBufSize;
|
||
|
|
||
|
switch(dwRet)
|
||
|
{
|
||
|
case RWZ_NOERROR:
|
||
|
theInternetClass.SetBuffer(czB, dwBufSize+1);
|
||
|
theInternetClass.SetSSLFlag(TRUE);
|
||
|
dwRet = theInternetClass.PostData(hWnd);
|
||
|
// dwRet = InvokePost(hWnd, &theInternetClass);
|
||
|
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n PostData() returned: "<<dwRet << flush;
|
||
|
#endif
|
||
|
|
||
|
if( dwRet == RWZ_POST_FAILURE || dwRet == RWZ_POST_WITH_SSL_FAILURE)
|
||
|
{
|
||
|
// Try posting without SSL only for the modem
|
||
|
//if(dwConnectionStatus == DIALUP_REQUIRED)
|
||
|
//{
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Posting Failure : Sending Data without SSL" << flush;
|
||
|
#endif
|
||
|
theInternetClass.SetSSLFlag(FALSE);
|
||
|
dwRet = theInternetClass.PostData(hWnd);
|
||
|
//dwRet = InvokePost(hWnd, &theInternetClass);
|
||
|
//}
|
||
|
}
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Success ... \t" << dwRet << flush;
|
||
|
RW_DEBUG <<"\n\n\nBuffer\t\t*[" << czB << "]" << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_NO_INFO_AVAILABLE :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << _T("\n No Info Available ") << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_INVALID_INFORMATION :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << _T("\n Invalid Info " ) << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_BUFFER_SIZE_INSUFFICIENT :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG <<_T("\n Buffer Length In Sufficient ...") << dwRet;
|
||
|
RW_DEBUG <<_T("\n\n\nBuffer\t\t") << czB;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_INTERNAL_ERROR :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << _T("\n Internal Error ....") ;
|
||
|
#endif
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << flush;
|
||
|
#endif
|
||
|
return dwRet;
|
||
|
}
|
||
|
|
||
|
|
||
|
/*DWORD PostHTTPData(HINSTANCE hInstance)
|
||
|
{
|
||
|
DWORD dwRet = RWZ_POST_FAILURE;
|
||
|
DWORD dwRetStatus;
|
||
|
|
||
|
dwRetStatus = CheckWithDisplayInternetConnectivityExists(hInstance,2);
|
||
|
|
||
|
switch (dwRetStatus)
|
||
|
{
|
||
|
case DIALUP_NOT_REQUIRED :
|
||
|
if ((dwRet = PostDataWithWindowMessage(hInstance))
|
||
|
== RWZ_POST_SUCCESS){
|
||
|
;
|
||
|
}
|
||
|
else {
|
||
|
}
|
||
|
break;
|
||
|
case DIALUP_REQUIRED :
|
||
|
dwRet=DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIAL), NULL,FDlgProc,
|
||
|
(LPARAM)hInstance);
|
||
|
if(dwRet == -1 ) {
|
||
|
// Error in creating the Dialogue
|
||
|
|
||
|
}
|
||
|
switch ( dwRet) {
|
||
|
case RWZ_ERROR_LOCATING_MSN_FILES :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup :Error Locating MSN File " << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_ERROR_LOCATING_DUN_FILES :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup :Error Locating DUN File " << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_ERROR_MODEM_IN_USE :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup :Error Modem Already in use by another Application " << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_ERROR_MODEM_CFG_ERROR:
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup :Modem Configuration Error " << flush;
|
||
|
#endif
|
||
|
case RWZ_ERROR_TXFER_CANCELLED_BY_USER :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup :HTTP Post Cancelled by User " << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_ERROR_SYSTEMERROR :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup : System Resource Allocation Error " << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
case RWZ_ERROR_NODIALTONE :
|
||
|
#ifdef _LOG_IN_FILE
|
||
|
RW_DEBUG << "\n Signup : Modem Error No Dialtone " << flush;
|
||
|
#endif
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
case CONNECTION_CANNOT_BE_ESTABLISHED :
|
||
|
default :
|
||
|
// It is unexpected . ? to Do
|
||
|
|
||
|
break;
|
||
|
|
||
|
}
|
||
|
return dwRet;
|
||
|
}
|
||
|
**/
|
||
|
|