← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/bug-1776008-boost-deleted-uuid-function into lp:widelands


Notabilis has proposed merging lp:~widelands-dev/widelands/bug-1776008-boost-deleted-uuid-function into lp:widelands.

Commit message:
Removing explicit assignment when creating random UUID generator.

Requested reviews:
  kaputtnik (franku)
Related bugs:
  Bug #1776008 in widelands: "compiling: error: use of deleted function"

For more details, see:

Removing explicit assignment when creating random generator. This fixes a problem with the current version of the boost library which no longer permits assignments.

I can't confirm the linked bug since I am using an older version of boost, so I need someone to compile this with the new version (1.67). On my system the changed code still compiles and works as expected with the old boost version.

For a quick test, open ~/.widelands/config and look at the line which is similar to:
when removing the line "last_start=..." it should generate a new UUID in the file on start of widelands. The new UUID should be something similar long with this branch and with trunk.

The change in wlapplication.cc is a bug I encountered while testing: When removing only the "uuid=..." line it crashes when trying to join the metaserver lobby as an unregistered user. The change fixes that by making sure the configuration value is initialized.
Your team Widelands Developers is subscribed to branch lp:~widelands-dev/widelands/bug-1776008-boost-deleted-uuid-function.
=== modified file 'src/random/random.cc'
--- src/random/random.cc	2018-04-07 16:59:00 +0000
+++ src/random/random.cc	2018-06-11 18:36:01 +0000
@@ -105,6 +105,6 @@
 std::string generate_random_uuid() {
-	static boost::uuids::random_generator gen = boost::uuids::random_generator();
+	static boost::uuids::random_generator gen;
 	return boost::uuids::to_string(gen());

=== modified file 'src/wlapplication.cc'
--- src/wlapplication.cc	2018-06-01 15:42:03 +0000
+++ src/wlapplication.cc	2018-06-11 18:36:01 +0000
@@ -782,7 +782,7 @@
 	// KLUDGE!
 	long int last_start = s.get_int("last_start", 0);
-	if (last_start + 12 * 60 * 60 < time(nullptr)) {
+	if (last_start + 12 * 60 * 60 < time(nullptr) || !s.get_string("uuid")) {
 		// First start of the game or not started for 12 hours. Create a (new) UUID.
 		// For the use of the UUID, see network/internet_gaming_protocol.h
 		s.set_string("uuid", generate_random_uuid());

Follow ups