Ind 945 Posted February 2, 2014 (edited) HPM Data Check I begin by thanking ai4rei for bringing this to our attention HELLOOOO, WHAT?! This introduces automatic data integrity insurance between plugins and the core, allowing the core to reject loading plugins whose data structures mismatch those in the core thus preventing potential crashes and loose data read/write, it goes a long way towards making this issue being inexistent. In short: its a feature that enables the core to reject "outdated" plugins, "outdated" meaning that a data struct used by the plugin has been modified in the core while the plugin was not recompiled to reflect the change. It is smartThanks to Haru's design the feature is able to identify the files which the plugin relies on, therefore even if data structs in the core have been modified the plugin will only fail load if its a data struct from a file it actually includes Changes: Hello Plugin Developers! Plugins are now required to include the HPMDataCheck file, plugins without it will not pass loading validation, to include use: #include "../common/HPMDataCheck.h"it should be the last file included, if it isn't the last it'll render the plugin uncompilable (intentionally). ...and thats it, it stands on its own afterwards. Also in & Thanks to Haru the HPMHookGen has been updated so that the data HPMDataCheck relies on is always up to date HPMHookGen has been sped up. New Possibilities Thanks to HPMDataCheck enabling the core to know which files the plugin relies on there are many enhancements we can (and intend to) add, for example, drop GET_SYMBOL entirely and have the core load the interfaces automatically Special Thanks to Haru ai4rei Link'u HPMHookGen Update Commit Edited February 7, 2017 by Ridley 7 JulioCF, hemagx, Mumbles and 4 others reacted to this Quote Share this post Link to post Share on other sites
Nameless2you 97 Posted February 3, 2014 Nice, just hope the old plugin devs are still around to re-release updated versions. Quote Share this post Link to post Share on other sites
akka 2 Posted February 4, 2014 (edited) I don't really know if this is the right place to post this, but im having some issues with this feature. Yesterday i updated my server and compiled it as usual without any errors. I might add that i added : #include "../common/HPMDataCheck.h" and made sure that it was the last included file: http://imgur.com/UNqeg4T But when i tried to run my server i got the following errors: [Warning]: HPM:plugin_load: failed to retrieve 'HPMDataCheckLen' for plugin/HPMHooking.dll, most likely not including HPMDataCheck.h, skipping...[Warning]: HPM:plugin_load: failed to retrieve 'HPMDataCheckLen' for plugin/custom_plugin.dll, most likely not including HPMDataCheck.h, skipping... So I checked the code again. I checked both my custom plugin and HPMHooking, and HPMDataCheck.h was indeed included in both of 'em. When i compiled i used Microsoft Visual Studio Express 2013 and the Hercules-12.sln solution. Edit: I tried the latest fresh Hercules and it gave me the same result when I uncommented HPMHooking in confplugins.conf. Am I doing something terribly wrong? S: Edit2; https://github.com/HerculesWS/Hercules/commit/10c160a3317b63a8c59830f836b5adefb788e652 solved it. Edited February 6, 2014 by akka Quote Share this post Link to post Share on other sites