0094f618d3
-------------------------- - AbstractProtocol Constructor and Factory function now take an optional (default NULL) "parent" abstract protocol in addition to the stream; this "parent" protocol is non-NULL for protocols which are aggregated in a ComboProtocol - All subclasses of AbstractProtocol modified as per the above interface change - ProtocolManager also modifed as per the above interface change - new data members in AbstractProtocol - prev, next; the AbstractProtocol implementation now uses these members to traverse protocols on the list instead of ProtocolListIterator; this change required for ComboProtocol - ProtocolListIterator updates these new members - prev/next on insert/remove/replace - ComboProtocol and ProtocolListIterator classes made friends of AbstractProtocol - ComboProtocol implemented as a template class (completed) - Dot2LLc implemented as a combo of Dot3Raw and LLC - Dot2Snap implemented as a combo of Dot2Llc and SNAP - VlanStack implemented as a combo of VLAN + VLAN - ProtocolManager now uses the ProtocolId enums rather than hardcoded values Stream Config Dialog -------------------- - "None" radio button added to all protocol levels - Protocol Level 1 added with 'mac' as the only valid protocol in the "simple" mode widget - With Dot2Llc, Dot2Snap and VlanStack implemented as "combo" protocols, the protocol choice radiobuttons in the "simple" mode are now 1:1 with a protocol; this has the following implications/advantages: - Updates of the "simple" mode widget from/to stream's protocolList is simpler; this code has now been rewritten to take advantage of 1:1 - This paves the way for exporting tunneled protocols 4over4, 4over6, 6over4 etc. in the "simple" mode - This should also (hopefully) require less changes when adding a new protocol; more work needs to be done to reach this goal Fixes ----- - Dot3Protocol now derives "length" correctly for VLAN tagged packets - StreamBase now uses the ProtocolListIterator to append the default protocols in a stream instead of directly manipulating ProtocolList; also in protoDataCopyFrom() Others (Client/Server) ---------------------- - Port Packet Capture implemented; "view capture" is pending (hack put in place now for testing)
83 lines
1.5 KiB
Prolog
83 lines
1.5 KiB
Prolog
TEMPLATE = lib
|
|
CONFIG += qt staticlib
|
|
QT += network
|
|
LIBS += \
|
|
-lprotobuf
|
|
FORMS += \
|
|
mac.ui \
|
|
payload.ui \
|
|
eth2.ui \
|
|
dot3.ui \
|
|
llc.ui \
|
|
snap.ui \
|
|
vlan.ui \
|
|
ip4.ui \
|
|
tcp.ui \
|
|
udp.ui
|
|
PROTOS += \
|
|
protocol.proto \
|
|
mac.proto \
|
|
payload.proto \
|
|
eth2.proto \
|
|
dot3.proto \
|
|
llc.proto \
|
|
snap.proto \
|
|
dot2llc.proto \
|
|
dot2snap.proto \
|
|
vlan.proto \
|
|
vlanstack.proto \
|
|
ip4.proto \
|
|
tcp.proto \
|
|
udp.proto
|
|
HEADERS += \
|
|
abstractprotocol.h \
|
|
comboprotocol.h \
|
|
protocolmanager.h \
|
|
protocollist.h \
|
|
protocollistiterator.h \
|
|
streambase.h \
|
|
mac.h \
|
|
payload.h \
|
|
eth2.h \
|
|
dot3.h \
|
|
llc.h \
|
|
snap.h \
|
|
dot2llc.h \
|
|
dot2snap.h \
|
|
vlan.h \
|
|
vlanstack.h \
|
|
ip4.h \
|
|
tcp.h \
|
|
udp.h
|
|
SOURCES += \
|
|
abstractprotocol.cpp \
|
|
protocolmanager.cpp \
|
|
protocollist.cpp \
|
|
protocollistiterator.cpp \
|
|
streambase.cpp \
|
|
mac.cpp \
|
|
payload.cpp \
|
|
eth2.cpp \
|
|
dot3.cpp \
|
|
llc.cpp \
|
|
snap.cpp \
|
|
vlan.cpp \
|
|
ip4.cpp \
|
|
tcp.cpp \
|
|
udp.cpp
|
|
|
|
protobuf_decl.name = protobuf header
|
|
protobuf_decl.input = PROTOS
|
|
protobuf_decl.output = ${QMAKE_FILE_BASE}.pb.h
|
|
protobuf_decl.commands = protoc --cpp_out="." ${QMAKE_FILE_NAME}
|
|
protobuf_decl.variable_out = GENERATED_FILES
|
|
QMAKE_EXTRA_COMPILERS += protobuf_decl
|
|
|
|
protobuf_impl.name = protobuf implementation
|
|
protobuf_impl.input = PROTOS
|
|
protobuf_impl.output = ${QMAKE_FILE_BASE}.pb.cc
|
|
protobuf_impl.depends = ${QMAKE_FILE_BASE}.pb.h
|
|
protobuf_impl.commands = $$escape_expand(\n)
|
|
protobuf_impl.variable_out = GENERATED_SOURCES
|
|
QMAKE_EXTRA_COMPILERS += protobuf_impl
|