mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-03-25 04:37:22 +01:00
2009-05-27 vadim <vadim@vk.crocodile.org>
* RCSFilePreview.cpp (RCSViewItem::operator<): implemented feature req. #2796238 "3.0.4 - FEAT REQ: Sort order for RCSFilePreview". RCS file preview dialog (the one that shows RCS revisions and RCS log records) can display revisions in the tree or list view style, controlled by radio-buttons. Style setting is saved in user preferences and persists from session to session. In both cases the view can be sorted by revision number or data. Sort column choice is also saved in preferences. By default program sorts by date and selects the latest revision. * ObjectManipulator.cpp (ObjectManipulator::actuallyPasteTo): fixed bug (no #): the GUI did not allow to copy/paste an address from one interface to another. This should be possible.
This commit is contained in:
parent
0a191e2fdd
commit
68103fe615
@ -1,5 +1,19 @@
|
||||
2009-05-27 vadim <vadim@vk.crocodile.org>
|
||||
|
||||
* RCSFilePreview.cpp (RCSViewItem::operator<): implemented feature
|
||||
req. #2796238 "3.0.4 - FEAT REQ: Sort order for RCSFilePreview".
|
||||
RCS file preview dialog (the one that shows RCS revisions and RCS
|
||||
log records) can display revisions in the tree or list view style,
|
||||
controlled by radio-buttons. Style setting is saved in user
|
||||
preferences and persists from session to session. In both cases
|
||||
the view can be sorted by revision number or data. Sort column
|
||||
choice is also saved in preferences. By default program sorts by
|
||||
date and selects the latest revision.
|
||||
|
||||
* ObjectManipulator.cpp (ObjectManipulator::actuallyPasteTo):
|
||||
fixed bug (no #): the GUI did not allow to copy/paste an address
|
||||
from one interface to another. This should be possible.
|
||||
|
||||
* PolicyCompiler_pf_writers.cpp (PrintRule::_printAddr): fixed
|
||||
bug (no #): policy compiler for pf crashed when dynamic interface
|
||||
was used in source or destination of a policy rule.
|
||||
|
||||
@ -79,6 +79,9 @@ const char* objTooltips = SETTINGS_PATH_PREFIX "/UI/objTooltips";
|
||||
const char* tooltipDelay = SETTINGS_PATH_PREFIX "/UI/tooltipDelay";
|
||||
|
||||
const char* emptyRCSLog = SETTINGS_PATH_PREFIX "/RCS/emptyLog";
|
||||
const char* rcsFilePreviewStyle = SETTINGS_PATH_PREFIX "/RCS/FilePreviewStyle";
|
||||
const char* rcsFilePreviewSortColumn = SETTINGS_PATH_PREFIX "/RCS/FilePreviewSortColumn";
|
||||
|
||||
const char* dontSaveStdLib = SETTINGS_PATH_PREFIX "/DataFormat/dontSaveStdLib";
|
||||
const char* WindowGeometrySetpath= SETTINGS_PATH_PREFIX "/Layout/";
|
||||
const char* screenPositionSetpath= SETTINGS_PATH_PREFIX "/ScreenPos/";
|
||||
@ -119,7 +122,11 @@ void FWBSettings::init()
|
||||
|
||||
ok = contains(appGUID);
|
||||
if (!ok) setValue(appGUID, QUuid::createUuid().toString() );
|
||||
|
||||
|
||||
// By default sort RCS File preview by date, which is column 1
|
||||
ok = contains(rcsFilePreviewSortColumn);
|
||||
if (!ok) setRCSFilePreviewSortColumn(1);
|
||||
|
||||
ok = contains(infoStyleSetpath);
|
||||
if (!ok) setValue(infoStyleSetpath,2);
|
||||
|
||||
@ -313,7 +320,6 @@ void FWBSettings::setSaveFileDir( const QString &d )
|
||||
setValue(sfdirSetpath,d);
|
||||
}
|
||||
|
||||
|
||||
void FWBSettings::save()
|
||||
{
|
||||
if (mw->db()!=NULL)
|
||||
@ -323,6 +329,26 @@ void FWBSettings::save()
|
||||
bool FWBSettings::getRCSLogState() { return value( emptyRCSLog ).toBool(); }
|
||||
void FWBSettings::setRCSLogState(bool f) { setValue( emptyRCSLog , f ); }
|
||||
|
||||
int FWBSettings::getRCSFilePreviewStyle()
|
||||
{
|
||||
return value(rcsFilePreviewStyle).toInt();
|
||||
}
|
||||
|
||||
void FWBSettings::setRCSFilePreviewStyle(int style)
|
||||
{
|
||||
setValue(rcsFilePreviewStyle, style);
|
||||
}
|
||||
|
||||
int FWBSettings::getRCSFilePreviewSortColumn()
|
||||
{
|
||||
return value(rcsFilePreviewSortColumn).toInt();
|
||||
}
|
||||
|
||||
void FWBSettings::setRCSFilePreviewSortColumn(int col)
|
||||
{
|
||||
setValue(rcsFilePreviewSortColumn, col);
|
||||
}
|
||||
|
||||
bool FWBSettings::getAutoSave() { return value( autoSave ).toBool(); }
|
||||
void FWBSettings::setAutoSave(bool f) { setValue( autoSave, f); }
|
||||
|
||||
|
||||
@ -105,6 +105,12 @@ class FWBSettings : public QSettings {
|
||||
bool getRCSLogState();
|
||||
void setRCSLogState(bool f);
|
||||
|
||||
int getRCSFilePreviewStyle();
|
||||
void setRCSFilePreviewStyle(int style);
|
||||
|
||||
int getRCSFilePreviewSortColumn();
|
||||
void setRCSFilePreviewSortColumn(int col);
|
||||
|
||||
bool getAutoSave();
|
||||
void setAutoSave(bool f);
|
||||
|
||||
|
||||
@ -1747,13 +1747,16 @@ FWObject* ObjectManipulator::actuallyPasteTo(FWObject *target,
|
||||
}
|
||||
|
||||
if ( m_project->isSystem(ta) ||
|
||||
(Firewall::isA(ta) && RuleSet::cast(obj)!=NULL))
|
||||
(Firewall::isA(ta) && RuleSet::cast(obj)!=NULL) ||
|
||||
(Interface::isA(ta) && (IPv4::cast(obj) || IPv6::cast(obj)))
|
||||
)
|
||||
{
|
||||
/* add a copy of the object to system group , or
|
||||
* add ruleset object to a firewall.
|
||||
*/
|
||||
if (fwbdebug) qDebug("Copy object %s (%d) to a system group, firewall or ruleset",
|
||||
obj->getName().c_str(), obj->getId());
|
||||
if (fwbdebug)
|
||||
qDebug("Copy object %s (%d) to a system group, a ruleset to a firewall or an address to an interface",
|
||||
obj->getName().c_str(), obj->getId());
|
||||
FWObject *nobj= m_project->db()->create(obj->getTypeName());
|
||||
assert (nobj!=NULL);
|
||||
nobj->ref();
|
||||
@ -1775,7 +1778,7 @@ FWObject* ObjectManipulator::actuallyPasteTo(FWObject *target,
|
||||
/* check for duplicates. We just won't add an object if it is already there */
|
||||
int cp_id = obj->getId();
|
||||
list<FWObject*>::iterator j;
|
||||
for(j=grp->begin(); j!=grp->end(); ++j)
|
||||
for (j=grp->begin(); j!=grp->end(); ++j)
|
||||
{
|
||||
FWObject *o1=*j;
|
||||
if(cp_id==o1->getId()) return o1;
|
||||
@ -1787,6 +1790,7 @@ FWObject* ObjectManipulator::actuallyPasteTo(FWObject *target,
|
||||
|
||||
grp->addRef(obj);
|
||||
}
|
||||
|
||||
}
|
||||
catch(FWException &ex)
|
||||
{
|
||||
|
||||
@ -28,9 +28,11 @@
|
||||
|
||||
#include "RCS.h"
|
||||
#include "RCSFilePreview.h"
|
||||
#include "FWBSettings.h"
|
||||
|
||||
#include "fwbuilder/libfwbuilder-config.h"
|
||||
#include "fwbuilder/FWException.h"
|
||||
#include "fwbuilder/XMLTools.h"
|
||||
|
||||
#include <QTreeWidget>
|
||||
#include <qregexp.h>
|
||||
@ -43,24 +45,18 @@
|
||||
using namespace std;
|
||||
using namespace libfwbuilder;
|
||||
|
||||
int RCSViewItem::compare(QTreeWidgetItem *itm, int col, bool ) const
|
||||
bool RCSViewItem::operator<(const QTreeWidgetItem &other) const
|
||||
{
|
||||
QString rev1 = text(col);
|
||||
QString rev2 = itm->text(col);
|
||||
int col = treeWidget()->sortColumn();
|
||||
|
||||
for(int i=1; ; i++)
|
||||
{
|
||||
QString v1 = rev1.section(".",i,i);
|
||||
QString v2 = rev2.section(".",i,i);
|
||||
if (v1=="" && v2=="") return 0;
|
||||
if (v1==v2) continue;
|
||||
if (v1=="" && v2!="") return -1;
|
||||
if (v1!="" && v2=="") return 1;
|
||||
if (v1.toInt()>v2.toInt()) return 1;
|
||||
if (v1.toInt()<v2.toInt()) return -1;
|
||||
i++;
|
||||
}
|
||||
return 0;
|
||||
QString col_txt_1 = text(col);
|
||||
QString col_txt_2 = other.text(col);
|
||||
|
||||
if (col==0) // column 0 is revision number
|
||||
return (XMLTools::version_compare(
|
||||
col_txt_1.toStdString(), col_txt_2.toStdString()) < 0);
|
||||
|
||||
return (col_txt_1 < col_txt_2);
|
||||
}
|
||||
|
||||
RCSFilePreview::RCSFilePreview(QWidget *parent): QDialog(parent)
|
||||
@ -76,10 +72,15 @@ RCSFilePreview::RCSFilePreview(QWidget *parent): QDialog(parent)
|
||||
SIGNAL( itemActivated( QTreeWidgetItem*, int ) ),
|
||||
this, SLOT( accept() ) );
|
||||
|
||||
if (st->getRCSFilePreviewStyle()==1)
|
||||
m_widget->list_view->setChecked(true);
|
||||
else
|
||||
m_widget->tree_view->setChecked(true);
|
||||
|
||||
m_widget->RCSTreeView->setAllColumnsShowFocus( true );
|
||||
m_widget->RCSTreeView->setSelectionMode(
|
||||
QAbstractItemView::SingleSelection );
|
||||
m_widget->RCSTreeView->setSelectionMode(QAbstractItemView::SingleSelection );
|
||||
m_widget->RCSTreeView->setRootIsDecorated( FALSE );
|
||||
|
||||
// m_widget->RCSTreeView->sortByColumn( 0, Qt::AscendingOrder );
|
||||
|
||||
if (fwbdebug) qDebug("RCSFilePreview: constructor done");
|
||||
@ -92,6 +93,7 @@ RCSFilePreview::~RCSFilePreview()
|
||||
{
|
||||
if (fwbdebug) qDebug("~RCSFilePreview() rcs=%p", rcs);
|
||||
// if (rcs!=NULL) delete rcs;
|
||||
st->setRCSFilePreviewSortColumn(m_widget->RCSTreeView->sortColumn());
|
||||
}
|
||||
|
||||
void RCSFilePreview::openReadOnly()
|
||||
@ -124,6 +126,11 @@ bool RCSFilePreview::showFileRLog( const QString &filename )
|
||||
if (fwbdebug) qDebug("RCSFilePreview::showFileRLog filename=%s rcs=%p",
|
||||
filename.toLocal8Bit().constData(),rcs);
|
||||
|
||||
current_file = filename;
|
||||
|
||||
m_widget->RCSTreeView->disconnect(
|
||||
SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)));
|
||||
|
||||
m_widget->RCSTreeView->clear();
|
||||
|
||||
if (rcs!=NULL) delete rcs;
|
||||
@ -150,56 +157,120 @@ bool RCSFilePreview::showFileRLog( const QString &filename )
|
||||
QList<Revision>::iterator i;
|
||||
QList<RCSViewItem*> itemList;
|
||||
QList<RCSViewItem*>::iterator ili;
|
||||
RCSViewItem* lastItem = NULL;
|
||||
RCSViewItem* latest_revision_item = NULL;
|
||||
RCSViewItem* latest_date_item = NULL;
|
||||
string latest_revision = "1.0";
|
||||
QString latest_date = "";
|
||||
|
||||
for (i=rcs->revisions.begin(); i!=rcs->revisions.end(); ++i)
|
||||
{
|
||||
rcsComments[(*i).rev]=(*i).log;
|
||||
rcsComments[(*i).rev] = (*i).log;
|
||||
|
||||
if ((*i).rev.indexOf(QRegExp("^[0-9]+\\.[0-9]+$"))!=-1)
|
||||
RCSViewItem *itm;
|
||||
if (st->getRCSFilePreviewStyle()==1)
|
||||
{
|
||||
RCSViewItem *itm = new RCSViewItem( rootItm );
|
||||
itm->setText( 0, (*i).rev );
|
||||
itm->setText( 1, (*i).date );
|
||||
itm->setText( 2, (*i).author );
|
||||
itm->setText( 3, QString(" ")+(*i).locked_by );
|
||||
|
||||
// List style
|
||||
itm = addRevision(*i, rootItm);
|
||||
itemList.push_back(itm);
|
||||
lastItem = itm;
|
||||
}
|
||||
|
||||
if ((*i).rev.indexOf(QRegExp("^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"))!=-1)
|
||||
} else
|
||||
{
|
||||
QString branch_root = (*i).rev.section(".",0,1);
|
||||
for (ili=itemList.begin(); ili!=itemList.end(); ++ili)
|
||||
if ((*ili)->text(0) == branch_root)
|
||||
// tree style
|
||||
if ((*i).rev.indexOf(QRegExp("^[0-9]+\\.[0-9]+$"))!=-1)
|
||||
{
|
||||
itm = addRevision(*i, rootItm);
|
||||
itemList.push_back(itm);
|
||||
}
|
||||
|
||||
if ((*i).rev.indexOf(QRegExp("^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+"))!=-1)
|
||||
{
|
||||
QString branch_root = (*i).rev.section(".",0,1);
|
||||
for (ili=itemList.begin(); ili!=itemList.end(); ++ili)
|
||||
{
|
||||
QTreeWidgetItem *br = *ili;
|
||||
if (br!=NULL)
|
||||
if ((*ili)->text(0) == branch_root)
|
||||
{
|
||||
RCSViewItem *itm=new RCSViewItem(br);
|
||||
itm->setText( 0, (*i).rev );
|
||||
itm->setText( 1, (*i).date );
|
||||
itm->setText( 2, (*i).author );
|
||||
itm->setText( 3, QString(" ")+(*i).locked_by );
|
||||
QTreeWidgetItem *br = *ili;
|
||||
if (br!=NULL) itm = addRevision((*i), br);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string itm_revision = (*i).rev.toStdString();
|
||||
|
||||
if (XMLTools::version_compare(itm_revision, latest_revision) > 0)
|
||||
{
|
||||
latest_revision = itm_revision;
|
||||
latest_revision_item = itm;
|
||||
}
|
||||
|
||||
// This relies on the date string in the rcslog output
|
||||
// being in sortable format. This is so for the "C" or "en_US"
|
||||
// locale, but I am not sure about other locales.
|
||||
if ((*i).date > latest_date)
|
||||
{
|
||||
latest_date = (*i).date;
|
||||
latest_date_item = itm;
|
||||
}
|
||||
}
|
||||
|
||||
m_widget->RCSTreeView->scrollToItem( lastItem );
|
||||
|
||||
m_widget->RCSTreeView->expandAll();
|
||||
// m_widget->RCSTreeView->sortByColumn(0, Qt::AscendingOrder);
|
||||
|
||||
m_widget->RCSTreeView->sortByColumn(st->getRCSFilePreviewSortColumn(),
|
||||
Qt::AscendingOrder);
|
||||
|
||||
// connect signal before setting current item so that
|
||||
// selectedRevision gets control and updates rcs log panel
|
||||
connect( m_widget->RCSTreeView,
|
||||
SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
|
||||
this, SLOT(selectedRevision(QTreeWidgetItem*)));
|
||||
|
||||
RCSViewItem* show_item = NULL;
|
||||
|
||||
if (m_widget->RCSTreeView->sortColumn()==0 && latest_revision_item)
|
||||
show_item = latest_revision_item;
|
||||
|
||||
if (m_widget->RCSTreeView->sortColumn()==1 && latest_date_item)
|
||||
show_item = latest_date_item;
|
||||
|
||||
if (show_item)
|
||||
{
|
||||
show_item->setSelected(true);
|
||||
m_widget->RCSTreeView->expandItem(show_item->parent());
|
||||
m_widget->RCSTreeView->setCurrentItem(show_item);
|
||||
m_widget->RCSTreeView->scrollToItem(show_item);
|
||||
}
|
||||
|
||||
// resize after parent of the current item was expanded
|
||||
m_widget->RCSTreeView->resizeColumnToContents ( 0 );
|
||||
m_widget->RCSTreeView->resizeColumnToContents ( 1 );
|
||||
|
||||
lastItem->setSelected( true );
|
||||
m_widget->RCSTreeView->setCurrentItem( lastItem );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
RCSViewItem* RCSFilePreview::addRevision(Revision &rev,
|
||||
QTreeWidgetItem *parent_item)
|
||||
{
|
||||
RCSViewItem *itm = new RCSViewItem(parent_item);
|
||||
itm->setText(0, rev.rev);
|
||||
itm->setText(1, rev.date);
|
||||
itm->setText(2, rev.author);
|
||||
itm->setText(3, QString(" ") + rev.locked_by);
|
||||
return itm;
|
||||
}
|
||||
|
||||
void RCSFilePreview::switchToTreeView()
|
||||
{
|
||||
st->setRCSFilePreviewStyle(0); // 0 for backward compatibility
|
||||
if (!current_file.isEmpty()) showFileRLog(current_file);
|
||||
}
|
||||
|
||||
void RCSFilePreview::switchToListView()
|
||||
{
|
||||
st->setRCSFilePreviewStyle(1);
|
||||
if (!current_file.isEmpty()) showFileRLog(current_file);
|
||||
}
|
||||
|
||||
RCS* RCSFilePreview::getSelectedRev()
|
||||
{
|
||||
|
||||
@ -209,6 +280,10 @@ RCS* RCSFilePreview::getSelectedRev()
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void RCSFilePreview::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
if (fwbdebug)
|
||||
qDebug("RCSFilePreview::closeEvent");
|
||||
st->setRCSFilePreviewSortColumn(m_widget->RCSTreeView->sortColumn());
|
||||
QDialog::closeEvent(event);
|
||||
}
|
||||
|
||||
@ -41,8 +41,8 @@ class RCSViewItem : public QTreeWidgetItem {
|
||||
|
||||
RCSViewItem(QTreeWidget *parent) : QTreeWidgetItem(parent) {}
|
||||
RCSViewItem(QTreeWidgetItem *parent) : QTreeWidgetItem(parent) {}
|
||||
virtual int compare(QTreeWidgetItem *i, int col, bool ascending) const;
|
||||
|
||||
virtual bool operator<(const QTreeWidgetItem &other) const;
|
||||
};
|
||||
|
||||
class RCSFilePreview : public QDialog
|
||||
@ -54,18 +54,25 @@ class RCSFilePreview : public QDialog
|
||||
QString current_file;
|
||||
std::map<QString,QString> rcsComments;
|
||||
bool RO;
|
||||
|
||||
|
||||
RCSViewItem* addRevision(Revision &rev, QTreeWidgetItem *parent_item);
|
||||
|
||||
public:
|
||||
RCSFilePreview(QWidget *parent);
|
||||
~RCSFilePreview();
|
||||
RCS* getSelectedRev();
|
||||
bool showFileRLog( const QString &filename );
|
||||
|
||||
|
||||
public slots:
|
||||
|
||||
virtual void openReadOnly();
|
||||
virtual void selectedRevision(QTreeWidgetItem *itm);
|
||||
virtual void openFile();
|
||||
virtual void openReadOnly();
|
||||
virtual void selectedRevision(QTreeWidgetItem *itm);
|
||||
virtual void openFile();
|
||||
virtual void switchToTreeView();
|
||||
virtual void switchToListView();
|
||||
virtual void closeEvent(QCloseEvent *event);
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -30,8 +30,8 @@
|
||||
<property name="modal" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" >
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_2" >
|
||||
<item row="0" column="1" >
|
||||
<widget class="QTreeWidget" name="RCSTreeView" >
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
@ -51,6 +51,9 @@
|
||||
<property name="alternatingRowColors" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="allColumnsShowFocus" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
@ -76,7 +79,46 @@
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item rowspan="2" row="1" column="0" colspan="2" >
|
||||
<widget class="QFrame" name="frame" >
|
||||
<property name="frameShape" >
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow" >
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QRadioButton" name="tree_view" >
|
||||
<property name="text" >
|
||||
<string>Tree View</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QRadioButton" name="list_view" >
|
||||
<property name="text" >
|
||||
<string>List View</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<spacer name="horizontalSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>267</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" >
|
||||
<widget class="Line" name="line2" >
|
||||
<property name="frameShape" >
|
||||
<enum>QFrame::HLine</enum>
|
||||
@ -89,7 +131,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="3" column="1" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="spacing" >
|
||||
<number>0</number>
|
||||
@ -140,7 +182,7 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<item row="4" column="1" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<item>
|
||||
<spacer>
|
||||
@ -150,7 +192,7 @@
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>111</width>
|
||||
<height>30</height>
|
||||
@ -210,7 +252,6 @@
|
||||
<tabstop>comment</tabstop>
|
||||
<tabstop>openButton</tabstop>
|
||||
</tabstops>
|
||||
<includes/>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
@ -229,22 +270,6 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>RCSTreeView</sender>
|
||||
<signal>currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)</signal>
|
||||
<receiver>RCSFilePreview_q</receiver>
|
||||
<slot>selectedRevision(QTreeWidgetItem*)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<x>20</x>
|
||||
<y>20</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<x>20</x>
|
||||
<y>20</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>openButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
@ -261,5 +286,41 @@
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>tree_view</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>RCSFilePreview_q</receiver>
|
||||
<slot>switchToTreeView()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<x>66</x>
|
||||
<y>301</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<x>253</x>
|
||||
<y>243</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>list_view</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>RCSFilePreview_q</receiver>
|
||||
<slot>switchToListView()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<x>160</x>
|
||||
<y>301</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<x>253</x>
|
||||
<y>243</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
<slots>
|
||||
<slot>switchToTreeView()</slot>
|
||||
<slot>switchToListView()</slot>
|
||||
</slots>
|
||||
</ui>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE FWObjectDatabase SYSTEM "fwbuilder.dtd">
|
||||
<FWObjectDatabase xmlns="http://www.fwbuilder.org/1.0/" version="10" lastModified="1242536814" id="root">
|
||||
<FWObjectDatabase xmlns="http://www.fwbuilder.org/1.0/" version="10" lastModified="1243445686" id="root">
|
||||
<Library id="sysid99" name="Deleted Objects" comment="" ro="False">
|
||||
<ICMP6Service id="idE0C27650" code="0" type="1" name="ipv6 dest unreachable" comment="No route to destination" ro="False"/>
|
||||
<IPv4 id="id41D295E2" name="firewall30:ppp.200*:ip" comment="" ro="False" address="192.168.1.1" netmask="255.255.255.0"/>
|
||||
@ -810,6 +810,7 @@
|
||||
<ObjectRef ref="id178392X48026"/>
|
||||
<IPv6 id="id197751X48026" name="firewall-ipv6-5:eth0:ipv6" comment="" ro="False" address="fe80::21d:9ff:fe8b:8e94" netmask="64"/>
|
||||
<IPv6 id="id178394X48026" name="firewall-ipv6-6:eth1:ip6" comment="" ro="False" address="fe80::21d:9ff:fe8b:8e94" netmask="64"/>
|
||||
<IPv6 id="id42754X3791" name="ipv4-ipv6-host-1:eth0:ip6" comment="" ro="False" address="e80::21d:9ff:fe8b:8e94" netmask="64"/>
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Library>
|
||||
<Library id="syslib001" color="#d2ffd0" name="User" comment="User defined objects" ro="False">
|
||||
@ -1641,6 +1642,32 @@
|
||||
<Option name="use_mac_addr_filter">False</Option>
|
||||
</HostOptions>
|
||||
</Host>
|
||||
<Host id="id42703X3768" name="ipv4-ipv6-host" comment="" ro="False">
|
||||
<Interface id="id42705X3768" bridgeport="False" dyn="False" label="" security_level="0" unnum="False" unprotected="False" name="eth0" comment="" ro="False">
|
||||
<IPv4 id="id42706X3768" name="ipv4-ipv6-host:eth0:ip" comment="" ro="False" address="192.168.1.1" netmask="255.255.255.0"/>
|
||||
<IPv6 id="id42708X3768" name="ipv4-ipv6-host:eth0:ipv6" comment="" ro="False" address="e80::21d:9ff:fe8b:8e94" netmask="64"/>
|
||||
</Interface>
|
||||
<Management address="0.0.0.0">
|
||||
<SNMPManagement enabled="False" snmp_read_community="" snmp_write_community=""/>
|
||||
<FWBDManagement enabled="False" identity="" port="-1"/>
|
||||
<PolicyInstallScript arguments="" command="" enabled="False"/>
|
||||
</Management>
|
||||
<HostOptions/>
|
||||
</Host>
|
||||
<Host id="id42750X3791" name="ipv4-ipv6-host-1" comment="" ro="False">
|
||||
<Interface id="id42752X3791" bridgeport="False" dyn="False" label="" security_level="0" unnum="False" unprotected="False" name="eth0" comment="" ro="False">
|
||||
<IPv4 id="id42753X3791" name="ipv4-ipv6-host-1:eth0:ip" comment="" ro="False" address="192.168.1.1" netmask="255.255.255.0"/>
|
||||
</Interface>
|
||||
<Interface id="id100840X3791" bridgeport="False" dyn="False" label="" security_level="0" unnum="False" unprotected="False" name="eth1" comment="" ro="False">
|
||||
<IPv6 id="id158924X3791" name="ipv4-ipv6-host-1:eth1:ipv6" comment="" ro="False" address="e80::21d:9ff:fe8b:8e94" netmask="64"/>
|
||||
</Interface>
|
||||
<Management address="0.0.0.0">
|
||||
<SNMPManagement enabled="False" snmp_read_community="" snmp_write_community=""/>
|
||||
<FWBDManagement enabled="False" identity="" port="-1"/>
|
||||
<PolicyInstallScript arguments="" command="" enabled="False"/>
|
||||
</Management>
|
||||
<HostOptions/>
|
||||
</Host>
|
||||
</ObjectGroup>
|
||||
<ObjectGroup id="stdid03_1" name="Networks" comment="" ro="False">
|
||||
<Network id="net-Internal_net" name="Internal_net" comment="" ro="False" address="192.168.1.0" netmask="255.255.255.0"/>
|
||||
@ -36064,7 +36091,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="verify_interfaces">True</Option>
|
||||
</FirewallOptions>
|
||||
</Firewall>
|
||||
<Firewall id="id55972X87590" host_OS="linux24" inactive="False" lastCompiled="1230445064" lastInstalled="0" lastModified="1230444846" platform="iptables" version="" name="firewall-ipv6-2" comment="Using ULOG globally, but ipv6 rules should fall back to LOG because there is no ULOG for ip6tables yet Bug 2141911 " ro="False">
|
||||
<Firewall id="id55972X87590" host_OS="linux24" inactive="False" lastCompiled="1243445720" lastInstalled="0" lastModified="1243445707" platform="iptables" version="" name="firewall-ipv6-2" comment="Using ULOG globally, but ipv6 rules should fall back to LOG because there is no ULOG for ip6tables yet Bug 2141911 " ro="False">
|
||||
<NAT id="id56353X87590" name="NAT" comment="" ro="False" ipv4_rule_set="False" ipv6_rule_set="False" top_rule_set="True"/>
|
||||
<Policy id="id56087X87590" name="Policy" comment="" ro="False" ipv4_rule_set="True" ipv6_rule_set="True" top_rule_set="True">
|
||||
<PolicyRule id="id56088X87590" disabled="False" group="" log="False" position="0" action="Accept" direction="Both" comment="this rule shadows the next. Note that we add command line flag -xt to the compiler">
|
||||
@ -36227,7 +36254,47 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56184X87590" disabled="False" log="True" position="8" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id62066X3768" disabled="False" group="" log="False" position="8" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="id42703X3768"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions>
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id178305X3791" disabled="False" group="" log="False" position="9" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="id42750X3791"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions>
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56184X87590" disabled="False" log="True" position="10" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id4834B9206131"/>
|
||||
</Src>
|
||||
@ -36247,7 +36314,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56196X87590" disabled="False" log="True" position="9" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56196X87590" disabled="False" log="True" position="11" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id4834A2238571"/>
|
||||
</Src>
|
||||
@ -36267,7 +36334,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56208X87590" disabled="False" log="True" position="10" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56208X87590" disabled="False" log="True" position="12" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id4834A2278571"/>
|
||||
</Src>
|
||||
@ -36287,7 +36354,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56220X87590" disabled="False" log="False" position="11" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56220X87590" disabled="False" log="False" position="13" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id56355X87590"/>
|
||||
</Src>
|
||||
@ -36307,7 +36374,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56232X87590" disabled="False" log="False" position="12" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56232X87590" disabled="False" log="False" position="14" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id56359X87590"/>
|
||||
</Src>
|
||||
@ -36327,7 +36394,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56244X87590" disabled="False" log="False" position="13" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56244X87590" disabled="False" log="False" position="15" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36347,7 +36414,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56256X87590" disabled="False" log="False" position="14" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56256X87590" disabled="False" log="False" position="16" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36367,7 +36434,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56268X87590" disabled="False" log="False" position="15" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56268X87590" disabled="False" log="False" position="17" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36387,7 +36454,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56280X87590" disabled="False" log="False" position="16" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56280X87590" disabled="False" log="False" position="18" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36407,7 +36474,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56292X87590" disabled="False" log="False" position="17" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56292X87590" disabled="False" log="False" position="19" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36428,7 +36495,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56305X87590" disabled="False" group="" log="False" position="18" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<PolicyRule id="id56305X87590" disabled="False" group="" log="False" position="20" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id86936X27543"/>
|
||||
</Src>
|
||||
@ -36448,7 +36515,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56317X87590" disabled="False" group="" log="False" position="19" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<PolicyRule id="id56317X87590" disabled="False" group="" log="False" position="21" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36468,7 +36535,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56365X87590" disabled="False" group="" log="False" position="20" action="Accept" direction="Outbound" comment="for bug 2047082 ">
|
||||
<PolicyRule id="id56365X87590" disabled="False" group="" log="False" position="22" action="Accept" direction="Outbound" comment="for bug 2047082 ">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id55972X87590"/>
|
||||
</Src>
|
||||
@ -36488,7 +36555,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56329X87590" disabled="False" group="" log="False" position="21" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56329X87590" disabled="False" group="" log="False" position="23" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36508,7 +36575,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56341X87590" disabled="False" group="" log="True" position="22" action="Deny" direction="Both" comment="">
|
||||
<PolicyRule id="id56341X87590" disabled="False" group="" log="True" position="24" action="Deny" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36528,7 +36595,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">True</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56382X87590" disabled="False" group="" log="False" position="23" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<PolicyRule id="id56382X87590" disabled="False" group="" log="False" position="25" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id4834B9206131"/>
|
||||
</Src>
|
||||
@ -36548,7 +36615,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56399X87590" disabled="False" group="" log="False" position="24" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<PolicyRule id="id56399X87590" disabled="False" group="" log="False" position="26" action="Accept" direction="Both" comment="INPUT, OUTPUT, FORWARD">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36568,7 +36635,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56416X87590" disabled="False" group="" log="False" position="25" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56416X87590" disabled="False" group="" log="False" position="27" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36588,7 +36655,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56433X87590" disabled="False" group="" log="False" position="26" action="Accept" direction="Inbound" comment="">
|
||||
<PolicyRule id="id56433X87590" disabled="False" group="" log="False" position="28" action="Accept" direction="Inbound" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36608,7 +36675,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56450X87590" disabled="False" group="" log="False" position="27" action="Accept" direction="Both" comment="">
|
||||
<PolicyRule id="id56450X87590" disabled="False" group="" log="False" position="29" action="Accept" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36628,7 +36695,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id56467X87590" disabled="False" group="" log="False" position="28" action="Accept" direction="Outbound" comment="">
|
||||
<PolicyRule id="id56467X87590" disabled="False" group="" log="False" position="30" action="Accept" direction="Outbound" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id56355X87590"/>
|
||||
</Src>
|
||||
@ -36648,7 +36715,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">False</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id77330X29621" disabled="False" group="" log="True" position="29" action="Deny" direction="Both" comment="test for bug 2463048 "custom services should have IPv4/v6 setting" rule should compile for ipv6 b/c custom service object "ipv6 source route" is configured as "ipv6" ">
|
||||
<PolicyRule id="id77330X29621" disabled="False" group="" log="True" position="31" action="Deny" direction="Both" comment="test for bug 2463048 "custom services should have IPv4/v6 setting" rule should compile for ipv6 b/c custom service object "ipv6 source route" is configured as "ipv6" ">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
@ -36668,7 +36735,7 @@ echo '%FWBPROMPT%'; sh /tmp/%FWSCRIPT%
|
||||
<Option name="stateless">True</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule id="id111075X88392" disabled="False" group="" log="True" position="30" action="Deny" direction="Both" comment="">
|
||||
<PolicyRule id="id111075X88392" disabled="False" group="" log="True" position="32" action="Deny" direction="Both" comment="">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user