Food for thought

I was looking through the source and ran into this.

// Set server online (allow connecting now)
LoginDatabase.DirectPExecute(“UPDATE realmlist SET flag = flag & ~%u, population = 0 WHERE id = ‘%u’”, REALM_FLAG_OFFLINE, realm.Id.Realm);
realm.PopulationLevel = 0.0f;
realm.Flags = RealmFlags(realm.Flags & ~uint32(REALM_FLAG_OFFLINE));

// Start the freeze check callback cycle in 5 seconds (cycle itself is 1 sec)
if (int coreStuckTime = sConfigMgr->GetIntDefault(“MaxCoreStuckTime”, 0))
_maxCoreStuckTimeInMs = coreStuckTime * 1000;
TC_LOG_INFO(“server.worldserver”, “Starting up anti-freeze thread (%u seconds max stuck time)…”, coreStuckTime);

The thing that stood out to me was the LoginDatabase directive. Would it be possible to modify that script to where only 3.3.5 servers showed to 3.3.5 clients and so on and so forth? I don't know where to start, but I was seeing that and wondering if that's something that can be handled server side or if that would require client side modification.

Look at the auth servers before going over to new style.
They used to do it.
I am sure you might be able to find it.
I would try looking at some code from say 2 or 3 years ago.
I am not sure when that function changed. I am assuming when 6x went to bnet