summaryrefslogtreecommitdiffstats
path: root/kmyfirewall/compilers/pf/kmfpfcompiler.h
blob: 692bac005f3d5d825d18e38141796e0032cd94ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
//
// C++ Interface: kmfpfcompiler
//
// Description:
//
//
// Author: Christian Hubinger <e9806056@student.tuwien.ac.at>, (C) 2004
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef KMFPFCOMPILER_H
#define KMFPFCOMPILER_H

#include "../../core/kmfcompilerinterface.h"

/**
@author Christian Hubinger
*/

// QT includes
#include <tqstring.h>
#include <tqobject.h>
#include <tqvaluelist.h>

// KDE includes
#include <tdeparts/part.h>
#include <tdeparts/plugin.h>
#include <tdeparts/factory.h>
#include <kxmlgui.h>

// Project includes
#include "../../core/kmfplugin.h"
#include "../../core/kmfcompilerinterface.h"


class TDEInstance;
namespace KMF {
class KMFGenericDoc;
class KMFIPTDoc;
class KMFNetZone;
class IPTChain;



class KMFPFCompiler :  public KMFPlugin, public virtual KMFCompilerInterface {
	TQ_OBJECT
  
public:
	KMFPFCompiler( TQObject* parent, const char* name );
	~KMFPFCompiler();
	void compile();
	const TQString& compile( KMFGenericDoc* );
	const TQString& osName();
	const TQString& osGUIName();
	const TQString& backendName();
	const TQString& backendGUIName();

private:
	void setupInAndOutHosts( KMFNetZone*,  const TQString& );
	void setupForbiddenHosts( KMFNetZone*, const TQString&  );
	void setupICMPRules( KMFGenericDoc* );
	void setupLocalhostRules();
	void setupPolicies( KMFGenericDoc* );
	void setupNatRules( KMFGenericDoc* );
	void createIncommingACCESSRules( KMFNetZone*, KMFGenericDoc* );
	void createOutgoingACCESSRules( KMFNetZone*, KMFGenericDoc* );
	
	TQString getPortList( TQValueList<int>& );
	
	
// 	void addToChains( KMFNetZone*, KMFIPTDoc* , IPTChain*, const TQString& );
// 	void createRules( KMFNetZone*, IPTChain*, const TQString& );
// 	void setupLocalhostRules(  KMFGenericDoc*, KMFIPTDoc* );
// 	void setupConnectionTracking( KMFIPTDoc* );
// 	void setupPolicies( KMFGenericDoc*, KMFIPTDoc* );
// 	void createZoneProtocolRules( IPTChain*, KMFProtocolUsage* );
// 	void createZoneProtocol( IPTChain*, KMFProtocolUsage* prot , const TQString& option, const TQString& ports );
// 	void createHostProtocolRules( IPTChain*, KMFNetHost*, KMFProtocolUsage*, const TQString& );
// 	void createHostProtocol( IPTChain*, KMFNetHost*, KMFProtocolUsage* prot , const TQString& option, const TQString&, const TQString& );
// 	
// 	void setupForbiddenHosts( KMFIPTDoc*, KMFNetZone*, const TQString&  );
// 	
// 	void setupICMPRules( KMFGenericDoc*, KMFIPTDoc* );
// 	
// 	void setupNatRules( KMFGenericDoc*, KMFIPTDoc* );
// 	void setupNatTarget( KMFGenericDoc*, IPTRule* );
// 	void setupLogging( KMFGenericDoc*, KMFIPTDoc* );
// 	void setupLoggingRules( KMFGenericDoc*, IPTChain* );


private:
	KMFGenericDoc *m_doc;
	TQString m_compiledScript;
	
	TQString m_osName;
	TQString m_osGUIName;
	TQString m_backendName;
	TQString m_backendGUIName;


private slots:
	void slotExportPF();
	
	
	
	
	
// 	void slotShowPFScript();
};





class KMFPFCompilerFactory : public KLibFactory {
	TQ_OBJECT
  
public:
	KMFPFCompilerFactory( TQObject *parent = 0, const char *name = 0 );
	virtual ~KMFPFCompilerFactory() {
/* 		delete s_instance; */
	};
	virtual TQObject* createObject( TQObject* parent = 0, const char* pname = 0,
	                               const char* name = "TQObject",
	                               const TQStringList &args = TQStringList() );
	/*     static TDEInstance* instance(); */

/*private:
	static TDEInstance* s_instance;*/
};
}


#endif