Exemplo n.º 1
0
bool HasInternetConnection()
{
    bool bInternetConnected;

    if (g_bIE5) {
        DWORD dwConnectionTypes = INTERNET_CONNECTION_LAN |
            INTERNET_CONNECTION_MODEM |
            INTERNET_CONNECTION_PROXY;
        if (!InternetGetConnectedState(&dwConnectionTypes, 0)) {
            InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED, 0);
        }
        bInternetConnected = InternetGetConnectedState(&dwConnectionTypes, 0);
    }
    else {
        AfxGetApp()->DoWaitCursor(1);
        bInternetConnected = __IsInternetConnected();
        AfxGetApp()->DoWaitCursor(-1);
    }

    if (bInternetConnected) {
        // Guess which mode !
        g_sInternetMethod = (g_bIE5 ? "ie5" : "direct");
    }
    return bInternetConnected;
}
Exemplo n.º 2
0
/*
 * Class:     sage_Sage
 * Method:    connectToInternet0
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_sage_Sage_connectToInternet0(JNIEnv *env, jclass jc)
{
	DWORD dwConnectionTypes = INTERNET_CONNECTION_LAN |
		INTERNET_CONNECTION_MODEM |
		INTERNET_CONNECTION_PROXY;
	if (!InternetGetConnectedState(&dwConnectionTypes, 0))
	{
		slog((env, "Internet connection not present, autodialing...\r\n"));
		if (InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED, 0))
			return sage_Sage_DID_CONNECT;
		else
			return sage_Sage_CONNECT_ERR;
	}
	return 0;
}
VOID WINAPI CDialDlg::_RasDialFunc(UINT, RASCONNSTATE state, DWORD dwError)
{
    if (m_bNeedStop)
        return;

    if (m_pThis == NULL)
        return;

    m_bInRasFunc = TRUE;


    m_pThisRefs++;

    if (dwError && m_bNeedStop == FALSE)
    {
        switch (dwError)
        {
        case ERROR_LINE_BUSY:

            m_pThis->Log (LS (L_LINEBUSY));
            break;

        case ERROR_PORT_OR_DEVICE:
            m_pThis->Log (LS (L_HARDWAREFAILURE));
            break;

        case ERROR_NO_DIALTONE:
            m_pThis->Log (LS (L_NODIALTONE));
            break;

        case ERROR_AUTHENTICATION_FAILURE:
            m_pThis->Log (LS (L_INVLOGIN2));
            break;

        default:


            char szErr [256];
            fsRasGetErrorString (dwError, szErr, sizeof (szErr));
            m_pThis->Log (szErr);

            if (m_pThis->m_dial == NULL)
                m_pThis->Cancel ();
            else
            {

                m_pThis->PostMessage (WM_DIALDLG_ENDDIALOG, IDCANCEL);
                Release_pThis ();
            }
            Release_pThis ();
            m_bInRasFunc = FALSE;
            return;
        }


        fsRasHangUp (m_hConn);
        m_hConn = NULL;

        m_pThis->m_cAttempts++;

        if (m_pThis->m_dial)
        {

            if (m_pThis->m_dial->cAttempts > m_pThis->m_cAttempts)
            {

                m_pThis->SleepInterval ();
            }
            else
            {


                if (m_hConn)
                {
                    fsRasHangUp (m_hConn);
                    m_hConn = NULL;
                }
                m_pThis->PostMessage (WM_DIALDLG_ENDDIALOG, IDCANCEL);
                Release_pThis ();
                Release_pThis ();
                m_bInRasFunc = FALSE;
                return;
            }
        }

        if (m_bNeedStop == FALSE)
        {


            m_pThis->Log ("");
            CString str;
            str.Format ("%s... %s %d", LS (L_DIALING), LS (L_ATTEMPT), m_pThis->m_cAttempts+1);
            m_pThis->Log (str);


            fsRasDial (NULL, NULL, &m_pThis->m_rp, 0, _RasDialFunc, &m_hConn);
        }

        Release_pThis ();
        m_bInRasFunc = FALSE;
        return;
    }


    switch (state)
    {
    case RASCS_OpenPort:
        m_pThis->Log (LS (L_OPENPORT));
        break;

    case RASCS_ConnectDevice:
        m_pThis->Log (LS (L_DIALTOPROVIDER));
        break;

    case RASCS_DeviceConnected:
        m_pThis->Log (LS (L_CONNECTEDTOREMOTE));
        break;

    case RASCS_Authenticate:
        m_pThis->Log (LS (L_VERUSERANDPASS));
        break;

    case RASCS_Connected:
        RAS_STATS stat;
        stat.dwSize = sizeof (stat);


        if (fsSysGetOsMajorVersion () >= 5)

            fsSysGetConnectionStatistics (m_hConn, &stat);
        else
            stat.dwBps = UINT_MAX;


        if (m_pThis->m_dial && stat.dwBps < m_pThis->m_dial->dwHangupLess)
        {
            CString str;
            str.Format (LS (L_CONNSPEEDNOW), stat.dwBps);
            m_pThis->Log (str);
            m_pThis->Log (LS (L_HANGUPIT));
            fsRasHangUp (m_hConn);
            m_hConn = NULL;


            if (m_pThis->m_cAgains < m_pThis->m_dial->cAgains)
            {


                m_pThis->m_cAttempts = 0;
                m_pThis->Log ("");
                CString str;
                str.Format ("%s %d", LS (L_REPETITION), m_pThis->m_cAgains+1);
                m_pThis->Log (str);
                m_pThis->Log ("");
                str.Format ("%s... %s %d", LS (L_DIALING), LS (L_ATTEMPT), m_pThis->m_cAttempts+1);
                m_pThis->Log (str);
                fsRasDial (NULL, NULL, &m_pThis->m_rp, 0, _RasDialFunc, &m_hConn);
                m_pThis->m_cAgains++;
            }
            else
            {

                m_pThis->PostMessage (WM_DIALDLG_ENDDIALOG, IDCANCEL);
                if (m_hConn)
                {
                    fsRasHangUp (m_hConn);
                    m_hConn = NULL;
                }
                Release_pThis ();
            }
        }
        else
        {

            m_hConn = NULL;
            InternetAutodial (INTERNET_AUTODIAL_FORCE_ONLINE, NULL);
            m_pThis->PostMessage (WM_DIALDLG_ENDDIALOG, IDOK);
            Release_pThis ();
        }
        break;
    }

    Release_pThis ();
    m_bInRasFunc = FALSE;
}
Exemplo n.º 4
0
int CSModuleLoaded(WPARAM wParam, LPARAM lParam)
{
	protoList = (OBJLIST<PROTOCOLSETTINGEX>*)&startupSettings;

	InitProfileModule();

	HookEvent(ME_PROTO_ACCLISTCHANGED, OnAccChanged);
	HookEvent(ME_OPT_INITIALISE, OptionsInit);

	/* shutdown hook for normal shutdown */
	HookEvent(ME_SYSTEM_OKTOEXIT, OnOkToExit);
	HookEvent(ME_SYSTEM_PRESHUTDOWN, OnShutdown);
	/* message window for poweroff */
	hMessageWindow = CreateWindowEx(0, _T("STATIC"), NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
	SetWindowLongPtr(hMessageWindow, GWLP_WNDPROC, (LONG_PTR)MessageWndProc);

	GetProfile(-1, startupSettings);

	// override with cmdl
	ProcessCommandLineOptions(startupSettings);
	if (startupSettings.getCount() == 0)
		return 0;// no protocols are loaded

	SetLastStatusMessages(startupSettings);
	showDialogOnStartup = (showDialogOnStartup || db_get_b(NULL, MODULENAME, SETTING_SHOWDIALOG, 0));

	// dial
	if (showDialogOnStartup || db_get_b(NULL, MODULENAME, SETTING_SETPROFILE, 1))
		if (db_get_b(NULL, MODULENAME, SETTING_AUTODIAL, 0))
			InternetAutodial(0, NULL);

	// set the status!
	if (showDialogOnStartup || db_get_b(NULL, MODULENAME, SETTING_SHOWDIALOG, 0))
		CallService(MS_CS_SHOWCONFIRMDLGEX, (WPARAM)&startupSettings, db_get_dw(NULL, MODULENAME, SETTING_DLGTIMEOUT, 5));
	else if (db_get_b(NULL, MODULENAME, SETTING_SETPROFILE, 1)) {
		// set hooks for override
		if (db_get_b(NULL, MODULENAME, SETTING_OVERRIDE, 1)) {
			hProtoAckHook = HookEvent(ME_PROTO_ACK, ProcessProtoAck);
			hCSStatusChangeHook = HookEvent(ME_CS_STATUSCHANGEEX, CSStatusChangeEx);
			hStatusChangeHook = HookEvent(ME_CLIST_STATUSMODECHANGE, StatusChange);
		}
		setStatusTimerId = SetTimer(NULL, 0, db_get_dw(NULL, MODULENAME, SETTING_SETPROFILEDELAY, 500), SetStatusTimed);
	}

	// win size and location
	if (db_get_b(NULL, MODULENAME, SETTING_SETWINLOCATION, 0) || db_get_b(NULL, MODULENAME, SETTING_SETWINSIZE, 0)) {
		HWND hClist = pcli->hwndContactList;

		// store in db
		if (db_get_b(NULL, MODULENAME, SETTING_SETWINLOCATION, 0)) {
			db_set_dw(NULL, MODULE_CLIST, SETTING_XPOS, db_get_dw(NULL, MODULENAME, SETTING_XPOS, 0));
			db_set_dw(NULL, MODULE_CLIST, SETTING_YPOS, db_get_dw(NULL, MODULENAME, SETTING_YPOS, 0));
		}
		if (db_get_b(NULL, MODULENAME, SETTING_SETWINSIZE, 0)) {
			db_set_dw(NULL, MODULE_CLIST, SETTING_WIDTH, db_get_dw(NULL, MODULENAME, SETTING_WIDTH, 0));
			if (!db_get_b(NULL, MODULE_CLUI, SETTING_AUTOSIZE, 0))
				db_set_dw(NULL, MODULE_CLIST, SETTING_HEIGHT, db_get_dw(NULL, MODULENAME, SETTING_HEIGHT, 0));
		}

		WINDOWPLACEMENT wndpl = { sizeof(wndpl) };
		if (GetWindowPlacement(hClist, &wndpl)) {
			if (wndpl.showCmd == SW_SHOWNORMAL && !CallService(MS_CLIST_DOCKINGISDOCKED, 0, 0)) {
				RECT rc;
				if (GetWindowRect(hClist, &rc)) {
					int x = rc.left;
					int y = rc.top;
					int width = rc.right - rc.left;
					int height = rc.bottom - rc.top;
					if (db_get_b(NULL, MODULENAME, SETTING_SETWINLOCATION, 0)) {
						x = db_get_dw(NULL, MODULENAME, SETTING_XPOS, x);
						y = db_get_dw(NULL, MODULENAME, SETTING_YPOS, y);
					}
					if (db_get_b(NULL, MODULENAME, SETTING_SETWINSIZE, 0)) {
						width = db_get_dw(NULL, MODULENAME, SETTING_WIDTH, width);
						if (!db_get_b(NULL, MODULE_CLUI, SETTING_AUTOSIZE, 0))
							height = db_get_dw(NULL, MODULENAME, SETTING_HEIGHT, height);
					}
					MoveWindow(hClist, x, y, width, height, TRUE);
	}	}	}	}
	
	return 0;
}