Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EDDN: Don't blindly replay old messages 'as' the current application version #1431

Closed
3 tasks done
Athanasius opened this issue Feb 3, 2022 · 2 comments
Closed
3 tasks done

Comments

@Athanasius
Copy link
Contributor

Athanasius commented Feb 3, 2022

With reference to #1403 it is entirely possible for someone to be playing with "Delay sending until docked", such that they get EDDN messages recorded under one EDMC version and some time later they actually get sent (first attempt) under a later version.

The current plugins/eddn.py:EDDN.send() code blindly uses the current application version in the EDDN message's softwareVersion field.

This can thus give the false impression that this 'current' version has a bug that it doesn't, if an older version built a bad message that has been sat in the replaylog.

So:

  • Change the code that puts messages in the replaylog so that it records the current application name and version.
  • When EDDN.send() finally sees the message, compare that per-message sofwareName and softwareVersion, and if it's the same, continue as normal.
  • But if they differ at all then use the message ones and append (sent with <name> <version>) with respect to what's actually doing the sending. Yes, this might look weird in the EDDN stats, tough. That's only cosmetic, we need to be clear on what happened. We could just append (replaying from older) to limit the set of new spammier version strings, but I'm not sure it's worth trying to avoid the spam.
@Athanasius
Copy link
Contributor Author

Especially in light of nascent plans to have EDDN messages require a header->gameversion field which will have to be the gameversion of the data source, not at time of sending to EDDN, this is now more urgent.

And I think at this stage we should just make the replaylog record the entire message as it will be on the wire.

And if a message is being replaylog-sent then perhaps append (replay) to header->softwareName to make it clear.

Of course we'll also need to cope with the cases where a user has replaylog entries from before the change.

@Athanasius
Copy link
Contributor Author

@Athanasius Athanasius added this to the 5.6.0 milestone Nov 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant