Commit Graph

829 Commits

Author SHA1 Message Date
Srivats P.
11acbf201d Modified ICMP protocol such that the 'Id' and 'Seq' fields are shown and used only for those ICMP types that actually have those fields 2010-06-06 22:42:19 +05:30
Srivats P.
4d83432a5d Replaced top-level Makefile with a qmake .pro so the top-level Makefile is also generated now; having a top-level .pro makes it easier for folks who use Qt Creator. Also 'make install' is now supported - a custom install path prefix can be provided, if required, by passing PREFIX=/absolute/path/prefix to qmake 2010-06-03 20:52:49 +05:30
Srivats P.
4cba17e6c8 Fixed compiler warning 2010-05-24 21:49:59 +05:30
Srivats P.
7327fbb58d Fixed a bug in IPv4 pseudoIP cksum calculation which would cause invalid TCP and UDP cksums in certain cases 2010-05-23 22:30:32 +05:30
Srivats P.
956455137c Implemented the remaining IP Tunneling protocols - IP6over4, IP4over6, IP6over6; renumbered L3 protocol protobuf "field numbers". ComboProtocol now implements PseudoIp cksum as protoB's cksum as a convenience for the IP tunneling protocols. Also found and fixed an issue with IPv6's pseudoIp cksum which was causing the TCP/UDP cksums to be incorrect 2010-05-23 16:46:43 +05:30
Srivats P.
4a70d52e3e Implemented IPv6 protocol; found and fixed a bug in AbstractProtocol::protocolFrameValue() in the process 2010-05-22 22:02:46 +05:30
Srivats P.
ed13bba83b Fixed Segfault caused by uninitialized ModelTester pointers in Release mode (Fixes issue 5) 2010-05-16 11:46:41 +05:30
Srivats P.
46cebefb19 IP4over4 implemented as a "combo" protocol; added IP 4over4 as a L3 protocol in StreamConfigDialog. Also temporarily masked a change introduced in r59ec which triggers a crash if you click "cancel" in StreamConfigDialog with the "Protocol Data" tab open 2010-05-09 10:28:58 +05:30
Srivats P.
564b30955b Removed hardcoded paths from pbrpc.pro; made MainWindow default size smaller 2010-05-08 20:44:33 +05:30
Srivats P.
6ca88eb661 StreamConfigDialog "Protocol Selection" framework has been enhanced to include a L5 group. TextProtocol has been added to this L5 group. TCP/UDP protocols have been modified to get port numbers from a L5 protocol; TCP/UDP protocols have also been updated as per the "Sample" protocol recommendation 2010-05-08 20:12:38 +05:30
Srivats P.
3defe905e5 Added a generic TextProtocol that can be used for any text based protocol such as HTTP, SIP, RTSP, NNTP etc. Also - fixed a bug in ARP; IntComboBox sets itself as 'editable' 2010-05-06 20:39:29 +05:30
Srivats P.
d9f788e93d Fixed compiler warnings 2010-05-04 21:42:29 +05:30
Srivats P.
d0cddbafb8 Added a preflight check method to class StreamBase - this is used by StreamConfigDialog to notify the user of potential problems such as truncated frames 2010-05-02 15:37:46 +05:30
Srivats P.
e681e1e226 Added new param 'cksumScope' in AbstractProtocol's header and payload cksum methods; this ensures that TCP/UDP checksum is now correct if preceded by a IP 4over4. 2010-04-24 19:16:39 +05:30
Srivats P.
ae05037265 Added, edited, corrected and completed the AbstractProtocol doxygen documentation 2010-04-18 21:50:35 +05:30
Srivats P.
0075a3712b Added .hgignore 2010-04-17 19:57:28 +05:30
Srivats P.
3591227c0b Fixed a assert failure when closing the client with the port list expanded 2010-04-17 18:44:20 +05:30
Srivats P.
254e7141b0 PortStatsFilterDialog - ports can now be inserted at a specific row instead of just being added to the end 2010-04-17 17:32:46 +05:30
Srivats P.
7b9c1f92a0 Fixed crash in PortStatsFilterDialog while removing selected rows 2010-04-16 20:11:08 +05:30
Srivats P.
35f4a8bafb Fixes for 64bit compilation and Qt4.6 2010-04-16 16:45:35 +05:30
Srivats P.
2e77fd8b94 Adding a missing $ in version.pri for unix compilation 2010-04-10 21:15:31 +05:30
Srivats P.
836ed6e16d Provided option to manually specify revision hash for source packages and tarballs 2010-04-10 17:04:54 +05:30
Srivats P.
2af83212a6 Due to the switch to mercurial from svn, changed 'svnversion' to 'hg identify -i' 2010-04-07 21:13:54 +05:30
Srivats P.
c630d4c291 - Added icons to some menu items
- Fix: Changed Preferences to inherit privately from Ui::Preferences
- Added "About Qt" to Help Menu
- Added the PortList/StreamList actions to File Menu
- Fix: "New Stream" action is enabled only when a port is selected in the port list
- Fix: Ostinato now looks for Drone in the correct path
2010-04-04 08:15:39 +00:00
Srivats P.
1cfc771daa - Added Preferences Dialog
- Wireshark path can be configured by user in the preferences
- Support for portable mode for preferences (.ini in same location as the executable)
2010-04-03 08:18:29 +00:00
Srivats P.
6d4be4272b - Removed Copyright notice from client/modeltest.* files which are Trolltech provided and carry a Trolltech copyright notice
- Added the GPLv3 license text - COPYING
2010-03-27 18:44:18 +00:00
Srivats P.
59c9ae8baa - Added Copyright and License (GPLv3) notifications to all source files viz. *.h, *.cpp, *.proto
- Also added a "License" tab to the 'About Ostinato' dialog box.
2010-03-27 18:38:57 +00:00
Srivats P.
602be86a42 Fixes
- Win32: If bindconfig.exe is not present, WinPcapPort::hasExclusiveControl() returns false instead of true (we assume we don't have exclusive control)
- Win32: WinPcapPort now looks for bindconfig.exe in the app's dirPath() instead of the current directory
2010-03-27 14:27:55 +00:00
Srivats P.
cbf114c29d - Added version/revision info to both client and server UI
- Top level 'make clean' and 'make distclean' now do not stop in case of errors
- 'make distclean' now removes the object_script.* generated files
- Added the Logo to the About dialog and also the application icon
2010-03-24 15:56:11 +00:00
Srivats P.
4dc3d2d7f9 - Added TODO instruction comments to the sample protocol
- Implemented ICMP protocol builder
- Added #ifdefs to intcombobox.h to prevent multiple inclusion
2010-03-17 15:47:56 +00:00
Srivats P.
f64d901729 - Top level Makefile
- The default 'all' target no longer has 'qmake' as prerequisite; 'make qmake' shd be done manually on a pristine codebase
    - eol's changed from dos-style to unix-style
- Trivial changes in sample.h/sample.cpp
- Implemented ARP protocol
2010-03-13 05:46:24 +00:00
Srivats P.
3281eb8f20 - Build files cleanup
- Top level Makefile now has a 'release' target
- pcap_set_direction() is no longer invoked in case of Win32 as older versions of WinPcap do not support this API
- MyService::modifyPort() declaration modified to fix the error reported by newer gcc compiler
2010-03-06 09:20:22 +00:00
Srivats P.
2581562ec5 Fixes
- Queued RPC calls would cause crashes due to invalid pointers to request/response and/or controller; this has been fixed
    - PbRpcController now takes ownership of request and response messages and
      will delete them when it itself is being deleted
    - This design mandates that request and response messages for each RPC call
      have to be allocated on the heap.
    - The convention for the Closure 'done' call now is to allocate and pass a
      pointer to the controller object to it which will delete it after use;
      this requires that controller itself be also allocated on the heap
      (NOTE: this is just a convention - not mandatory)
    - All existing RPC calls (in portgroup.cpp) have been changed to follow the
      above convention
- Reordering of queued RPC calls has been fixed
- PortManager is now destroyed at exit; because of this fix the per port temporary capture files are auto-removed at exit
- WinPcapPort destructor no longer deletes the monitor threads because the parent class PcapPort already does it
- Capture does not automatically (and incorrectly) stop after one packet if started immediately after a View Capture operation
- User is prompted to stop transmit on a port first if he tries to apply configuration changes on a port in 'transmit' state
2010-02-17 15:26:42 +00:00
Srivats P.
b28bcd3055 Implemented "exclusive control" for a port using bindconfig (Win32 only). Following changes done for the same -
- OstProto service has a new method "modifyPort()"
- At port init port.isExclusive is now set using a bindconfig query (Win32 only)
- AbstractPort interface has 2 new pure virtual methods - hasExclusiveControl() and setExclusiveControl()
- PcapPort does not support this functionality (yet) so these methods return false
- WinPcapPort suppots this new functionality using bindconfig
- Port's notes (specifying Rx/Tx limitations) are now set and updated based on hasExclusiveControl()
- Presence of 'notes' on a port is indicated using a '*' after the port name in the port stats window
- The tabwidget has been removed from Port Window | Stream View Pane
- Ostinato Client has a new action in the port window's context menu for the same
- Port Icon in the Port Window is decorated based on exclusive control
2010-02-09 15:21:52 +00:00
Srivats P.
70ca42fbb3 Enhancements
- Server now updates the "packet list" after every "apply" rather than before a "start transmit" (if dirty) - this better reflects user's expectation from these operations
- Client disables the entire application and changes to a "Busy" cursor when "applying" stream configuration

Fixes
- UDP checksum no longer is zero but a valid value
- Order of streams no longer gets messed up across a "apply"
2010-01-10 14:40:33 +00:00
Srivats P.
78a2de040b Enhancements
- (Abs/Pcap/WinPcap)Port: Inter SendQueue Timing implemented using a dummy packet length of zero (this is not supported by the winpcap pcap_sendqueue_transmit() but since we don't use that API we are not affected)
- (Abs/Pcap/WinPcap)Port: Loop Mode Timing across loop iterations implemented
- Added the year 2010 to Copyright notice in the About dialog

Fixes
- (Win)PcapPort: Fixed the wrong rates when packets sent in 'burst' mode
2010-01-10 06:21:39 +00:00
Srivats P.
c97ae3bc55 Fixed a bunch of memory leaks - thanks to the superb Valgrind! 2010-01-08 15:18:55 +00:00
Srivats P.
984d65b27d - PortTransmitter on Windows now uses the Win32 QueryPerformanceCounter() instead of QThread::usleep() for more accurate timing
- Port Stats limitations are now sent from the server to the client (as it should have always been!)
2010-01-03 13:57:47 +00:00
Srivats P.
aac2229403 Removed a bunch of gcc4 warnings - mostly "unused param" 2010-01-03 08:56:16 +00:00
Srivats P.
395024cc0c Fixed Windows compilation issues (introduced while fixing the linux compilation issues!) 2010-01-02 14:50:19 +00:00
Srivats P.
be620e0ab6 Changes for successful Linux compilation 2010-01-02 13:49:54 +00:00
Srivats P.
c5bcc2e0c2 Converted all EOLs to unix-style '\n' only 2009-12-28 10:05:42 +00:00
Srivats P.
a9e9a7db07 Removed vim modelines since we have a project .vimrc now 2009-12-28 08:34:47 +00:00
Srivats P.
c7d90ff1ab - All tabs converted to spaces in all files
- .vimrc added to reflect settings used in the project
2009-12-28 08:31:28 +00:00
Srivats P.
a1ae3e7e6c Refactoring
- Major code reorganization of the server code across several classes with fewer 'friends'
	- New server classes - AbstractPort, PcapPort, WinPcapPort, PortManager
	- With this reorg classes have more focus than earlier and will be hopefully easy to extend

Fixes
	- Ostinato client is now able to successfully reconnect and talk to the Ostinato server after a disconnect - earlier, if a method had been pending during the disconnect, the communication was not up after a reconnect; pending methods are cleaned up at disconnect now
2009-12-26 17:33:27 +00:00
Srivats P.
bb6a9235c3 Features
- Ostinato Client
		- will start the server as a child process at startup and terminate it at exit

	- Ostinato Server (Drone)
		- is now a system tray application
		- if not able to bind to a IP/Port successfully, informs the user and exits
		- the GUI is now nothing more than a TextLabel

Others
	- If a getStats() request is pending, the client will not queue up any more requests till a reply is received for the pending one
	- Nitpicks in the Payload protocol Widget, PortsWindow Widget
2009-11-29 16:32:31 +00:00
Srivats P.
4c5b8faff7 Fixes/Rework
- UserScript Protocol reworked. Needs more testing. May need a significant rewrite in the future, but for now this will have to do - therefore it has been marked "EXPERIMENTAL" for now
2009-11-28 08:35:05 +00:00
Srivats P.
ebc0403fde Features
UserScript Protocol "first cut" checked-in. Needs rework.
2009-11-23 08:08:22 +00:00
Srivats P.
c9563b50eb Features
Sample Protocol completed - can be used as a template while implementing a new protocol
2009-11-16 13:09:20 +00:00
Srivats P.
3602d24767 Fixes
- LinkState is now updated in PortWindow as soon as a change is detected; the required minimal refactoring of the Port class usage has been done
	- Fixed a compiler warning in portgrouplist.cpp


Others
	- PortStatsFilter: Ui change - added left and right arrow icons
2009-11-14 15:09:19 +00:00