IDArling icon indicating copy to clipboard operation
IDArling copied to clipboard

Manually disconnecting and reconnecting to a server doesn't trigger a JoinSession

Open paulfariello-syn opened this issue 5 years ago • 1 comments

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'

paulfariello-syn avatar Mar 11 '20 16:03 paulfariello-syn

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

saidelike avatar Mar 16 '20 12:03 saidelike