gloebit / opensim-moneymodule-gloebit

OpenSim addon module integrating with the Gloebit digital currency service
GNU Lesser General Public License v3.0
8 stars 10 forks source link

Make popups configurable, attempt to handle db connection loss, fix spelling, new http workflows #87

Closed Tampa closed 4 years ago

Tampa commented 4 years ago

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.

Tampa commented 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

Tampa commented 4 years ago

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.

Tampa commented 4 years ago

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.

colosi commented 4 years ago

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.

Tampa commented 4 years ago

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.