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; }
/* * 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; }
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; }