IDArling
IDArling copied to clipboard
Manually disconnecting and reconnecting to a server doesn't trigger a JoinSession
Running IDArling on d4e823a5a (current master) with a standalone server.
Manually disconnecting and reconnecting to a server doesn't trigger a JoinSession, then IDArling is not usable since the joining user doesn't see the already connected user and the following stack trace append for each received packet (preventing any event to be propagated correctly).
Traceback (most recent call last):
File "idarling/shared/sockets.py", line 302, in event
self._dispatch()
File "idarling/shared/sockets.py", line 320, in _dispatch
elif not self.recv_packet(packet):
File "idarling/network/client.py", line 80, in recv_packet
self._handlers[packet.__class__](packet)
File "idarling/network/client.py", line 134, in _handle_leave_session
user = self._plugin.core.remove_user(packet.name)
File "idarling/core/core.py", line 123, in remove_user
user = self._users.pop(name)
KeyError: 'Bob'
I don't seem to be able to replicate this.
I tried the following:
Right clicking on "Connected" to make it "Disconnected" in IDA taskbar (i.e. IDArling bar)
This is what I get in IDA console:
[idarling][INFO] Disconnecting...
[idarling][DEBUG] Disconnected
[idarling][INFO] Connecting to 10.w.w.w:yyyy...
[idarling][INFO] Connected
[idarling][DEBUG] Joining session
[idarling][DEBUG] Sending packet: ListDatabases.Query(group=testing-only, project=rawcap)
[idarling][DEBUG] Received packet: ListDatabases.Reply(databases=[Database(group_name=testing-only, project=rawcap, name=001, date=2020/03/16 12:16, tick=0)])
[idarling][DEBUG] Database is on the server
[idarling][DEBUG] Sending packet: JoinSession(group=testing-only, project=rawcap, database=001, tick=0, name=cedric, color=16775936, ea=120, silent=True)
And on the server side:
[idarling][DEBUG] (10.x.x.x:65258) Disconnected
[idarling][INFO] (10.x.x.x.x:65258) Disconnected
[idarling][INFO] (10.x.x.x.x:65259) Connected
[idarling][INFO] (10.x.x.x.x:65259) Connected
[idarling][DEBUG] (10.x.x.x.x:65259) Received packet: ListDatabases.Query(type=command, command_type=list_databases_query, group=testing-only, project=rawcap)
[idarling][INFO] (10.x.x.x:65259) Got list databases request
[idarling][DEBUG] (10.x.x.x:65259) Sending packet: ListDatabases.Reply(databases=[Database(group_name=testing-only, project=rawcap, name=001, date=2020/03/16 12:16, tick=0)])
[idarling][DEBUG] (10.x.x.x:65259) Received packet: JoinSession(type=command, command_type=join_session, group=testing-only, project=rawcap, database=001, tick=0, name=cedric, color=16775936, ea=120, silent=True)
[idarling][DEBUG] (10.x.x.x:65259) Sending 0 missed events...
[idarling][DEBUG] (10.x.x.x:65259) Done sending 0 missed events