void FinishRegKey() { if (g_szRegKey==NULL) return; if (g_szRegFile!=NULL) { SaveSettingsToFile(g_szRegKey,g_szRegFile,g_bFileIsReg); delete[] g_szRegFile; } delete[] g_szRegKey; }
DialUpView::~DialUpView() { SaveSettingsToFile(); int32 tmp; wait_for_thread(fUpDownThread, &tmp); // free known add-on types (these should free their known add-on types, etc.) DialUpAddon *addon; for(int32 index = 0; fAddons.FindPointer(DUN_DELETE_ON_QUIT, index, reinterpret_cast<void**>(&addon)) == B_OK; index++) delete addon; }
void DialUpView::SelectInterface(int32 index, bool isNew) { BMenuItem *item = fInterfaceMenu->FindMarked(); if(fCurrentItem && item == fCurrentItem) return; if(fCurrentItem && !SaveSettingsToFile()) (new BAlert(kErrorTitle, kErrorSavingFailed, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); if(index >= CountInterfaces() || index < 0) { if(CountInterfaces() > 0) SelectInterface(0); else { fCurrentItem = NULL; WatchInterface(PPP_UNDEFINED_INTERFACE_ID); } } else { fCurrentItem = fInterfaceMenu->ItemAt(index); if(!fCurrentItem) { SelectInterface(0); return; } fCurrentItem->SetMarked(true); fDeleterItem->SetEnabled(true); WatchInterface(fListener.Manager().InterfaceWithName(fCurrentItem->Label())); } if(!fCurrentItem) LoadSettings(false); // tell modules to unload all settings else if(!isNew && !LoadSettings(false)) { (new BAlert(kErrorTitle, kErrorLoadingFailed, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); LoadSettings(true); } else if(isNew && !LoadSettings(true)) (new BAlert(kErrorTitle, kErrorLoadingFailed, kLabelOK, NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(NULL); }
void DialUpView::UpDownThread() { SaveSettingsToFile(); BMessage settings, profile; SaveSettings(&settings, &profile, true); // save temporary profile driver_settings *temporaryProfile = MessageToDriverSettings(profile); PPPInterface interface; if(fWatching == PPP_UNDEFINED_INTERFACE_ID) { interface = fListener.Manager().InterfaceWithName(fCurrentItem->Label()); if(interface.InitCheck() != B_OK) interface = fListener.Manager().CreateInterfaceWithName( fCurrentItem->Label(), temporaryProfile); } else { interface = fWatching; interface.SetProfile(temporaryProfile); } free_driver_settings(temporaryProfile); if(interface.InitCheck() != B_OK) { Window()->Lock(); fStatusView->SetText(kTextCreationError); Window()->Unlock(); return; } ppp_interface_info_t info; interface.GetInterfaceInfo(&info); if(info.info.phase == PPP_DOWN_PHASE) interface.Up(); else interface.Down(); fUpDownThread = -1; }