Commit Graph

94 Commits

Author SHA1 Message Date
Srivats P.
90fda499dd RPC now uses stream instead of an array for protobuf parsing and serialization. This change removes the limit on the byte size of a protobuf.
Because we are now using a new protobuf API - ParseFromBoundedZeroCopyStream(), the protobuf version has to be >= 2.2.0

Fixes issue 14
2010-10-18 17:25:27 +05:30
Srivats P.
c5fbceebb4 At port init, the sendqueue dirty flag should be false not true 2010-10-01 21:29:55 +05:30
Srivats P.
d8b9844dac Changed QProcess()::start() to the overloaded version which plays nice with spaces in the pathname
Fixes issue 9
2010-09-15 20:58:10 +05:30
Srivats P.
be77148b11 Bumped version to 0.2 2010-08-11 18:47:25 +05:30
Srivats P.
3ed82b88ca Updated .hgignore 2010-07-26 11:50:36 +05:30
Srivats P.
971713ae0f Replaced HTONX() and NTOHX() with qToBigEndian() and qFromBigEndian() 2010-07-21 14:10:06 +05:30
Srivats P.
c59306d78d Mac OS X improvements - Ostinato is now correctly capitalized in the MenuBar; default Wireshark path added for Mac OS X 2010-07-17 03:54:35 +05:30
Srivats P.
9b1dbfb1e6 Mac OS X improvements - Application icon; 'make install' installs to /Applications; Ostinato is able to find drone at startup (as long as both bundles are present together) 2010-07-16 03:14:36 +05:30
Srivats P.
716f5fb8f3 Set the icon for the MainWindow 2010-07-15 07:01:43 +05:30
Srivats P.
8c0bfa8403 Short term fix for the local portgroup showing up as disconnected at startup 2010-07-15 03:11:07 +05:30
Srivats P.
c2fac2db70 Added streams save/restore; Ostinato file format specified; Protocol Field Numbering scheme changed - existing protocol field numbers changed accordingly 2010-07-13 20:36:35 +05:30
Srivats P.
2e6503faad Bumped version to 0.1.1 2010-06-28 21:10:29 +05:30
Srivats P.
fedc4ec5d1 Extended ICMP to work for ICMPv6 as well as ICMPv4 2010-06-11 20:48:24 +05:30
Srivats P.
069cc16279 Protocol Framework Change: FieldFlags - FrameField and MetaField are no longer exclusive. A field can be neither. Also frameFieldCount() now actually counts the number of frameFields instead of deriving it from metaFieldCount() - these changes allow protocols to export different sets of fields based on a opcode/type field. 2010-06-07 20:52:50 +05:30
Srivats P.
710eb7f836 Fixed a bug in IcmpProtocol::frameFieldCount() which would return incorrect values sometimes 2010-06-07 19:20:35 +05:30
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