29037 Commits

Author SHA1 Message Date
UbitUmarov
07d3d51c3b Robust: only create shared webclients after reading config 2024-04-12 20:40:16 +01:00
UbitUmarov
c981f3c448 avoid a possible null ref 2024-04-11 02:42:05 +01:00
AdilElFarissi
dafc02ac80 Merge branch 'opensim:master' into master 2024-04-09 02:35:18 +00:00
UbitUmarov
5207b251c3 a few more useless changes 2024-04-08 21:43:03 +01:00
AdilElFarissi
efda155791 Merge branch 'opensim:master' into master 2024-04-08 07:17:51 +00:00
UbitUmarov
44b0d30561 a few more useless changes 2024-04-08 02:02:54 +01:00
UbitUmarov
f1cb40aa59 a few more useless changes 2024-04-07 22:26:51 +01:00
UbitUmarov
91d9c33128 replace some more wrong uses of dictionary containskey and other cosmetics 2024-04-07 20:28:56 +01:00
UbitUmarov
7dc520399c also expire flotsam assets weakreferences on console expire ammand 2024-04-06 22:33:16 +01:00
UbitUmarov
bef7db808b missing reference 2024-04-06 21:56:38 +01:00
UbitUmarov
50f818c480 also expire flotsam assets weakreferences 2024-04-06 21:54:36 +01:00
UbitUmarov
9b878933eb oops missing dependency 2024-04-04 17:49:07 +01:00
UbitUmarov
d00dbe11c0 set gc memory high pressure to 50% of total memory (sadly it may decide to ignore); change show stats memory report; let robust also show memory on show stats 2024-04-04 17:45:38 +01:00
UbitUmarov
f51f81d53f add some texture assets 2024-04-02 20:30:21 +01:00
UbitUmarov
58401238d5 reduce min size of header buffers to limit impact when osutf8 cache is empty 2024-04-02 01:27:16 +01:00
UbitUmarov
6c83782d49 cosmetics 2024-04-02 01:03:34 +01:00
UbitUmarov
54d2403252 cosmetics 2024-04-02 00:14:04 +01:00
UbitUmarov
1891b962dc cosmetics 2024-04-01 21:53:32 +01:00
UbitUmarov
0d1b14c78f do not do chained hg teleports 2024-03-31 00:44:50 +00:00
UbitUmarov
723a528b58 refuse some chars on HG url region name 2024-03-30 23:22:30 +00:00
UbitUmarov
ac49f8b8e8 use enum.getname instead of a hack 2024-03-30 18:36:37 +00:00
Adil El Farissi
cc79aa0c23 Add selfsigned certificates support to Robust and osGetLinkInventoryKeys plus some fixes 2024-03-29 03:56:03 +00:00
AdilElFarissi
7ddf60ad9f Merge branch 'opensim:master' into master 2024-03-29 03:52:41 +00:00
UbitUmarov
ed0044564d store linksetdata in sqlite and pgsql 2024-03-29 00:46:29 +00:00
UbitUmarov
8fbf905de5 oops 2024-03-28 22:32:00 +00:00
UbitUmarov
573af89389 store linksetdata in inventory and region mysql db ( others todo) UNTESTED 2024-03-28 22:03:14 +00:00
UbitUmarov
e918888e30 add llGetCameraAspect and llGetCameraFOV 2024-03-28 15:34:03 +00:00
UbitUmarov
45e49c480f use ILGenerator ILOffset instead of old mono il offset 2024-03-27 21:54:39 +00:00
UbitUmarov
b8a0bba99d mantis 9121: fix failed lsl string casts on lsl list sort 2024-03-27 21:51:49 +00:00
AdilElFarissi
88704a641f Merge branch 'opensim:master' into master 2024-03-26 22:16:17 +00:00
UbitUmarov
acbec23f48 clean appdomain related things 2024-03-26 21:34:33 +00:00
UbitUmarov
782bad9944 and rename it again as just osGetLinkInventoryKey, so it is coerent with llGetInventoryKey (mantis 9119) 2024-03-26 18:32:05 +00:00
UbitUmarov
7c63ff1150 rename new osGetLinkInventoryItemKey as osGetLinkInventoryItemAssetKey 2024-03-24 11:34:23 +00:00
Jeff Kelley
1aa7bea608 osGetLinkInventoryAssetKey
deleted:    bin/System.Drawing.Common.dll

Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2024-03-24 11:25:09 +00:00
Adil El Farissi
681baf65f1 Basic implementation of SSL selfsigned certificates creation and renewal
Allows selfsigned certificates creation and renewal for local and external use. When enabled, will create a folder SSL\ and 2 sub folders SSL\ssl\ and SSL\src\. Next creates and store an RSA private key in SSL\src\ and the derived selfsigned certificates in SSL\ssl\ folder. Is also possible to renew the certificate on every server restart if CertRenewOnStartup is set to true.

Note: The SSL related params in the network section was adapted to be user friendly and allow the usage just by uncommenting the SSL params in both sections and a password change.
2024-03-20 01:12:49 +00:00
AdilElFarissi
3542d5461b Merge branch 'opensim:master' into master 2024-03-19 21:50:59 +00:00
UbitUmarov
b70b5c07e3 revert to append all contents of .version file on the full version, if present and not empty 2024-03-11 00:18:05 +00:00
UbitUmarov
6905f1a71a cosmetics 2024-03-10 16:56:12 +00:00
UbitUmarov
0d73a817cc oops 2024-03-05 20:21:41 +00:00
UbitUmarov
6afa7d564b same for osGetLinkInventoryItemKeys 2024-03-05 19:04:36 +00:00
UbitUmarov
f770fc8a0e missing file 2024-03-05 18:52:48 +00:00
UbitUmarov
c618c4a6c4 rename the new osGetInventoryKeys as osgetinventoryitemkeys and osgetlinkinventorykey as osgetinventoryitemkey for coerence and to make clear that key means the item key within prim inventory and not its asset key as in ll funtion 2024-03-05 18:51:42 +00:00
UbitUmarov
52c287d8dc manits 9118: fix clear of animesh flag on *GetPrimitiveParams 2024-03-04 23:48:13 +00:00
UbitUmarov
97b03f76c7 fix the last patch 2024-02-29 20:40:42 +00:00
Jeff Kelley
d58f9f0f5d osGetSitTarget
Signed-off-by: UbitUmarov <ajlduarte@sapo.pt>
2024-02-29 20:28:20 +00:00
Adil El Farissi
df8fe33007 Last cosmetics and PHP/LSL test scripts
All is working fine :)

The following script send a request to the PHP file where the encrypted  string using osAESEncrypt() is decrypted and re-encrypted using the PHP openssl_XXXX. the return is the original string and the re-encrypted separated by "|"... the script decrypt the returned re-encrypted using osAESDecrypt() and log it in the chat.

LSL script:
<pre><code>
// Change the url to point to your PHP file.
string url =  "http://127.0.0.1/aesTest.php";
string plainText = "Hello World :)";
string secret = "#!qUeRtY$@123^456€!#";
key r_id;

default
{
    touch_start(integer i)
    {
        string encryptedText = osAESEncrypt(secret, plainText);
        llOwnerSay("\nEncrypted with osAESEncrypt:\n"+ encryptedText);

        r_id = llHTTPRequest(url, [HTTP_METHOD,"POST",HTTP_MIMETYPE,"application/x-www-form-urlencoded",HTTP_BODY_MAXLENGTH,"16384"], "data="+ encryptedText);
    }

    http_response(key id, integer status, list metaData, string Response){
        if(status = 200 ){
            if(id == r_id){
                if(Response != ""){
                    list temp = llParseString2List(Response,"|",[]);
                    llOwnerSay("\nDecrypted using PHP openssl_decrypt:\n"+ llList2String(temp,0));
                    llOwnerSay("\nEncrypted using PHP openssl_encrypt:\n"+ llList2String(temp,1));
                    string decryptedText = osAESDecrypt(secret, llList2String(temp,1));
                    llOwnerSay("\nDecrypted with osAESDecrypt from PHP:\n"+ decryptedText);
                }
                else{
                    llOwnerSay("Enc/Dec Failed! Response:\n"+ Response);
                }
            }
        }
        else{
             llOwnerSay("Destination not available.\nstatus: "+ status);
        }
    }
}
</code></pre>

The PHP file:
<pre><code>
<?php
    if(getenv('REQUEST_METHOD') == 'POST') {
	    $script_data = file_get_contents("php://input");
        if($script_data){
            $data = $_POST['data'];
            $secret = "#!qUeRtY$@123^456€!#";
            $key = hex2bin(strtoupper(hash('sha256', $secret)));
            $iv = hex2bin(strtoupper(explode(":", $data)[0]));
            $encryptedText = hex2bin(strtoupper(explode(":", $data)[1]));
            $plainText = openssl_decrypt($encryptedText, "AES-256-CBC", $key, $options=OPENSSL_RAW_DATA, $iv);
            $retIv = openssl_random_pseudo_bytes(16);
            $reEncrypted = openssl_encrypt($plainText, "AES-256-CBC", $key, $options=OPENSSL_RAW_DATA, $retIv);

            echo $plainText && $reEncrypted ? $plainText."|".bin2hex($retIv).":".bin2hex($reEncrypted) : "";

        }
    };
?>
</code></pre>

Co-Authored-By: Ubit Umarov <469643+UbitUmarov@users.noreply.github.com>
2024-02-29 01:09:20 +00:00
UbitUmarov
ab4b690ffd fis AES encoding 2024-02-27 20:21:35 +00:00
UbitUmarov
18ec6d6380 cosmetics 2024-02-26 18:07:50 +00:00
Adil El Farissi
60214e6e81 Add 2 OSSL functions to the LinkInventory collection
Add Functions:
+ osGiveLinkInventoryList(integer linkNumber, key destination, string category, list inventory)
Give a group of items located in a child prim inventory

+ osRemoveLinkInventory(integer linkNumber, string name)
Remove an item from a child prim inventory

LSL Script example:
<pre><code>
default
{
    touch_start(integer a){

        integer linkNumber = llDetectedLinkNumber(0);
        list linkInventoryNames = osGetLinkInventoryNames(linkNumber, INVENTORY_ALL);
        osGiveLinkInventoryList(linkNumber, llDetectedKey(0), llGetLinkName(linkNumber), linkInventoryNames);

        for(integer i = 0; i < llGetListLength(linkInventoryNames); i++){
            osRemoveLinkInventory(linkNumber, llList2String(linkInventoryNames, i));
        }
    }
}
</code></pre>
2024-02-25 07:14:49 +00:00
UbitUmarov
f4e14aba6d fix webstats SStats defualt answer 2024-02-24 16:36:15 +00:00