Closed Tampa closed 4 years ago
Just eliminated the last compiler warning because it was not an actual problem so just pragma'd it, module now compiles cleanly
I have added the changes from the other pull request and attempted to adjust the version checking to account for the changes in version string handling so that it can branch to the new httpserver handling properly. This is yet untested however since I am not sure if the whole version testing should stay this way, as is it is just too prone to fail doing it that way, it should really directly test httpserver capabilities and the other parts of OpenSim it depends on to figure out which workflows to use, version string is not reliable enough imo.
Added a big debug message to the module startup to aid in figuring out which version is detected and what workflows will be used. Also added undocumented overrides that allow setting workflows manually in case version cannot be detected. This is still poor design, we need to find a way to test the capabilities of functions and httpserver directly and base workflows around that rather than version strings. Confirmed it is back to working order, but may need more updates soon-ish.
Building against a pre 0.9.2 version of OpenSim had a problem that I expected but hoped I wouldn't see. The new methods don't exist, and even though we don't use them, the compiler fails the build.
It will try to import them from httpserver so if that does not supply them then yeah it likely will error not found, not sure how C# handles that, but could set them up first and then attempt import so they exist first. Could also suppress the error or setup a target modifier for that part specifically. Up to you.
Paste me how you setup the build against an older version so I can reproduce the error, maybe I can find a good solution for it.
As I mentioned in the issue ticket no module should alone be able to cause process termination of OpenSim, so I added a try catch for the database connection in hope to remove the unhandled exception that occurs when connection to the database is lost.
This now includes:
Reading the code I can see a few things that will need to be adjusted at some point as they don't exactly appear all that solid in terms of future-proofing. Given the rapid changes in OpenSim as of late it may not survive a year now. To me some things are done in a roundabout way that seems to just introduce potential parsing issues and other points of communication failures, but maybe I am just seeing things. It would be nice to go over the code again to see if handling of some parts could be streamlined and reduced in complexity.