Compare commits

...

7 Commits

Author SHA1 Message Date
cfd54b09be Add filtermodkick setting to db if missing 2019-02-24 13:17:01 +01:00
16b81337b1 Merge pull request #52 from virtualghetto/filtermodkick-fix
fix filtermodkick setting
2019-02-24 13:08:47 +01:00
2cd5d18511 Merge pull request #50 from virtualghetto/next-gen-hotlink
Next-Gen Onion Hotlink
2019-02-24 13:02:41 +01:00
0ae827450a Merge pull request #51 from virtualghetto/restore-enc-notes
Restore encrypted notes
2019-02-24 12:59:47 +01:00
5589999b0f fix filtermodkick setting
filtermodkick should be defined in the settings array instead of reg.
2019-02-16 18:42:56 +00:00
4d0b828879 Restore encrypted notes
send_backup() decrypts the notes if MSGENCRYPTED is enabled.
So, re-encrypt the notes on restore.
2019-02-03 15:45:18 +00:00
268328f82c Next-Gen Onion Hotlink 2018-11-07 15:50:51 +00:00
2 changed files with 15 additions and 7 deletions

View File

@ -1,3 +1,8 @@
Version 1.23.7 - Feb. 24, 2019
Support V3 hidden services
Fixed filtermodkick setting
fixed restore_backup not encrypting notes
Version 1.23.6 - Apr. 22, 2018
Added Czech, Italian and Ukrainian translation
Updated Russian translation

View File

@ -767,6 +767,9 @@ function restore_backup($C){
}elseif($note['type']==='staff'){
$note['type']=1;
}
if(MSGENCRYPTED){
$note['text']=openssl_encrypt($note['text'], 'aes-256-cbc', ENCRYPTKEY, 0, '1234567890123456');
}
$stmt->execute([$note['type'], $note['lastedited'], $note['editedby'], $note['text']]);
}
}
@ -3021,7 +3024,7 @@ function create_hotlinks($message){
$message=preg_replace('~((?:[^\s<>]*:[^\s<>]*@)?[a-z0-9\-]+(?:\.[a-z0-9\-]+)+:\d+)(?![^<>]*>)~iu', "<<$1>>", $message); // server:port given
$message=preg_replace('~([^\s<>]*:[^\s<>]*@[a-z0-9\-]+(?:\.[a-z0-9\-]+)+(?::\d+)?)(?![^<>]*>)~iu', "<<$1>>", $message); // au:th@server given
// 3. likely servers without any hints but not filenames like *.rar zip exe etc.
$message=preg_replace('~((?:[a-z0-9\-]+\.)*[a-z2-7]{16}\.onion)(?![^<>]*>)~iu', "<<$1>>", $message);// *.onion
$message=preg_replace('~((?:[a-z0-9\-]+\.)*(?:[a-z2-7]{55}d|[a-z2-7]{16})\.onion)(?![^<>]*>)~iu', "<<$1>>", $message);// *.onion
$message=preg_replace('~([a-z0-9\-]+(?:\.[a-z0-9\-]+)+(?:\.(?!rar|zip|exe|gz|7z|bat|doc)[a-z]{2,}))(?=[^a-z0-9\-\.]|$)(?![^<>]*>)~iu', "<<$1>>", $message);// xxx.yyy.zzz
// Convert every <<....>> into proper links:
$message=preg_replace_callback('/<<([^<>]+)>>/u',
@ -3637,6 +3640,7 @@ function init_chat(){
['maxuploadsize', '1024'],
['nextcron', '0'],
['personalnotes', '1'],
['filtermodkick', '0'],
];
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'settings (setting, value) VALUES (?, ?);');
foreach($settings as $pair){
@ -3658,7 +3662,6 @@ function init_chat(){
'eninbox' =>0,
'sortupdown' =>0,
'hidechatters' =>0,
'filtermodkick' =>1,
];
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'members (nickname, passhash, status, refresh, bgcolour, timestamps, style, embed, incognito, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);');
$stmt->execute([$reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['bgcolour'], $reg['timestamps'], $reg['style'], $reg['embed'], $reg['incognito'], $reg['nocache'], $reg['tz'], $reg['eninbox'], $reg['sortupdown'], $reg['hidechatters'], $reg['nocache_old']]);
@ -3965,9 +3968,6 @@ function update_db(){
$db->exec('CREATE INDEX ' . PREFIX . 'notes_type ON ' . PREFIX . 'notes(type);');
$db->exec('CREATE INDEX ' . PREFIX . 'notes_editedby ON ' . PREFIX . 'notes(editedby);');
}
if($dbversion<40){
$db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('filtermodkick', '1');");
}
if($dbversion<41){
$db->exec('DROP TABLE ' . PREFIX . 'sessions;');
$db->exec('CREATE TABLE ' . PREFIX . "sessions (id $primary, session char(32) NOT NULL UNIQUE, nickname varchar(50) NOT NULL UNIQUE, status smallint NOT NULL, refresh smallint NOT NULL, style varchar(255) NOT NULL, lastpost integer NOT NULL, passhash varchar(255) NOT NULL, postid char(6) NOT NULL DEFAULT '000000', useragent varchar(255) NOT NULL, kickmessage varchar(255) DEFAULT '', bgcolour char(6) NOT NULL, entry integer NOT NULL, timestamps smallint NOT NULL, embed smallint NOT NULL, incognito smallint NOT NULL, ip varchar(45) NOT NULL, nocache smallint NOT NULL, tz varchar(255) NOT NULL, eninbox smallint NOT NULL, sortupdown smallint NOT NULL, hidechatters smallint NOT NULL, nocache_old smallint NOT NULL)$memengine$charset;");
@ -3994,6 +3994,9 @@ function update_db(){
$db->exec('CREATE INDEX ' . PREFIX . 'inbox_recipient ON ' . PREFIX . 'inbox(recipient);');
$db->exec('ALTER TABLE ' . PREFIX . 'inbox ADD FOREIGN KEY (recipient) REFERENCES ' . PREFIX . 'members(nickname) ON DELETE CASCADE ON UPDATE CASCADE;');
}
if($dbversion<42){
$db->exec('INSERT IGNORE INTO ' . PREFIX . "settings (setting, value) VALUES ('filtermodkick', '1');");
}
update_setting('dbversion', DBVERSION);
if($msgencrypted!==MSGENCRYPTED){
if(!extension_loaded('openssl')){
@ -4174,8 +4177,8 @@ function load_lang(){
function load_config(){
mb_internal_encoding('UTF-8');
define('VERSION', '1.23.6'); // Script version
define('DBVERSION', 41); // Database layout version
define('VERSION', '1.23.7'); // Script version
define('DBVERSION', 42); // Database layout version
define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing!
define('ENCRYPTKEY', 'MY_KEY'); // Encryption key for messages
define('DBHOST', 'localhost'); // Database host