Bak Posted August 2, 2009 Report Posted August 2, 2009 Just finished the main security update for Discretion. The peer-based checking is done. Clients will periodically check each other to see if they're cheating. The last piece of the puzzle that's yet to be done is server-side checks to make sure the "audit stream" sent by clients matches packets the server has gotten/sent. In particular, what's left to be done is: // Ship Changes are Server-initiated // death packets are always received when client says he died // Claimed Position Packets Match Received/Sent Position Packets // C2S Packetloss is acceptable (based on missing position packets) // Set Weapons % packets dropped (based on missing weapons packets, if applicable) // Stale Packets are ignored / don't exist // All Timer Sync Messages are Server initiated (and ping received with reasonable period of request) // C2S Ping is Acceptable (based on times of position packets received) // player entering / leaving / changing freq / changing ship / death / actually occurred and at correct time // auditable state at beginning / end of sequences is the same If you can come up with a way to cheat that's not included in the above list of to-do server checks, and not already taken care of by the peer-based checks, I'd like to know about it. Also if you can crash the client or server please let me know too. The code is quite complicated so I wouldn't be surprised if I missed a bug or two. In either case, your Discretion client should auto-update to the latest version. I have the newest version of the server up, although we're waiting for the audit stream port to be unblocked before you can play in the game online. Practice offline should work, and you may even get a target to aim for Also, some miscellaneous bug fixes particularly with the drawing of the explosion graphics. Let me know of any other bugs you guys can find. Enjoy! Quote
Dr Brain Posted August 2, 2009 Report Posted August 2, 2009 Are you handling information hacks at all? I mean specifically someone disabling enemy stealth+cloak on their client. Quote
Bak Posted August 2, 2009 Author Report Posted August 2, 2009 Right now there is no stealth or cloak implemented, so no. For stealth I'll probably not send position update until the player is within a reasonable range (~2000 pixels), so it will turn into a long-range radar disabler (until the stealthed player is on the screen). Will need to think more about weapons while stealthed, although it may be reasonable for players to lose stealth temporarily if they fire weapons while maintaining the spirit of the item. For cloak just don't forward any position packets (like cloak+stealth). Cloak without stealth wouldn't work, unfortunately. Perhaps there could be a radar update packet that provides a fuzzy location for a cloaked player without stealth. Quote
»jabjabjab Posted August 3, 2009 Report Posted August 3, 2009 (edited) That's actually a good idea.. Stealth would be like Perfect and Cloak with fuzzy. Could not log in... ERROR: Vector Game Setting undefined spec::BounceFactorY and Default Ship Settin gs::BounceFactorY in function getVectorGameSetting, on line 61 in file ..\GameSe ttings.cpp ERROR: Int Game Setting undefined spec::Radius and Default Ship Settings::Radius in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp Checking module update file crc32 from 'ss-discretion.sourceforge.net/update/dis c_update.txt.crc32' ss-discretion.sourceforge.net/update/disc_update.txt.crc32: . got 8 bytes in 0.0 44 seconds (0.02 KB/sec) Read crc32 from server 'f9174495' crc32 matches, Discretion is up to date! SUCCESS: CHECK FOR UPDATES SUCCEEDED! Net.cpp line 532, drivel: ignoring 6 packet types ERROR: Vector Game Setting undefined spec::BounceFactorX and Default Ship Settin gs::BounceFactorX in function getVectorGameSetting, on line 61 in file ..\GameSe ttings.cpp ERROR: Vector Game Setting undefined spec::BounceFactorY and Default Ship Settin gs::BounceFactorY in function getVectorGameSetting, on line 61 in file ..\GameSe ttings.cpp ERROR: Int Game Setting undefined spec::Radius and Default Ship Settings::Radius in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp Seems you forgot to disable the settings for spec of bouncefactor / radius.. woopsies Edited August 3, 2009 by jabjabjab Quote
»doc flabby Posted August 3, 2009 Report Posted August 3, 2009 I cant really see anyone going to the effort of cheating just to see people on screen as opposed to clocked on radar. Its so rare to even bother using clock without stealth Quote
Bak Posted August 3, 2009 Author Report Posted August 3, 2009 Could not log in...Seems you forgot to disable the settings for spec of bouncefactor / radius Hmm that's very odd. I can't seem to reproduce it with my version. Anyone else have this problem? Also: port is unblocked on the server now, you should be able to play online. Quote
»jabjabjab Posted August 3, 2009 Report Posted August 3, 2009 still got same error, and also got a disconnected from server due to packet flooding? and a freeze of black for a second on next attempt, followed by a spam of log-in attempts followed by the close to main menu i had this morning... Quote
Bak Posted August 3, 2009 Author Report Posted August 3, 2009 I did notice the repeated login attempts on my screen which I blamed on my virus scanner being slow to scan everything causing 10 attempts in a row therefore a disconnect. The settings error is odd though. Could you copy your discretion folder, delete conf/front_end/profiles.conf, zip it up, and email it to me (vamperz at yahoo.com). Quote
Bak Posted August 3, 2009 Author Report Posted August 3, 2009 Sorry deleted your post for your own good. Zip up everything *but* the profiles.conf file, since it contains things like passwords you likely don't want to share with everyone. On a side note, why can't I remove attachments from people's posts? When I went to edit post it said action failed when I tried to delete the attachment. Quote
»jabjabjab Posted August 3, 2009 Report Posted August 3, 2009 Stupid forums says max file size of 16 mb but when i try to upload anything more than 6 or 7 it says "no file was selected to upload" Bs... anyways here. Quote
»jabjabjab Posted August 3, 2009 Report Posted August 3, 2009 (edited) dont click on 'zones' it removes everything. also: tried to get into single player mode and this is what happened... Net.cpp line 532, drivel: ignoring 6 packet types ERROR: Invalid int setting Security::MaxMainLoopIterationMilliseconds, defaultin g to 100 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHand ler.cpp ERROR: Invalid int setting Net::Spec Position Send Delay, defaulting to 1000 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHandler.cpp ERROR: Invalid int setting Security::ViolationSpecMilliseconds, defaulting to 65 000 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHandler.c pp ERROR: Invalid int setting Security::MaxMainLoopIterationMilliseconds, defaultin g to 50 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHandl er.cpp ERROR: Invalid int setting Net::SendPositionDelay, defaulting to 100 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHandler.cpp ERROR: Invalid int setting Security::Max Milliseconds Per Audit, defaulting to 5 000 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHandler.c pp ERROR: Invalid int setting Net::SendPositionDelay, defaulting to 100 in function getServerSettingAsInt2, on line 756 in file ..\SettingsHandler.cpp ERROR: Int Game Setting undefined spec::antiwarpStartsOn and Default Ship Settin gs::antiwarpStartsOn in function getIntGameSetting, on line 40 in file ..\GameSe ttings.cpp ERROR: Int Game Setting undefined spec::MaxBrick and Default Ship Settings::MaxB rick in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::MaxBurst and Default Ship Settings::MaxB urst in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::CloakStartsOn and Default Ship Settings: :CloakStartsOn in function getIntGameSetting, on line 40 in file ..\GameSettings .cpp ERROR: Int Game Setting undefined spec::Maxdecoy and Default Ship Settings::Maxd ecoy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::Maxportal and Default Ship Settings::Max portal in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::Maxrepel and Default Ship Settings::Maxr epel in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::Maxrocket and Default Ship Settings::Max rocket in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::stealthStartsOn and Default Ship Setting s::stealthStartsOn in function getIntGameSetting, on line 40 in file ..\GameSett ings.cpp ERROR: Int Game Setting undefined spec::Maxthor and Default Ship Settings::Maxth or in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spec::xradarStartsOn and Default Ship Settings ::xradarStartsOn in function getIntGameSetting, on line 40 in file ..\GameSettin gs.cpp ERROR: Int Game Setting undefined spider::Max Energy and Default Ship Settings:: Max Energy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::antiwarpStartsOn and Default Ship Sett ings::antiwarpStartsOn in function getIntGameSetting, on line 40 in file ..\Game Settings.cpp ERROR: Int Game Setting undefined spider::MaxBrick and Default Ship Settings::Ma xBrick in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::MaxBurst and Default Ship Settings::Ma xBurst in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::CloakStartsOn and Default Ship Setting s::CloakStartsOn in function getIntGameSetting, on line 40 in file ..\GameSettin gs.cpp ERROR: Int Game Setting undefined spider::Maxdecoy and Default Ship Settings::Ma xdecoy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Maxportal and Default Ship Settings::M axportal in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Maxrepel and Default Ship Settings::Ma xrepel in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Maxrocket and Default Ship Settings::M axrocket in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::stealthStartsOn and Default Ship Setti ngs::stealthStartsOn in function getIntGameSetting, on line 40 in file ..\GameSe ttings.cpp ERROR: Int Game Setting undefined spider::Maxthor and Default Ship Settings::Max thor in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::xradarStartsOn and Default Ship Settin gs::xradarStartsOn in function getIntGameSetting, on line 40 in file ..\GameSett ings.cpp ERROR: Int Game Setting undefined spider::Max Energy and Default Ship Settings:: Max Energy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Max Energy and Default Ship Settings:: Max Energy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Recharge Energy Per Ten Seconds and De fault Ship Settings::Recharge Energy Per Ten Seconds in function getIntGameSetti ng, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Radius and Default Ship Settings::Radi us in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Radius and Default Ship Settings::Radi us in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Max Energy and Default Ship Settings:: Max Energy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Recharge Energy Per Ten Seconds and De fault Ship Settings::Recharge Energy Per Ten Seconds in function getIntGameSetti ng, on line 40 in file ..\GameSettings.cpp ERROR: Main Loop Iteration Time (61) Exceeds Maximum Allowed (50) in function ch eckThenProcess, on line 1372 in file ..\Audit.cpp ERROR: Int Game Setting undefined spider::Max Energy and Default Ship Settings:: Max Energy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Recharge Energy Per Ten Seconds and De fault Ship Settings::Recharge Energy Per Ten Seconds in function getIntGameSetti ng, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Radius and Default Ship Settings::Radi us in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Radius and Default Ship Settings::Radi us in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Max Energy and Default Ship Settings:: Max Energy in function getIntGameSetting, on line 40 in file ..\GameSettings.cpp ERROR: Int Game Setting undefined spider::Recharge Energy Per Ten Seconds and De fault Ship Settings::Recharge Energy Per Ten Seconds in function getIntGameSetti ng, on line 40 in file ..\GameSettings.cpp ERROR: Main Loop Iteration Time (100) Exceeds Maximum Allowed (50) in function c heckThenProcess, on line 1372 in file ..\Audit.cpp ERROR: Violation Timeout > 0 (65000) in function checkThenProcess, on line 1471 in file ..\Audit.cpp ERROR: Too long between position packets! in function checkThenProcess, on line 1482 in file ..\Audit.cpp ERROR: Security violation of type 'sendingPositionPacket: TOO_LONG_BETWEEN_POSIT ION_PACKETS'; disconnecting. in function selfViolation, on line 2339 in file ..\ Audit.cpp ERROR: This is probably a bug, but if you were to continue playing other players may think you were cheating. in function selfViolation, on line 2340 in file .. \Audit.cpp ERROR: Exiting because we're in an offline server in function selfViolation, on line 2348 in file ..\Audit.cpp seems like your security updates left alot of bugs :/ Edited August 3, 2009 by jabjabjab Quote
Hakaku Posted August 3, 2009 Report Posted August 3, 2009 dont click on 'zones' it removes everything.lol too late, I kinda already did that. Why exactly is the directory server hardcoded anyway? Quote
Bak Posted August 3, 2009 Author Report Posted August 3, 2009 Why exactly is the directory server hardcoded anyway? Good point. Which directory server is working these days? Quote
»doc flabby Posted August 3, 2009 Report Posted August 3, 2009 (edited) Why exactly is the directory server hardcoded anyway? Good point. Which directory server is working these days?The only two left working at the moment are: ssdir.playsubspace.com (mine)sscentral.sscuservers.net (currently down) Incidentally if there any changes you'd like made to the directory server to help discretion, let me know Edited August 3, 2009 by doc flabby Quote
Hakaku Posted August 4, 2009 Report Posted August 4, 2009 Here's another question, why is it that if one zone has a blank description, Discretion will delete and try to re-retrieve the entire list of zones without my permission? Quote
Bak Posted August 4, 2009 Author Report Posted August 4, 2009 Is that without you pressing the zones key? So it happens right when you log in every time or after updates? Quote
Hakaku Posted August 4, 2009 Report Posted August 4, 2009 Happens right when I start up Discretion, even before I have a chance to click on anything. I don't think it matters if there's an update or not, but I guess you could say it occurs right after it checks for updates and before or when the frontend screen loads. Quote
»jabjabjab Posted August 5, 2009 Report Posted August 5, 2009 Uhhh Discretion Wars is down....? Quote
Bak Posted August 8, 2009 Author Report Posted August 8, 2009 Okay, new update fixing a series of bugs that you guys reported (thanks). You'll need to download the newest version manually through sourceforge, as one of the critical bugs was with the auto update system itself. Go to https://sourceforge.net/projects/ss-discretion/ to download the newest version (0.33). Here's the bug fixes:1. Jab, your settings errors were because the single player settings were incorrect. I reorganized it so that there is now a CustomSettings.conf in zones/SinglePlayer where you should put your custom settings (it's #included at the bottom of Settings.conf), otherwise the automatic updates may overwrite any custom settings in the other files. 2. I updated the settings to not give up connecting so easily. Now there will be 100 connection attempts and 50 reliable retries before it gives up, so enough for virus scanners to check the files (hopefully) without disconnecting because of a timeout. 3. I change the zones download to use a settings-defined directory server. Also changed the setting to be a working directory server (ssdir.playsubspace.com). 4. Added a preliminary interface for the "Options" button from the main menu. Right now all you can do is initiate a Discretion update without having the connect to any servers. Also the site used for that update is settings-defined. 5. I changed/fixed the way updates to Discretion.exe work. This is why you need to download the zip again from sourceforge. Updates to Discretion.exe should automatically restart the front end now so you don't need to do it manually. The "should never get here" message should never appear. 6. I made it so zones with blank description generate only a warning, but it will continue to parse the zonelist.conf file. I wasn't able to reproduce the automatic zone download that Hakaru described though. 7. There's a new experimental zone now ("Discretion Experimental Warfare") for testing the server-side aspects that I'm running off my computer. This is because I don't want to bother freakmonger every time I have issues with Discretion Wars. His server will still be used for stable versions of the server that don't require intricate debugging (as I suspect I need to do since I made rather large additions with the disc_audit module on the server). Everyone play go into Continuum and do "?message freakmonger:Thanks for helping with Discretion by hosting the server!" please! Let me know if there are any further issues. Quote
Bak Posted August 8, 2009 Author Report Posted August 8, 2009 hmm still some trouble with the settings, working on it... Quote
Bak Posted August 8, 2009 Author Report Posted August 8, 2009 jabs, is there a folder named discretion/zones/Discretion Expermental Warfare/ ? Are there any files in that folder? Quote
Bak Posted August 10, 2009 Author Report Posted August 10, 2009 Okay! just uploaded this weekend's update to the update site, you should be able to update through Discretion. I found and fixed the settings bug ya'll were reporting! The bug was related to a fundamental design issue, namely that you can be in the arena while you are downloading, so that you might not yet have the settings. This is an issue when your client tried to make predictions about what other players are doing, since your settings are wrong your predictions will be wrong (or it will report it doesn't have the proper settings as you guys reported). In order to reproduce this you needed two people in the same arena, with the second one downloading. That case escaped my testing since I rarely re-download the files, so it didn't manifest. Also, if you're the first one in the arena there are no (wrong) predictions, so you can get in just fine, as Cerium noticed (however since I was usually afk in the arena any new players who would undoubtedly have to download got screwed). I fixed it by adding a new auditable event that occurs when the server settings have finished downloading (no predictions are made before this, which may be bad, but even Continuum doesn't resend existing weapons to entering players, think of how you can players plow through mines in tw if they were dropped before they entered the arena; I think asss may try to send the state of the bricks in the arena to entering players though, wonder how it handles the timing issues). I also fixed a pretty big memory leak. I broke my rule of creating the "delete" code whenever I used "new", and that's what caused it. I also partially implemented a ?memory command to view memory usage of participating modules. I might get all of them to use it if I feel like it, but if there's no more memory leaks I probably won't bother. There are still bugs with the server, so expect it to be crashy. Please continue to report any client-side bugs you guys spot. Quote
»jabjabjab Posted August 10, 2009 Report Posted August 10, 2009 Alittle buggy with logging in-updating but seems good (*besides cheater thingy heheh*) Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.