Jump to content
torndeco

extDB (arma3 extension linux/windows)

Recommended Posts

@ Torndeco

Thanks again for your insights!

Maybe Arma Wargames or another MP campaign could need your assistance.

Insurgency (version having also area capture system) with persistence would be quite cool as well.

Finally CTI/Warfare with saving/persistence would be quite an improvement too.

Overall it comes back to what you are mainly interested and want to work on though. :)

Share this post


Link to post
Share on other sites

extDB Repo is currently private atm

-------

There was abit of fuss over someone posting a thread asking for extDB donations on Altis Life RPG forums, wasn't even me.

Thread was removed / hidden due to fact it was to donations for myself / extDB development and wasn't against a forum Rule (i checked).

So it was directed at me over me not actively supporting Altis Life RPG mission anymore

Mainly due to me not wanting to be associated with a RPG Mission with Rape / Attempted Rape in code for crimes etc..

While i talked to Tonic quickly over the issue

I have made extDB repo private while i decide what i will do

Do nothing

Code Changes to Drop Altis Life RPG Support

Even a License Change (not preferred)

Donations only came up in Issue Tracker due to Linux Server Costs & Server Renewal was coming up.

There is no finance reason to pay for a server just for working on an extension i wasn't using.

Donations would go towards paying for Dedicated Server costs, so i would do continue todo development work on extDB.

I even mentioned i would more than likely come back regardless anyways after Arma 2017 Release.

-------

Anyway don't worry for the 2 people that donated. (Same person donated twice thank you)

I should have it backup up in 48 Hours or i will return your donations.

Upcoming updates if i do continue are

1) Apache Thrift Support for remote server script execution

2) Support for Dynamic SQL Statements in DB_CUSTOM_V5 (mainly for A3Wasteland)

If you have issues or questions that are not Altis Life RPG related send me a message on forums and i am sorry about the inconvenience.

Edited by Torndeco

Share this post


Link to post
Share on other sites

Wow that's disappointing because I'm in the middle of setting up a Life server and I need the wiki.

Luckily I managed to clone the repo hours before it was pulled down. I'm hoping that without documentation, I can still get it working. Right now I'm stuck because the server is refusing to load the server-side mod.

Share this post


Link to post
Share on other sites

Hey, look at that! I got it working.

Edit: if anyone is interested, I've tossed an unmodified copy of the original repo up on github: https://github.com/dcorbe/extdb

But it lacks the wiki and I won't personally be maintaining binaries.

Edited by hohum

Share this post


Link to post
Share on other sites

Would appreciate a forum moderator just locking this thread.

extDB in its current state is dead

If i do release a new version of extDB, more than likely will be some changes...

I will post a new thread if i do go that route.

Also while you are perfectly free to fork extDB etc... please make up your own thread.

edit: Also if you do fork extDB etc, please rename the extension to avoid confusion with users and pay attention to the license for the code in question.

Edited by Torndeco

Share this post


Link to post
Share on other sites

As a matter of fact, I am putting together another thread -- and contrary to what I said earlier I'm going to be providing a binary release and development support on a limited basis. It would be nice if you could put up a mirror of the Wiki so that we have some documentation to start with but based on your comments over on the Altris Life forums, I don't expect much cooperation from you. As others have said, thank you so much for your hard work over the years.

Share this post


Link to post
Share on other sites
What will be happening to Altis Life in relationship to extDB?

There are complete copies of extDB floating around out there that people have vowed to continue supporting and building on. The only difference is there won't be one centralized place for development and downloads any longer. But nothing of value was lost.

---------- Post added at 15:11 ---------- Previous post was at 14:49 ----------

New Topic: http://forums.bistudio.com/showthread.php?188905-extDB-Plus-(Arma3-Database-Extension)

Share this post


Link to post
Share on other sites

Last time keep please keep discussion about forks etc in your own thread thank you.

This thread is purely for discussion for extDB, Altis Life RPG has their own forums for supporting people.

Also thanks for picking a name that will confuse people *sigh*

For people confused over why repo got pulled down you can read links @

http://forums.bistudio.com/showthread.php?179727-extDB-(arma3-extension-linux-windows)&p=2879754&viewfull=1#post2879754

http://www.altisliferpg.com/topic/9380-respect-owed-to-where-it-is-due/

Like i said anyone that is inconvienced by this can PM me once its not related to Altis Life RPG etc...

edit:

Update, new version is coming along nicely.

Overhaul of code is coming along nicely, even improved the performance of Unique IDs.

edit2:

Old Repo is up @ https://github.com/Torndeco/extdb_old

Edited by Torndeco

Share this post


Link to post
Share on other sites

Also thanks for picking a name that will confuse people *sigh*

People need to be aware that there are still resources out there for them.

If you hadn't pulled down the repositories, we wouldn't be in this situation. But you've made it abundantly clear (both in word and action) that you don't want a specific group of people utilizing your work.

I'd be happy to pull the thread entirely if you'd put the original repositories back up.

Share this post


Link to post
Share on other sites

I'll be putting up the old wiki info shortly as I have it all mirrored from cached copies. I can also put it back on your old repo Torndeco if you would like

Share this post


Link to post
Share on other sites

I still have all the original stuff, like i just made the repo was just made private for afew days.

While i was considering what i was going todo inregards to future of the project.

Infact the old repo is up on https://github.com/Torndeco/extdb_old

Now please have some respect and move all discussions of forks to another thread.

All you will accomplish by posting in here about a fork, is i won't release extDB as opensource anymore.

Edited by Torndeco

Share this post


Link to post
Share on other sites

extDB2 Debug Test Build is Now Available @

https://github.com/Torndeco/extDB2/releases

extDB2 will require changes to SQF Code.

As the syntax for Add Protocols etc has changed slightly

So has the return result string aswell

Have a look @

https://github.com/Torndeco/extDB2/tree/master/examples/sqf

https://github.com/Torndeco/extDB2/wiki

https://github.com/Torndeco/extDB2/wiki/Known-Issues

https://github.com/Torndeco/extDB2/wiki/Changes-from-extDB

Might be typos etc...

Still in progress updating repo + wiki etc...

------------

Recommend you only use this for test release to test out updating SQF Code on a test server etc..

Edited by Torndeco

Share this post


Link to post
Share on other sites

extDB2 Version 37 Released

Updated First Post

If a forum moderator reads this, can they change title from extDB->extDB2 thanks.

Info:

First Official Release of extDB2

https://github.com/Torndeco/extDB2/releases

Went over all the code, some stuff got removed / improved on.

Due to the changes extDB2 is not back compatible, but it is very similiar.

So it shouldn't require much work, just really some sqf changes.

The only exception is A3Wasteland Servers would need to update db_custom_v3 -> sql_custom file.

Its very similar to DB_CUSTOM_V5 but it also supports Dynamic SQL Insertion aswell.

Main advantages are

1) Performance changes in code, but prob won't be noticeable. Didn't benchmark

2) SQL_CUSTOM can return InsertID

3) SQL_CUSTOM can add Dynamic Text to Statement

Fixes

Couple of separate fixes for handling Database Connection Lost, some in extDB2 / Poco + MySQL Code.

So if you do compile from Source make sure you use the supplied changes.

Note:

Documentation of changes / new features are still currently a work in progress.

Also i will have Linux Builds Uploaded later today.

Edited by Torndeco

Share this post


Link to post
Share on other sites

Hi Torndeco! I'm using your mod for Altis Life by TAWTonic. Can you add a wiki tutoriel to install extDB on Linux, because as I can see, a lot of people are not able to install it for Altis Life. I have try to use ExtDB for A3Wasteland too, but it doesn't work. Can you made a little tutorial please ? :) Thank you from Arma community!

Share this post


Link to post
Share on other sites

https://github.com/Torndeco/extdb/wiki/Setup:-Linux-Static-Build

Only way you can mess up is not install 32bit version of tbb2 or file permissions

There is also a test program for extDB you can try run to see what happens..

Otherwise its the exact same as windows install.

Edited by Torndeco

Share this post


Link to post
Share on other sites

Hi Torndeco,

first, thanks for this awesome work, it lacks a good doc (for sqf implementation) but it's pretty easy to install and test it with extDB2-test.exe.

It works like a charm with extDB2-test.exe but i always have an error with my sqf test:

I use the init (https://github.com/Torndeco/extDB2/blob/master/examples/sqf/init.sqf) wich i renamed extdb_init.sqf. The init is always successful.

init.sqf

_dbOk = ["TESTDB2","SQL_CUSTOM","extdb"] call compile PreprocessFileLineNumbers "extdb_init.sqf";
if (_dbOk) then {
systemChat "DB init successful";
_test = [1] call compile PreprocessFileLineNumbers "test.sqf";
if (_test) then {
	systemChat _test;
};
};

test.sqf

private["_uid","_return","_result"];

_uid = [_this,0,"",[""]] call BIS_fnc_param;

_return = false;
_result = "extDB2" callExtension format["2:%1:getPlayerName:%2", call extDB_SQL_CUSTOM_ID, _uid];
if (_result select 0 == 0) exitWith {diag_log format ["extDB2: Error Database: %1", _result]; false};
//_return = format["NAME: %1", ((_result select 1) select 0)];
_return = format["NAME: %1", _result];

_return

estDB\sql_custom\extdb.ini

[getPlayerName]
SQL1_1 = SELECT name FROM testable WHERE uid = ?;

Number of Inputs = 1
SQL1_INPUTS = 1

RPT

22:21:00 "extDB2: Version: 38"
22:21:00 "extDB2: Connected to Database"
22:21:00 "extDB2: Initalized SQL_CUSTOM Protocol"
22:21:00 "extDB2: Locked"
22:21:00 Error in expression <extDB_SQL_CUSTOM_ID, _uid];
if (_result select 0 == 0) exitWith {diag_log format>
22:21:00   Error position: <select 0 == 0) exitWith {diag_log format>
22:21:00   Error Erreur générique dans une expression
22:21:00 File mpmissions\__CUR_MP.Altis\test.sqf, line 7

i can't manage to make it works ! i don't understand what i'm doing wrong

Share this post


Link to post
Share on other sites

I fully support your view on Altis life game play.

Pulling the code is a little harsh though.

I don't play it or code for it myself but I can see others frustrations and point of view on this.

Keep up the good work ... I use it for wasteland... (a far better play experiance !)

Share this post


Link to post
Share on other sites

@spitfire007

http://www.altisliferpg.com/topic/9380-respect-owed-to-where-it-is-due/

Repo was private for like 4 days, not gonna get dragged into this debate again.

Regardless this project is GPL'ed and still is GPL'ed.

At one point i was considering dropping some code + license change.

Or if you are talking about Altis Life RPG Array Option, which got removed in extDB2.

It was never needed i.e look @ example 2 https://community.bistudio.com/wiki/String

I removed afew features that weren't needed anymore

@XoO

You really should use https://github.com/Torndeco/extDB2/blob/master/examples/sqf/fn_async.sqf

So it would be

_query = format["getPlayerName:%1", _uid];

[_query, 2] call fn_async;

2=ASYNC + Return Result

1=ASYNC, + no return result... i.e for Database updates

0=SYNC updates, will block till its done. Personally i recommend you just use 2 instead, so you aren't blocking the arma engine.

-----------

For example in your code you forgot to compile the result.

callExtension returns a string

Since it was a string your if statement was checking the first character if it was an integer 0.

Thats why you get the error about expression, you were comparing a string to an integer.

So you forgot to call compile the string so it would turn into an array.

----------

Just use fn_async its got the logic in place already for waiting / errors / multi-part messages.

Edited by Torndeco

Share this post


Link to post
Share on other sites

Thanks for the fast reply and the clear explainations of my mistakes ! I'm developer so dig into new languages is usually easy for me but i'm pretty new with the sqf who is totally different from my usual way.

I will use fn_async.sqf, but first i needed to experiment a bit to understand the different returns and easily understand how to manage extDB returns... but the problem is my lacks in sqf knowledge.

Share this post


Link to post
Share on other sites
@spitfire007

http://www.altisliferpg.com/topic/9380-respect-owed-to-where-it-is-due/

Repo was private for like 4 days, not gonna get dragged into this debate again.

Regardless this project is GPL'ed and still is GPL'ed.

At one point i was considering dropping some code + license change.

Or if you are talking about Altis Life RPG Array Option, which got removed in extDB2.

It was never needed i.e look @ example 2 https://community.bistudio.com/wiki/String

I removed afew features that weren't needed anymore

Sorry dude .. my mistake.

Share this post


Link to post
Share on other sites

Version 40

Mainly a bug fix release for when Database Connection is lost.

Also added support for dynamic text in SQL_CUSTOM i.e $CUSTOM_X$

Updated Wiki with an example...

Important extDB2 now checks extdb-conf.ini for correct version.

It will kill server if the config file has wrong version, added check due to upcoming changes.

Changes: version 40

  • UPDATED: Disabled Console Logger in Normal Builds
  • FIXED: Crashes when Database Connection fails during Fetching Result Info

Changes: version 39

  • ADDED: Added Version Check for extdb-conf.ini
  • ADDED: SQL_CUSTOM Dynamic SQL via $CUSTOM_x$
  • UPDATED: Disable all Console Output for normal builds
  • UPDATED: SPDLOG Logging Code, Linux using SPDLOG_CLOCK_COARSE
  • FIXED: Steam VAC Auto Bans, now sends loadBans
  • FIXED: More SQL_CUSTOM Fixes for Database Exception Handling

Downloads

https://github.com/Torndeco/extDB2/releases

Edited by Torndeco

Share this post


Link to post
Share on other sites

Version 41

Very Important

If you enable RemoteTCP block the port from outside access.

I still need to code to blacklist / whitelist IPs, atm clients can brute-force guess the password fairly easy.

Also the password is send in the clear atm...

Changes: version 41

  • ADDED: Remote Raw TCP communicate with extDB2
  • FIXED: Missing ] from SQL_RAW when query result was empty

Downloads

https://github.com/Torndeco/extDB2/releases

--------------

RemoteTCP Connection:

Is a new feature to send messages directly to extDB2.

9:START_REMOTE:RemoteAccess

This starts RemoteTCP using "RemoteAccess" settings in extdb-conf.ini.

Now you can use a client like Putty/Kitty http://www.9bis.net/kitty/

Select IP/Port etc... for Connection Type Select RAW

If successful you will see a

Password: 

Enter the password you configured in extdb-conf.ini, note this password is currently sent in plain text.

You will get 3 attempts

Type

#START
<INSERT CODE>
<INSERT CODE>
<INSERT CODE>
#END
#SEND

-----------------------------

SQF / Arma Engine side

Once the code / text has been #SEND

You can retreive it by

_result = "extDB2" callExtension "6:0";

The result will be in either in these formats

<TCPClientID>:<TEXT>
or
<UniqueID>

If you get back just a UniqueID you will need to use

5:<UniqueID> to retreive the information.

With the TCPClientID you can also send text back to the TCPClient via

"extDB2" callExtension "7:<TCPClientID>:<TEXT>";

------------------

Possible uses include, Admin Webpage that sends extDB2 SQF Code to execute.

Ability for Admin to test out executing code on a server without having to add exceptions to remote execute code sent from clients.

I will try and get around to writing up some SQF Examples later on.

Edited by Torndeco

Share this post


Link to post
Share on other sites

Version 44

Just some bugfixes, main things of note is RCON Whitelisting allowed commands is now working correctly.

Also the setup commands got changed slightly, should only take afew seconds to update...

Had some bad logic in the code, best solution was to split up the Protocols + Database Protocols into different commands.

Renamed the commands aswell, so it easier for new person to understand them at a glance.

9:ADD_DATABASE:<DATABASE>
9:ADD_DATABASE:<DATABASE>:<DATABASE_NAME>

9:ADD_PROTOCOL:<PROTOCOL>:<PROTOCOL_NAME>
9:ADD_PROTOCOL:<PROTOCOL>:<PROTOCOL_NAME>:<OPTIONS>

9:ADD_DATABASE_PROTOCOL:<DATABASE_NAME>:<PROTOCOL>:<PROTOCOL_NAME>
9:ADD_DATABASE_PROTOCOL:<DATABASE_NAME>:<PROTOCOL>:<PROTOCOL_NAME>:<OPTIONS>

Also Updated the wiki documentation, was slightly outof date.

https://github.com/Torndeco/extDB2/wiki

Changes: version 44

  • FIXED: RCON Whitelisting Commands (still need to fixup ability to whitelist #exec commands fully)
  • CHANGED: System Commands, Logic was broken slightly should only take afew seconds to update sqf code

Changes: version 43

  • FIXED: Re-added [1] Return for 1: for simplier fn_async code

Changes: version 42

  • FIXED: SQL_CUSTOM BEGUID Option

Downloads

https://github.com/Torndeco/extDB2/releases

Edited by Torndeco

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×