void CFirewallOpener::UnInit(){ if (!m_bInited) return; for (int i = 0; i != m_liAddedRules.GetCount(); i++){ if (m_liAddedRules[i].m_bRemoveOnExit) RemoveRule(m_liAddedRules[i]); } m_liAddedRules.RemoveAll(); m_bInited = false; if (m_pINetSM != NULL){ m_pINetSM->Release(); m_pINetSM = NULL; } else ASSERT ( false ); CoUninitialize(); }
// ==> Improved ICS-Firewall support [MoNKi] - Max void CFirewallOpener::ClearOld() { bool deleteFile = true; bool ret = false; //Clears old mappings CFile fICFdat; if(fICFdat.Open(GetICFdatFileName(), CFile::modeRead | CFile::typeBinary)) { CICSRuleInfo oldmapping; while(ReadFromICFdat(fICFdat, oldmapping)) { ret = RemoveRule(oldmapping); deleteFile = deleteFile && ret; } fICFdat.Close(); if(deleteFile) CFile::Remove(GetICFdatFileName()); } }
void CFirewallOpener::UnInit() { if (!m_bInited) return; for (int i = 0; i != m_liAddedRules.GetCount(); i++) { // ==> Improved ICS-Firewall support [MoNKi] - Max /* if (m_liAddedRules[i].m_bRemoveOnExit) */ if (m_liAddedRules[i].m_bRemoveOnExit || m_bClearMappings) // <== Improved ICS-Firewall support [MoNKi] - Max RemoveRule(m_liAddedRules[i]); } m_liAddedRules.RemoveAll(); m_bInited = false; if (m_pINetSM != NULL) { m_pINetSM->Release(); m_pINetSM = NULL; } else ASSERT ( false ); CoUninitialize(); }
void PrefsWindow::MessageReceived(BMessage *msg) { switch(msg->what) { case M_SHOW_ADD_WINDOW: { BRect frame(Frame()); frame.right = frame.left + 400; frame.bottom = frame.top + 300; frame.OffsetBy(20,20); RuleEditWindow *rulewin = new RuleEditWindow(frame,NULL); rulewin->Show(); break; } case M_SHOW_EDIT_WINDOW: { BRect frame(Frame()); frame.right = frame.left + 400; frame.bottom = frame.top + 300; frame.OffsetBy(20,20); FilerRule *rule = fRuleList->ItemAt(fRuleItemList->CurrentSelection()); RuleEditWindow *rulewin = new RuleEditWindow(frame,rule); rulewin->Show(); break; } case M_ADD_RULE: { fChanges = true; FilerRule *item; if (msg->FindPointer("item",(void**)&item) == B_OK) AddRule(item); break; } case M_REMOVE_RULE: { fChanges = true; if (fRuleItemList->CurrentSelection() >= 0) RemoveRule((RuleItem*)fRuleItemList->ItemAt(fRuleItemList->CurrentSelection())); break; } case M_UPDATE_RULE: { fChanges = true; FilerRule *rule; if (msg->FindPointer("item",(void**)&rule) == B_OK) { int64 id; if (msg->FindInt64("id",&id) != B_OK) debugger("Couldn't find update ID"); for (int32 i = 0; i < fRuleList->CountItems(); i++) { FilerRule *oldrule = fRuleList->ItemAt(i); if (oldrule->GetID() == id) { *oldrule = *rule; RuleItem *item = (RuleItem*)fRuleItemList->ItemAt(i); item->SetText(rule->GetDescription()); break; } } delete rule; } break; } case M_REVERT: { while (fRuleItemList->CountItems() > 0) RemoveRule((RuleItem*)fRuleItemList->ItemAt(0L)); fRuleList->MakeEmpty(); fEditButton->SetEnabled(false); fRemoveButton->SetEnabled(false); LoadRules("/boot/home/config/settings/FilerRules",fRuleList); break; } case M_RULE_SELECTED: { bool value = (fRuleItemList->CurrentSelection() >= 0); fEditButton->SetEnabled(value); fRemoveButton->SetEnabled(value); if (fRuleItemList->CountItems() > 1) { fMoveUpButton->SetEnabled(value); fMoveDownButton->SetEnabled(value); } break; } case M_MOVE_RULE_UP: { fChanges = true; int32 selection = fRuleItemList->CurrentSelection(); if (selection < 1) break; fRuleItemList->SwapItems(selection, selection - 1); fRuleList->SwapItems(selection, selection - 1); break; } case M_MOVE_RULE_DOWN: { fChanges = true; int32 selection = fRuleItemList->CurrentSelection(); if (selection > fRuleItemList->CountItems() - 1) break; fRuleItemList->SwapItems(selection, selection + 1); fRuleList->SwapItems(selection, selection + 1); break; } default: BWindow::MessageReceived(msg); break; } }