Commit Graph

23 Commits

Author SHA1 Message Date
Srivats P
4ae6b564d3 Close existing RPC connections at exit
Fixes #314
2020-12-27 12:52:47 +05:30
Srivats P
f7ace4c5c2 Name threads for easier debugging 2020-05-15 18:55:03 +05:30
Srivats P
1bc2d08fdb Reset RPC input stream after aborting the connection
Without reset, on reconnection, the input stream reads the buffered
data before abort.
2020-05-12 21:56:40 +05:30
Srivats P
75ce626532 Convert RPC channel's static vars to data members
Using static vars meant all connections were using the same static vars!
A bug that has existed since 2009!

This code is ugly, but since it is such a fundamental piece of code for
every operation, no refactoring is being done except to convert the
static vars to data members renaming where required to avoid name
conflicts. The one exception is that `cumLen` which was a per hdr.type
variable is now a single data member across all types. Since for a
single connection messages will be sequential this is expected to work
(fingers crossed!)

For the future we should look at replacing the custom RPC code with GRPC
(issue #305).

Fixes #304
2020-05-12 21:33:54 +05:30
Srivats P
dccf2042f0 Abort connection if bad data received from drone
Currently we would crash because of qFatal(). The new behaviour is
better. Error is reported in the logs window alongwith a suggestion on
what to check.
2020-05-09 09:50:32 +05:30
Srivats P
1db768afba Remove QThreadX since we have ported to Qt5 2019-07-28 10:42:11 +05:30
Srivats P
f24a6719fa Disable logs by default in release mode
Enable logs if '-d' command-line option is given.

Additional command-line options -
-v : print version
-h : print usage

Drone only:
-p <port-number> : use given port number for the RPC service
2019-07-02 18:25:31 +05:30
Srivats P
10dddf410a Print RPC MethodName and ResponseMsgName on server 2019-02-09 18:22:57 +05:30
Bernhard Ehlers
f5f04e6cb9 Change socketDescriptor to type qintptr 2018-05-21 21:30:01 +02:00
Srivats P
a16eefbff4 Treat warnings as errors and fix existing warnings 2018-04-20 20:50:51 +05:30
Srivats P
f801982830 Port common, rpc and client code to Qt5
Still pending
* server port to Qt5
* verify/test the port
2018-03-14 21:58:56 +05:30
Srivats P
e75ed87dd7 RPC channel now prints method names in addition to id for better debugging 2016-04-26 18:33:20 +05:30
Srivats P
db8ad92738 Device Emulation (contd.): Assign a random mac address to a DeviceGroup at alloc time to ensure unique device keys when enumerating devices from device groups 2016-03-07 21:40:48 +05:30
Srivats P
133a83f139 Bugfix: Ostinato GUI crash when response from Drone is split into multiple frames - the message is parsed incompletely and subsequent frame which starts in the middle of the previous message is interpreted as start of new message leading to the crash. With this fix we are effectively not able to use zero copy as originally intended. To use zero-copy we need to make a blocking call which means we need to do this in a new thread. Till that time this fix will avoid the crash and do the correct thing. 2016-01-04 20:30:05 +05:30
Srivats P
efdfa7f95d Feature: Ostinato client now accepts hostnames for drones and does DNS resolution for the same; IPv6 addresses are also accepted. Introduced Drone setting to listen to specific or 'any' IPv4 (or IPv6) address
Fixes #152
2015-11-06 18:57:07 +05:30
Srivats P.
53b0154e79 Bugfix (collateral): Fixed msg parsing logic for blob/error which causes GUI to crash or become unresponsive; this was a colleteral of reworking of the msg parsing code to fix day one issues in revision c484106d19b8
Fixes issue 153
2015-06-14 18:02:22 +05:30
Srivats P.
d677b09491 Fixed gcc4 warnings 2015-06-05 20:18:41 +05:30
Srivats P.
25ef8dd1e4 Infra: Added code to disable notifications for python-ostinato scripts since python-ostinato does not expect and hence does not know how to deal with notifications
Updates issue 144
2015-05-01 21:41:04 +05:30
Srivats P.
f1378965ca Bugfix: Fixed bugs in RPC Channel read function that causes the client to miss some messages or not receive any at all (see the diff for details); these bugs are day one bugs but adding the Notify RPC increased the chances of seeing them
Updates issue 144
2015-05-01 13:20:12 +05:30
Srivats P.
fbaf6edcdf Bugfix: Use 'smart' pointer to refcount and auto-destruct to avoid notification memory leaks
Updates issue 144
2015-04-28 18:45:35 +05:30
Srivats P.
9be69a8f46 Refactoring: Cleanup RPC Channel's knowledge of notification prototype
Updates issue 144
2015-04-25 20:12:37 +05:30
Srivats P.
ad6baea4af Infra: On a port modify, all clients are sent notifications of the same - they can request for port config again to get latest config
Updates issue 144
2015-04-24 20:53:00 +05:30
Srivats P.
a9da643fb2 Feature: Reserve Ports for cooperative use of shared drone. If a port is reserved the GUI will display the username of the owner but others can still view and control the port; in other words, we just potentially prevent unintentional usage of other people's ports, users still need to play nice with each other!
Fixes issue 144
2015-04-16 22:20:07 +05:30