HazJ 1289 Posted April 22, 2015 Not really. I know how to adjust tables, make tables/users, etc using phpMyAdmin but that's about it. Don't suppose you have an example mission anywhere? Dirty Haz Share this post Link to post Share on other sites
torndeco 128 Posted April 22, 2015 Sorry don't have any example missions myself atm. A3Wasteland extDB2 branch is over complicated and will just confuse people new to SQL imo AltisLifeRPG is abit outdated but still very similiar, might be of use to have a look But the best thing is try look @ https://github.com/BAROD/Koth_Kavala or maybe you might wanna give him a hand. Share this post Link to post Share on other sites
torndeco 128 Posted April 23, 2015 Just a small status update, next update should be in a day or 2. HTTP Backend Support Some more optimizing (compiler cxx flags) + updating of MySQL / Poco / MySQL libraries. Command Line Arguments Support -extDB2_WORK=/path/to/extDB/ work directory i.e were logs / sql_custom / configfile are located. Will be able to define a string to pass to extDB2 i.e -extDB2_VAR=1 -extDB2_VAR="Server 1" Then ingame before extDB2 is locked _var = call compile ("extDB2" callExtension = "9:VAR"); The idea behind Command Line Arguments is you will be able to pass a info like Server ID without having to edit mission file etc... Share this post Link to post Share on other sites
torndeco 128 Posted May 7, 2015 (edited) Version 51 Main changes are tweaked compiler flags, should be small improvement in performance. extDB2 will now parse arguments from armaserver on Windows / Linux. -extDB2_VAR is retreivable via "9:VAR", before the extension is locked. -extDB2_WORK defines custom location for extdb-conf.ini / extDB directories (where sql_custom log files are located) Changes v51 ADDED: HTTP_RAW Protocol (Basic Auth, GET, POST support) ADDED: STEAM_V2 (Removed case insensitive for performance reasons) ADDED: -extDB2_VAR -extDB2_WORK commandline arguments (Linux + Windows) FIXED: Issue were STEAM / Redis Protocols wouldn't save result. UPDATED: RemoteServer with basic blacklisting ips that failed to login over 3 times MINOR: Fixed console output on debug extension builds MINOR: Updated Poco / Boost / MySQL / SPDLog Libraries MINOR: Tweaked Compiler Flags Downloads https://github.com/Torndeco/extDB2/releases ---------------------------- Edit: extDB2 SQL_CUSTOM now supports loading multiple files i.e instead of extDB/sql_custom/a3wasteland.ini you can have extDB/sql_custom/a3wasteland/whatever.ini extDB/sql_custom/a3wasteland/extra1.ini extDB/sql_custom/a3wasteland/extra2.ini Don't have multiple default values in seperate files, since all the files are loaded at once and will override each other. Edited May 7, 2015 by Torndeco Share this post Link to post Share on other sites
armatech 8 Posted May 8, 2015 would be nice to have a default value for the WP folder Share this post Link to post Share on other sites
torndeco 128 Posted May 8, 2015 Version 52 Just a fix for loading extDB2-conf.ini from extension location i.e @extDB2 Changes v52 FIXED: Loading extdb-conf.ini Downloads https://github.com/Torndeco/extDB2/releases Known Issues Command line arguments doesn't strip " i.e arma3server "-extDB2=/fooo" (doesn't work) arma3server -extDB2=/fooo (works) Share this post Link to post Share on other sites
torndeco 128 Posted May 10, 2015 I am currently considering just pulling Redis Support from extDB2. Nothing against Redis, it has some really nice features but it really would require an extension that fully supports them. Due to how extDB2 works, the speed of Redis versus MySQL isn't really a factor. If someone is making a public released mod that is planning on using it give me a shout. I might be convinced to leave it in extDB or release an extRedis. But as it currently stands i don't believe anyone is really using Redis as a backend for extDB2. Share this post Link to post Share on other sites
torndeco 128 Posted May 13, 2015 (edited) Version 54 Rcon code got overhauled is alot better, rcon commands now send to server straight away. It is also possible to retrieve missions + players info (including IP/PORT/PING, default behaviour these aren't returned). Changes v54 FIXED: SQL_CUSTOM + SQL_CUSTOM Required Version Checks FIXED: SQL_CUSTOM + SQL_CUSTOM_V2 Handling of Null Values in Database Changes v53 ADDED: Support for retreiving RCon players + missions ADDED: Ability for filtering player ip/port/ping from Rcon players FIXED: Another small fix for loading extdb-conf.ini FIXED: More Fixes for Steam Protocol FIXED: Commandline arguments (removed " from arguments) FIXED: -extDB_VAR fixed parsing for Windows UPDATED: Rcon Code, commands will execute straight away now MINOR: Some Code Improvements Downloads https://github.com/Torndeco/extDB2/releases Note In the Release files in Test directory is a Commandline Rcon Application. Its useful to send messages to server using a cronjob. (Linux + Windows Builds) i.e Server Restart Warnings + Locking Server etc... Its very similiar to BERcon, except it can read multiple RCon commands from a file to send to server. Note Version 54 Removed due to issue, will be new build in next 24 hours. Edited May 14, 2015 by Torndeco Share this post Link to post Share on other sites
torndeco 128 Posted May 17, 2015 (edited) Version 56 Main changes are, RCon kicking for bad playernames Rcon whitelisting / reserved slots. With new SQL_CUSTOM options, It should now be possible to use sanitize option for all inputs now to a database. Not sure what sanitize does, check out the Test App + try type in numbers, strings, arrays etc + then type them in malformed. Only supports ascii characters. Something to bare in mind when dealing with playernames. Changes v56 ADDED: Rcon Whitelisting / Reserve Slots FIXED: Multiple fixes for Rcon Player kicks Minor: Code Improvement to 2: + 1: Calls Changes v55 ADDED: Rcon Player kicks for bad characters/strings (regex rules) ADDED: SQL_CUSTOM + SQL_CUSTOM_V2 New String + Sanitize Options FIXED: Multiple Fixes for SQL_CUSTOM + SQL_CUSTOM_V2, including Steam Checks REMOVED: SQL_CUSTOM Options Vac_BeGUID CHANGED: 9:VAR Option now always returns value as a string IMPORTANT: Removed Redis Support Downloads https://github.com/Torndeco/extDB2/releases Note In the test directories of Release Files This is a standalone Commandline RCon App It has ability to send rcon messages read from a text file i.e useful for server restart warnings. Or sit and stay connected to kick players with bad playernames / whitelisting / reserved slots. Available for Linux + Windows. The Config file for Rcon App is same format as extdb-conf.ini Important when you restart a server you need to wait a minute before launching new armaserver. Or you need to restart the rcon application aswell. If you dont do this rcon application might not notice server has stop + been restarted i.e rcon app wont be logged in anymore. Important rcon application is only suitable for local use, it does not have features to recover from UDP Packet loss atm. Edited May 18, 2015 by Torndeco Share this post Link to post Share on other sites
torndeco 128 Posted May 21, 2015 Small Update Looking @ testing out a new Regex Battleye Thing this weekend. Basically it will work similar to my old Python pyBEscanner. It will come in a standalone executable and arma extension (extension will have some extra features). For those that aren't familiar, basically it works like this Scans BELogs while server is running Parses the BE Logs using custom defined regex rules. BELogs are split up in Year/Month/Day directories BELogs are stored in original unedited form, unknown / kick / ban logs Unknown Logs are entries that weren't in any of the filters i.e whitelisted / kick / ban (it helps to spot unusual / new things) Kick Logs will show entries that resulted in a player getting kicked. Ban Logs will show entries that resulted in a player getting banned. The regex filter rules can be updated while the program or server is running. You can enable/disable the rcon kicking / banning. This makes it alot easier to setup regex rules, or allows you to review logs before banning a player. The short version it will only be as good as the regex rules you setup, also it requires logging output for BattlEye. There is also some extra small features for the extension version that could be nice depending on mission/mod code. It just meant to complement existing code to prevent hackers / script kiddies. Anyone that has previous donated give me a pm on forums, if you are interested in the tool. Everyone else will just have to wait thx Share this post Link to post Share on other sites
idris 10 Posted June 16, 2015 (edited) I am using extDB2 as the SQL base for a lifemission mod/mission I am making. I have come across an issue where I need to set a certain array, for this example I will just name it s_array, so I need to set s_array the same value as the column s_array_column in my database so I did the whole 2:SQL1:SELECT s_array FROM playerdata WHERE p_UID = <p_UID>(NOTE: SQL1 = 9:ADD_DATABASE_PROTOCOL:<DB_NAME>:SQL_RAW_V2:SQL1:ADD_QUOTES) , in the s_array_column it's got a value of ["string"] but it's outputting "[string]" so SQF thinks string inside the array is a variable and breaking. I also have another column for inventory where the items are setup as the following : [["itemname",2],["anotheritem",56]] so I'm wondering when it gets to that point it's probably going to break again. tl;dr is there a way to turn the elements in a returned array into a string and element[0] inside of an array inside of a master array a string as well? Regards, Idris. P.S. sorry if this is the wrong place to post this question I cannot make new threads for some reason. Edited June 16, 2015 by idris spellcheck ;) Share this post Link to post Share on other sites
torndeco 128 Posted June 16, 2015 9:ADD_DATABASE_PROTOCOL:<DB_NAME>:SQL_RAW_V2:SQL1 That way it doesn't add any quotes, but then you will need to add quotes to strings when you insert them into the database. But SQL_RAW is not recommended !!!! as you will need to sanitize the SQL Statements yourself in SQF (is extra work for server). Plus if a hacker got your server to remote execute code, and if they can guess SQL1 they could remote execute any SQL Statement on your Database. ---------- It is highly recommended you use SQL_CUSTOM_V2, it is a small bit more hassle to setup. But it allows more control and is alot more secure. Share this post Link to post Share on other sites
idris 10 Posted June 17, 2015 9:ADD_DATABASE_PROTOCOL:<DB_NAME>:SQL_RAW_V2:SQL1That way it doesn't add any quotes, but then you will need to add quotes to strings when you insert them into the database. But SQL_RAW is not recommended !!!! as you will need to sanitize the SQL Statements yourself in SQF (is extra work for server). Plus if a hacker got your server to remote execute code, and if they can guess SQL1 they could remote execute any SQL Statement on your Database. ---------- It is highly recommended you use SQL_CUSTOM_V2, it is a small bit more hassle to setup. But it allows more control and is a lot more secure. Yeah, I was using SQL_RAW for testing purposes just to see what the output is. And I was going to parse the data through as stored procs. I will most likely switch to SQL_CUSTOM_V2 with your suggestion. Okay so I can use the protocol without ADD_QUOTES and then add the quotes to the elements without Arma thinking they are variable names? Share this post Link to post Share on other sites
torndeco 128 Posted July 4, 2015 Version 64 Been a couple of updates in the last month or so Just a quick highlight of some of the changes ADDED: 9:SHUTDOWN will kill armaserver, needs to be done before extension is locked ADDED: 9:TIME or 9:TIME:<offset> will return time. Only works before you lock extension i.e 9:LOCK if you need it afterwards use MISC Protocol FIXED: Rcon Crashes IMPROVED: Handling of Database disconnects. CHANGED: From Intel TBB Malloc to JEMalloc statically linked. No more seperate tbb + tbbmallocs dlls REMOVED: Old v1 Protocols + HTTP Backend (was broken slightly + noone was using it anyways) Share this post Link to post Share on other sites
Guest Posted July 9, 2015 New version frontpaged on the Armaholic homepage. extDB2 v64 ================================================== You are not registered on Armaholic, or at least not that we are aware of. In the future we offer the possibility to authors to maintain their own pages. If you wish to be able to do this as well please register on Armaholic and let me know about it. This is not mandatory at all! Only if you wish to control your own content you are welcome to join, otherwise we will continue to follow your work like we have always done ;) When you have any questions already feel free to PM or email me! Share this post Link to post Share on other sites
yourry 14 Posted August 15, 2015 I feel that the extDB2 version 66 and BattlEye do not like: BattlEye blocks extention extDB: 10:47:44 "extDB2: Failed to Load" Do you have the same problem or is it just mine? Precision, the error is present only in solo. If I run extDB2 multi from a dedicated server, everything works fine. Share this post Link to post Share on other sites
torndeco 128 Posted August 16, 2015 BattlEye doesn't block extensions on Servers or Headless Clients.But BattlEye shouldn't be blocking v66, chances are you have an older extDB2 installed on your client machine. extDB2 v66 and later i am signing the dlls, so i don't need to request to get an extensions whitelisted Share this post Link to post Share on other sites
yourry 14 Posted August 16, 2015 Unless I am mistaken, this is the version 66 I have.Moreover when I tested extDB2 on the dedicated server: extDB2: Version: 66 Share this post Link to post Share on other sites
torndeco 128 Posted August 16, 2015 It works fine here with no issuesIf you right click on dll it will tell if its digital signed or not + the version on the dll itselfAlso you could try disable BattlEye + do"extDB2" callExtension "9:VERSION" to check the version number aswell edit: also what windows version are you running? Share this post Link to post Share on other sites
brightness 12 Posted August 16, 2015 Hi, I'm trying to understand this a bit. How am I able to retrieve a custom table for example? Like I create a table called "Vehicles" that has data -> vID, vType, Destroyed. And every time mission launches it prints this query out to see if its supposed to spawn this "vehicle". Checked the wiki but a bit messy for me to read for some reason. Share this post Link to post Share on other sites
yourry 14 Posted August 16, 2015 Here is a screen of information extDB2.dll: I confirm that no BattlEye, everything works fine: extDB2: Version: 66extDB2: https://github.com/Torndeco/extDB2extDB2: Windows VersionMessage: All development for extDB2 is done on a Linux Dedicated ServerMessage: If you would like to Donate to extDB2 DevelopmentMessage: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2SUEFTGABTAM2Message: Also leave a message if there is any particular feature you would like to see added.Message: Thanks for all the people that have donated.Message: Torndeco: 20/02/15extDB2: Found extdb-conf.iniextDB2: Detected 8 Cores, Setting up 6 Worker Threads[17:04:23:331801 +02:00] [Thread 7752] extDB2: Database Type: SQLite[17:04:23:335801 +02:00] [Thread 7752] extDB2: Database Session Pool Started[17:04:23:338801 +02:00] [Thread 7752] extDB2: SQL_CUSTOM_V2: Loading Template Filename: C:\Program Files\SteamLibrary\steamapps\common\Arma 3\@extDB2\extDB\sql_custom_v2\arma3_roj_dev_db_custom.ini[17:04:23:338801 +02:00] [Thread 7752] extDB2: SQL_CUSTOM_V2: Version 12 Detected, Latest Version 12 Available[17:04:38:654677 +02:00] [Thread 7752] extDB2: Stopping ... And with BattlEye, the problem returns: Windows informations : It is a version completely legal that I bought. After it is not very serious since in multiplayer it works. It's just a shame that it does not work solo because there still are players who play solo. If you need more information, do not hesitate. Thank you anyway, you are a leader ! Share this post Link to post Share on other sites
torndeco 128 Posted August 16, 2015 Most likely your windows 7 machine doesn't have root certificate for StartCom installed, it should be in Windows 8 & later.I don't have access to a windows 7 machine to see how to install the cert, so i am afraid thats going to up to someone else to figure out.The reason i am signing dlls is that BattlEye Whitelisting is buggy and annoying to submit dlls to get whitelisted.Also there is no way for me to submit dlls to get whitelisted now lol :) Share this post Link to post Share on other sites
yourry 14 Posted August 16, 2015 I did not understand everything :)Win 7 will be used less and less, I still expected a bit before moving on to win 10.As long as it works in multi is good. After those who really want to play solo, they can always run the game without BattlEye. Share this post Link to post Share on other sites
torndeco 128 Posted August 20, 2015 Just a heads upThere will be another update after Exile Release, kinda busy atm with other projectsWill basically be updating afew libraries, main change will be speed increase for SQLite Databases.Linux users can just use v65 for now. Barely anything changed in v66, it was mainly just to help people diag bad custom_V2.ini files. Share this post Link to post Share on other sites
HazJ 1289 Posted August 28, 2015 Can this be used in ArmA 2? I read something in the .conf I believe about Arma 2 setting or something? Not 100% sure. I tried it and I get the following error: _Key = ca> Error Missing ) Error in expression <tDB_SQL_CUSTOM_ID), _Query]; _Query = if (count _this > 0) then {_this select 0;} else {""}; _Mode = if (count _this > 1) then {_this select 1;} else {0}; _Multi_Array = if (count _this > 2) then {_this select 2;} else {false}; _Key = "extDB2" callExtension format ["%1:%2:%3", _Mode, call extDB_SQL_CUSTOM_ID, _Query]; Share this post Link to post Share on other sites