Commit Graph

23 Commits

Author SHA1 Message Date
Werner
cb4a712851 Enforces Lineendings and adds Editorconfig (#7657) 2019-12-21 16:19:24 +01:00
Erki
9535f738ad Port TG's stickyban panel (#6806) 2019-08-01 10:37:23 +03:00
Werner
cfd1900ee4 Security Fines (#4634)
Allows security to fine criminals with the sentencing console
Prints a human readable copy of the charges and the applied sentence
2018-04-29 20:34:49 +03:00
Erki
ba57b5a5e5 Preferences SQL tests (#4016) 2017-12-29 15:57:31 -06:00
skull132
a3ec0cf45d Better SQL prepared statements (#2474)
The system used to be of complexity O(n^2). Essentially two for loops running per every argument. Which ended up being surprisingly slow (there were instances where I saw the argument parser as using quite a lot of CPU time).

This replaces it with a more linear algorithm. It's somewhere near O(n) where n is the length of the unparsed query. Which is more stable and faaaster. This comes with two changes, however:

Parameters inside the query now have to be delimited from both sides with : (colons). The alternative to this would be to use something like $n or just assume that space marks the end of a marker. Only the former is workable, the latter would break a few queries already.
Arguments in the argument array no longer have to be prefixed by : (colons). So, while in the query you would write :thing:, you'd initialize the array of args as: list("thing" = somevar). It could be made to work without it, but eh, I think this is fine.
Argument validation is slightly weaker. What I mean by this is that with the old system, unused keys would result in an error. This is no longer a thing. Missing keys will still result in an error, however.
One more improvement: double delimiting removes an edge case where if key A partially covers key B, depending on the order, key A would mangle key B.
Updated and tested all queries that I could find. So this should be good.
2017-05-29 21:17:41 +03:00
Lohikar
78067673b5 Disable attempt to re-run queries after reconnect (#1402)
Reverts the automatic re-execution of queries after the db connection is reestablished, added in 36a084f.

It was causing infinite recursion and generally breaking the server, dropping a single query on reconnect is still better than the old behavior of dropping all queries.
2017-01-07 00:04:32 +02:00
Lohikar
36a084fbbc Add db-reconnect adminverb (#1398)
Adds a Reconnect-SQL verb to admins with permission flag R_DEBUG, as well as making the server attempt to automatically reconnect to SQL on connection drop.
2017-01-05 23:39:01 +02:00
skull132
bf45c9e872 Dev Bug-fixes (#354)
* Runtime Fix - parse_db_lists()
Type mismatch.

* Remove Debug
Debug verbs from SQL saving.
2016-05-31 00:43:13 +03:00
skull132
7dacaa28dd SQL Saving - Rewrite + Implenetation (#350)
Rewrite's Mahzel's SQL character and preference saving.
Introduces easy config switching between the new and old system, with no troubles at all.

Also introduces better logging for DBQuery/proc/parseArguments(), should something go wrong. And classes SQL query errors as full on error snow, as opposed to debug data.
2016-05-30 23:39:07 +03:00
skull132
d990b4f854 dbcore.dm - parse_db_lists() proc
Makes the usage of prepared statements with lists easier, by allowed you to set a parameter as a list.

Primarily for `WHERE x IN (y, z, w)` queries.
2016-05-01 13:46:07 +03:00
skull132
6bb74a7a87 dbcore.dm - Better INT Management
`parseArguments()` will now identify 0 as an itneger properly, instead of slotting it under null.
2016-03-14 19:24:49 +02:00
skull132
202b216092 More reworking of DB handling
sqllogging depracted in favour of config.sql_enabled. Database loading is done through /hook/startup/proc/load_databases, with initialize_database_object() being a generalized proc to read any generic database config file. (TODO: config examples in relaiton to last remark.)
2016-03-04 01:41:44 +02:00
skull132
8383f1c03b Generalizing establish_db_connection() and setup_database_connection()
Both procs are now generalized, and accept a DBConnection object as an argument. Due to this generalization, all instances of `establish_db_connection()` must be renamed to `establish_db_connection(dbcon)`.
Also added variable `failed_connections` to the definition of DBConnection.
2016-03-04 00:53:37 +02:00
skull132
d46499a310 DBConnection object modifications
Renames the variables of the DBConnection object to make differentiating them easier.
Reworks the `DBConnection/New()` and `Connect()` methods to allow for the automatic creation of the dbi handler string. Adds a con_database variable to DBConnection to enable this. DBConnection objects now also house the current database they're using for this purpose.
Moves the constructor for dbcon under `/hook/startup/proc/connectDB()`, as it needs to be called after the SQL config has been read by `datum/global_init/New()`
2016-03-03 06:55:18 +02:00
skull132
b62e3d301c More dbcore.dm Debugging
This should make future errors trackable during runtime, for easier fixes.
2016-02-16 01:28:05 +02:00
skull132
6d19ca3ad4 Fixes #52
Fixes to the ParseArguments() proc and the warnings panel.
2016-02-06 12:07:18 +02:00
skull132
7b9c59a61a dbcore.dm Updates
Brings over the automatic error notification through debug logs, and the parseArguments() function.
2016-01-13 14:37:44 +02:00
baloh.matevz
abad9978b2 - Fixed the revision number not showing properly. Hopefully it's fixed for good this time, as it works off of logic, instead of line numbers.
- Standardized the database library code
- Deleted a few unused database related files (karma and forum activation), so they won't get in my way later. They work off of no longer existent database tables.
- Made it so the server maintains a constant connection with the database, which is established on world/New() and never broken, until the server ends. If 5 consecutive database connection attempts result in no connection getting established, the server will not attempt any more connections. Made all existing database connections use the global continuous connections. Currently we need two, as we have two databases, but the old database is going to get moved into the new one.
- Fixed the spaghetti-like report in the permissions panel, which happened when someone had many permissions enabled.
- Added database connection reports to display to dream daemon on server startup.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5015 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-06 17:21:13 +00:00
baloh.matevz
a2b7a485ab - The sqllogging variable now determines whether a connection to the database is going to be established or not. To enable or disable sqllogging, comment or uncomment the ENABLE_STAT_TRACKING entry in config/dbconfig.txt.
Fixes issue 793

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4425 316c924e-a436-60f5-8080-3fe189b3f50e
2012-08-16 00:49:59 +00:00
elly1989@rocketmail.com
ba545bbee9 Added some #undef (undefines) to try speed compile times up a little bit.
Added resources.dm where FILE_DIR can be defined manually. It should speed clean-compiles up by reducing the number of places the compiler searches for resource-files to put in the resource-cache (stuff in ' ' quotes. e.g. icon='human.dmi').

To use manual FILE_DIR defines go to: 
Build > Preferences for tgstation
in dreammaker. Then un-tick "Automatically set FILE_DIR for sub-directories"

It also means you have less crap to clean up in the .dme before every commit C:

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3820 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-14 21:47:45 +00:00
baloh.matevz@gmail.com
c2c7a3bcda - Variable declaration standardization. Big commit.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3671 316c924e-a436-60f5-8080-3fe189b3f50e
2012-05-25 19:26:36 +00:00
only.lurking@gmail.com
6041ec5c69 Centralized SQL configuration data into dbconfig.txt. Server hosts should never have to edit their source to get their MySQL servers talking to SS13, now.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@57 316c924e-a436-60f5-8080-3fe189b3f50e
2010-09-05 04:29:17 +00:00
only.lurking
662c08272a git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2 316c924e-a436-60f5-8080-3fe189b3f50e 2010-08-23 14:29:20 +00:00