diff options
-rw-r--r-- | Makefile | 2 | ||||
-rwxr-xr-x | dev/scripts/database/schema.init.sh | 22 | ||||
-rwxr-xr-x | dev/scripts/database/schema.reset.sh | 25 | ||||
-rw-r--r-- | res/sql/Data.sql | 69 | ||||
-rw-r--r-- | res/sql/Hostname.sql | 2 | ||||
-rw-r--r-- | res/sql/Version.sql | 1 | ||||
-rw-r--r-- | src/engine/config/global/global.c | 5 |
7 files changed, 93 insertions, 33 deletions
@@ -12,7 +12,7 @@ MAKEFLAGS = --output-sync=target # Identity of this package. PACKAGE_NAME = Magma Daemon PACKAGE_TARNAME = magma -PACKAGE_VERSION = 6.4 +PACKAGE_VERSION = 7.0 PACKAGE_STRING = $(PACKAGE_NAME) $(PACKAGE_VERSION) PACKAGE_BUGREPORT = support@lavabit.com PACKAGE_URL = https://lavabit.com diff --git a/dev/scripts/database/schema.init.sh b/dev/scripts/database/schema.init.sh index d6c291df..ea0cc7b2 100755 --- a/dev/scripts/database/schema.init.sh +++ b/dev/scripts/database/schema.init.sh @@ -63,35 +63,43 @@ if [ ! -d $MAGMA_RES_SQL ]; then exit 1 fi -# Generate Start.sql from the user-provided Schema -echo "CREATE DATABASE IF NOT EXISTS \`${MYSQL_SCHEMA}\`; +# Generate a Start.sql file using the user-provided schema name. +cat <<-EOF > $MAGMA_RES_SQL/Start.sql +CREATE DATABASE IF NOT EXISTS \`${MYSQL_SCHEMA}\`; USE \`${MYSQL_SCHEMA}\`; SET SESSION sql_mode = 'ALLOW_INVALID_DATES'; SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; -SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;" > $MAGMA_RES_SQL/Start.sql +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +EOF if [ -z "$HOSTNAME" ]; then HOSTNAME=$(hostname) fi -# Generate Hostname.sql with the system's Hostname -echo "UPDATE Hosts SET hostname = '$HOSTNAME' WHERE hostnum = 1;" > $MAGMA_RES_SQL/Hostname.sql +# Generate the Hostname.sql file using the system host name. +echo "INSERT INTO \`Hosts\` (\`hostnum\`, \`hostname\`, \`timestamp\`) VALUES (1,'$HOSTNAME',NOW());" > $MAGMA_RES_SQL/Hostname.sql + +# Generate Version.sql file with the correct version number. +MAGMA_VERSION=`grep --extended-regexp "^PACKAGE_VERSION" Makefile | awk --field-separator='=' '{print \$2}' | awk --field-separator='.' '{print \$1}' | tr --delete [:blank:]` +echo "INSERT INTO \`Host_Config\` (\`confignum\`, \`hostnum\`, \`application\`, \`name\`, \`value\`, \`timestamp\`) VALUES (1,NULL,'magmad','magma.version','$MAGMA_VERSION',NOW());" > $MAGMA_RES_SQL/Version.sql # Tell git to skip checking for changes to these SQL files, but we only do this if git is on the system and the files # are stored inside a repo. GIT_IS_AVAILABLE=`which git &> /dev/null && git log &> /dev/null && echo 1` if [[ "$GIT_IS_AVAILABLE" == "1" ]]; then git update-index --skip-worktree "$MAGMA_RES_SQL/Start.sql" + git update-index --skip-worktree "$MAGMA_RES_SQL/Version.sql" git update-index --skip-worktree "$MAGMA_RES_SQL/Hostname.sql" fi +# Add -vvv to the mysql command line option when the batch fails to assist in troubleshooting. cat $MAGMA_RES_SQL/Start.sql \ $MAGMA_RES_SQL/Schema.sql \ - $MAGMA_RES_SQL/Data.sql \ $MAGMA_RES_SQL/Migration.sql \ - $MAGMA_RES_SQL/Finish.sql \ $MAGMA_RES_SQL/Hostname.sql \ + $MAGMA_RES_SQL/Version.sql \ + $MAGMA_RES_SQL/Finish.sql \ | mysql --batch -u "${MYSQL_USER}" --password="${MYSQL_PASSWORD}" diff --git a/dev/scripts/database/schema.reset.sh b/dev/scripts/database/schema.reset.sh index 2708d404..0311fe33 100755 --- a/dev/scripts/database/schema.reset.sh +++ b/dev/scripts/database/schema.reset.sh @@ -74,37 +74,46 @@ if [ ! -d $MAGMA_RES_STORAGE ]; then echo "The local storage directory appears to be missing. It will be created. { path = $MAGMA_RES_STORAGE }" fi -# Generate Start.sql from the user-provided Schema -echo "DROP DATABASE IF EXISTS \`${MYSQL_SCHEMA}\`; +# Generate a Start.sql file using the user-provided schema name. +cat <<-EOF > $MAGMA_RES_SQL/Start.sql +DROP DATABASE IF EXISTS \`${MYSQL_SCHEMA}\`; CREATE DATABASE IF NOT EXISTS \`${MYSQL_SCHEMA}\`; USE \`${MYSQL_SCHEMA}\`; SET SESSION sql_mode = 'ALLOW_INVALID_DATES'; SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; -SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;" > $MAGMA_RES_SQL/Start.sql +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +EOF if [ -z "$HOSTNAME" ]; then HOSTNAME=$(hostname) fi -# Generate Hostname.sql with the system's Hostname -echo "UPDATE Hosts SET hostname = '$HOSTNAME' WHERE hostnum = 1;" > $MAGMA_RES_SQL/Hostname.sql +# Generate the Hostname.sql file using the system host name. +echo "INSERT INTO \`Hosts\` (\`hostnum\`, \`hostname\`, \`timestamp\`) VALUES (1,'$HOSTNAME',NOW());" > $MAGMA_RES_SQL/Hostname.sql + +# Generate Version.sql file with the correct version number. +MAGMA_VERSION=`grep --extended-regexp "^PACKAGE_VERSION" Makefile | awk --field-separator='=' '{print \$2}' | awk --field-separator='.' '{print \$1}' | tr --delete [:blank:]` +echo "INSERT INTO \`Host_Config\` (\`confignum\`, \`hostnum\`, \`application\`, \`name\`, \`value\`, \`timestamp\`) VALUES (1,NULL,'magmad','magma.version','$MAGMA_VERSION',NOW());" > $MAGMA_RES_SQL/Version.sql # Tell git to skip checking for changes to these SQL files, but we only do this if git is on the system and the files # are stored inside a repo. GIT_IS_AVAILABLE=`which git &> /dev/null && git log &> /dev/null && echo 1` if [[ "$GIT_IS_AVAILABLE" == "1" ]]; then git update-index --skip-worktree "$MAGMA_RES_SQL/Start.sql" + git update-index --skip-worktree "$MAGMA_RES_SQL/Version.sql" git update-index --skip-worktree "$MAGMA_RES_SQL/Hostname.sql" fi +# Add -vvv to the mysql command line option when the batch fails to assist in troubleshooting. cat $MAGMA_RES_SQL/Start.sql \ $MAGMA_RES_SQL/Schema.sql \ - $MAGMA_RES_SQL/Data.sql \ $MAGMA_RES_SQL/Migration.sql \ - $MAGMA_RES_SQL/Finish.sql \ $MAGMA_RES_SQL/Hostname.sql \ -| mysql --batch -u "${MYSQL_USER}" --password="${MYSQL_PASSWORD}" + $MAGMA_RES_SQL/Version.sql \ + $MAGMA_RES_SQL/Data.sql \ + $MAGMA_RES_SQL/Finish.sql \ +| mysql -vvv --batch -u "${MYSQL_USER}" --password="${MYSQL_PASSWORD}" # Remove the storage tanks. rm --force "$MAGMA_RES_TANKS/system.data" diff --git a/res/sql/Data.sql b/res/sql/Data.sql index 5e920df5..0e50d146 100644 --- a/res/sql/Data.sql +++ b/res/sql/Data.sql @@ -79,7 +79,7 @@ INSERT INTO `Domains` VALUES (1,'dark.lavabit.com',0,0,0,0,0,'2010-05-18 02:08:5 -- ORDER BY: `foldernum` /*!40000 ALTER TABLE `Folders` DISABLE KEYS */; -INSERT INTO `Folders` VALUES (1,1,'Inbox',0,NULL),(2,2,'Inbox',0,NULL),(3,3,'Inbox',0,NULL),(4,4,'Inbox',0,NULL); +INSERT INTO `Folders` (`foldernum`, `usernum`, `foldername`, `order`, `parent`) VALUES (1,1,'Inbox',0,NULL),(2,2,'Inbox',0,NULL),(3,3,'Inbox',0,NULL),(4,4,'Inbox',0,NULL); /*!40000 ALTER TABLE `Folders` ENABLE KEYS */; -- @@ -96,19 +96,10 @@ INSERT INTO `Folders` VALUES (1,1,'Inbox',0,NULL),(2,2,'Inbox',0,NULL),(3,3,'Inb -- ORDER BY: `confignum` /*!40000 ALTER TABLE `Host_Config` DISABLE KEYS */; -INSERT INTO `Host_Config` VALUES (1,NULL,'magmad','magma.system.increase_resource_limits','false','2009-12-16 04:32:54'),(2,NULL,'magmad','magma.storage.default','local','2011-03-24 12:11:22'),(3,NULL,'magmad','magma.smtp.blacklist','bl.spamcop.net.','2011-04-13 16:03:55'); +INSERT INTO `Host_Config` (`hostnum`,`application`,`name`,`value`,`timestamp`) VALUES (NULL,'magmad','magma.system.increase_resource_limits','false','2009-12-16 04:32:54'),(NULL,'magmad','magma.storage.default','local','2011-03-24 12:11:22'),(NULL,'magmad','magma.smtp.blacklist','bl.spamcop.net.','2011-04-13 16:03:55'); /*!40000 ALTER TABLE `Host_Config` ENABLE KEYS */; -- --- Dumping data for table `Hosts` --- --- ORDER BY: `hostnum` - -/*!40000 ALTER TABLE `Hosts` DISABLE KEYS */; -INSERT INTO `Hosts` VALUES (1,'dark.lavabit.com','2009-12-16 04:32:54'); -/*!40000 ALTER TABLE `Hosts` ENABLE KEYS */; - --- -- Dumping data for table `Keys` -- -- ORDER BY: `usernum` @@ -140,7 +131,7 @@ INSERT INTO `Limits` VALUES ('BASIC','The Lavabit basic account plan.',0,0,0,0,1 -- ORDER BY: `usernum` /*!40000 ALTER TABLE `Log` DISABLE KEYS */; -INSERT INTO `Log` VALUES (1,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:15:59','0.0.0.0'),(2,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:16:03','0.0.0.0'),(3,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:16:09','0.0.0.0'),(4,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:15:59','0.0.0.0'); +INSERT INTO `Log` VALUES (1,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:15:59','0.0.0.0'),(2,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:16:03','0.0.0.0'),(3,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:16:09','0.0.0.0'),(4,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2011-05-05 14:15:59','127.0.0.1'); /*!40000 ALTER TABLE `Log` ENABLE KEYS */; -- @@ -149,7 +140,7 @@ INSERT INTO `Log` VALUES (1,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00 -- ORDER BY: `address` /*!40000 ALTER TABLE `Mailboxes` DISABLE KEYS */; -INSERT INTO `Mailboxes` VALUES ('magma@lavabit.com',1),('magma@example.com',1),('princess@lavabit.com',2),('princess@example.com',2),('ladar@mailshack.com',3),('ladar@nerdshack.com',3),('ladar@lavabit.com',3),('ladar@example.com',3),('stacie@lavabit.com',4),('stacie@example.com',4); +INSERT INTO `Mailboxes` (`address`, `usernum`) VALUES ('magma@lavabit.com',1),('magma@example.com',1),('princess@lavabit.com',2),('princess@example.com',2),('ladar@mailshack.com',3),('ladar@nerdshack.com',3),('ladar@lavabit.com',3),('ladar@example.com',3),('stacie@lavabit.com',4),('stacie@example.com',4); /*!40000 ALTER TABLE `Mailboxes` ENABLE KEYS */; -- @@ -231,4 +222,54 @@ INSERT INTO `Users` VALUES (1,'magma',NULL, NULL,0,'42a7ead6550ee52360222a0e8783 INSERT INTO `Codes` VALUES (1,'A',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(2,'B',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(3,'C',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(4,'D',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(5,'E',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(6,'F',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(7,'G',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(8,'H',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(9,'I',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(10,'J',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(11,'K',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(12,'L',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(13,'M',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(14,'N',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(15,'O',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(16,'P',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(17,'Q',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(18,'R',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(19,'S',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(20,'T',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(21,'U',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(22,'V',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(23,'W',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(24,'X',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(25,'Y',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(26,'Z',NULL,'MANUAL','STANDARD',NULL,'0000-00-00 00:00:00',NOW()),(27,'AA',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(28,'BB',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(29,'CC',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(30,'DD',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(31,'EE',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(32,'FF',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(33,'GG',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(34,'HH',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(35,'II',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(36,'JJ',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(37,'KK',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(38,'LL',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(39,'MM',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(40,'NN',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(41,'OO',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(42,'PP',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(43,'QQ',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(44,'RR',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(45,'SS',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(46,'TT',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(47,'UU',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(48,'VV',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(49,'WW',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(50,'XX',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(51,'YY',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()),(52,'ZZ',NULL,'MANUAL','PREMIER',NULL,'0000-00-00 00:00:00',NOW()); /*!40000 ALTER TABLE `Codes` ENABLE KEYS */; - +-- +-- The User Accounts Needed to Test Account Locking +-- + +INSERT INTO `Users` (`usernum`, `userid`, `salt`, `auth`, `bonus`, `legacy`, `tls`, `plan`, `locked`, `advertising`, `domain`, `email`, `chat`, `timezone`, `size`, `quota`, `overquota`, `plan_expiration`, `lock_expiration`) VALUES (5,'lock_inactive','JDIjkrTqVJi1a4UQeJdxpak6Z23_mA1UXLeMBQ-0vT0OVztYpXL4UKscyF-CZzWbrHLNFAsBjWWPkZyXchNythFrpJ051tdtjapKCQ0lb_dLDTeU8OxMj_E5RcnVU9ewzslBwwXSgGr2DUB4EJ2ELqPwMpddJYDg1jnFTabXPIw','G1_5u-jdaY4V8R4rNPtCfXNT7oGRcXdy3Z5KgPgXkGDiscu-kMetqLX2_J2MUe3PmCY7Uklyz6b3GNzZhzXtzg',0,NULL,0,'STANDARD',1,1,NULL,1,1,0,0,134217728,0,DATE(NOW()),DATE_ADD(DATE(NOW()),INTERVAL 120 DAY)); +INSERT INTO `Users` (`usernum`, `userid`, `salt`, `auth`, `bonus`, `legacy`, `tls`, `plan`, `locked`, `advertising`, `domain`, `email`, `chat`, `timezone`, `size`, `quota`, `overquota`, `plan_expiration`, `lock_expiration`) VALUES (6,'lock_expired','MZ5-PVVxojRkV6HSnb-GOY5_hQbH-uH4M8COwrhNs7ozOtqThR8XOxzNLU7RnTGDoCjzzAmCcBvpz2gy3n3x9qSEpFpB60p33xEwPlJcuFLGeTj3976z79MDu_nGb50P4Y2DNqM0I9-UW-hKq45uvPvOJc2yAzChm4ut2EIlPQM','OI7fmRBNBwhGaM4e4vwTRBNEnXw6Amd2DShn7GzMkr34s7tGE46uGjzQq4JF4vSHGMtRDWcogDxu685MtGywbg',0,NULL,0,'STANDARD',2,1,NULL,1,1,0,0,134217728,0,DATE(NOW()),DATE_ADD(DATE(NOW()),INTERVAL 120 DAY)); +INSERT INTO `Users` (`usernum`, `userid`, `salt`, `auth`, `bonus`, `legacy`, `tls`, `plan`, `locked`, `advertising`, `domain`, `email`, `chat`, `timezone`, `size`, `quota`, `overquota`, `plan_expiration`, `lock_expiration`) VALUES (7,'lock_admin','Lw0ba4RDXRkamDBDFWgvRif_EQ7GYaBR7c0ALg12EkFW-MNDOHuAf3SVGIRqJpXLqEnhDEHtO1zpoA49oW46nDU9CwBZjPoPKKDOUKJ2ziGp6iGCTRaaK8xTcjqUGpKxELV59QMcJe7JglaKqANOSiKSc0Oyhd1jSFIUmeWQLfg','rORS460yz49n9KqgD1CvkCDXKXqbXBNKmm8OeQ3HknqGbeXHpEnvTP_wvgVM3kUxkl8jO0G4jiMRTCgWFemGKw',0,NULL,0,'STANDARD',3,1,NULL,1,1,0,0,134217728,0,DATE(NOW()),DATE_ADD(DATE(NOW()),INTERVAL 120 DAY)); +INSERT INTO `Users` (`usernum`, `userid`, `salt`, `auth`, `bonus`, `legacy`, `tls`, `plan`, `locked`, `advertising`, `domain`, `email`, `chat`, `timezone`, `size`, `quota`, `overquota`, `plan_expiration`, `lock_expiration`) VALUES (8,'lock_abuse','JQ9l3rf3V78HjBgTRbmLFGt0ez-uifQoDjUQEnTq02CaM3by3iwIJNd8VMks6J2c1R3DDpbYclUdLV7NviBw9u3bUMdVE1yThhYWuCIslcvNd5v7GXdIJFRretWpgsumpBCBHtjubpnaoHumlkWG-BXrcTafI60DEd9_YRfUoG0','oOh6Ti-oIr2aveFofBwoXYBBYWDcG4e1lzS44g43vBskmcoazItOVlwPjV9LCrraOqZhUN-R2T12W8lpnw0mEg',0,NULL,0,'PREMIER',4,1,NULL,1,1,0,0,134217728,0,DATE(NOW()),DATE_ADD(DATE(NOW()),INTERVAL 120 DAY)); +INSERT INTO `Users` (`usernum`, `userid`, `salt`, `auth`, `bonus`, `legacy`, `tls`, `plan`, `locked`, `advertising`, `domain`, `email`, `chat`, `timezone`, `size`, `quota`, `overquota`, `plan_expiration`, `lock_expiration`) VALUES (9,'lock_user','8z7c-S7Jh_dfWhEe66rQ9_9JjnhJZCHfwnRYTcTK2ix-Ma23Jy68wU87-xsuZnwjEd0KeA8wCmhnBbcuVnEZyxqi1AgMTi_wwXs1pfkEdSwwiUoaAWHeXiPR00_79g2pBvAaKzFdQDxYiTqrTwbndgmO9vXXEkB47Ef6o2_RVEQ','F86hxmgFnGDksS4JtQ_dwt2C3R6d6spmLMBVn3aTlD2dzeEP0LYQmaS6fuwVEF119j6W5jhoFmH1iaBZGbaDbw',0,NULL,0,'PREMIER',5,1,NULL,1,1,0,0,134217728,0,DATE(NOW()),DATE_ADD(DATE(NOW()),INTERVAL 120 DAY)); + +INSERT INTO `Dispatch` (`usernum`, `secure`, `forwarded`, `rollout`, `bounces`, `greylist`, `greytime`, `rbl`, `rblaction`, `spf`, `spfaction`, `dkim`, `dkimaction`, `spam`, `spamaction`, `spamfolder`, `virus`, `virusaction`, `phish`, `phishaction`, `filters`, `autoreply`, `inbox`, `send_size_limit`, `recv_size_limit`, `daily_send_limit`, `daily_recv_limit`, `daily_recv_limit_ip`, `class`) VALUES (5,1,'',0,1,0,1,0,'REJECT',0,'REJECT',0,'MARK',0,'MARK',5,1,'DELETE',1,'DELETE',0,NULL,5,33554432,33554432,256,1024,1024,0); +INSERT INTO `Dispatch` (`usernum`, `secure`, `forwarded`, `rollout`, `bounces`, `greylist`, `greytime`, `rbl`, `rblaction`, `spf`, `spfaction`, `dkim`, `dkimaction`, `spam`, `spamaction`, `spamfolder`, `virus`, `virusaction`, `phish`, `phishaction`, `filters`, `autoreply`, `inbox`, `send_size_limit`, `recv_size_limit`, `daily_send_limit`, `daily_recv_limit`, `daily_recv_limit_ip`, `class`) VALUES (6,1,'',0,1,0,1,0,'REJECT',0,'REJECT',0,'MARK',0,'MARK',6,1,'DELETE',1,'DELETE',0,NULL,6,33554432,33554432,256,1024,1024,0); +INSERT INTO `Dispatch` (`usernum`, `secure`, `forwarded`, `rollout`, `bounces`, `greylist`, `greytime`, `rbl`, `rblaction`, `spf`, `spfaction`, `dkim`, `dkimaction`, `spam`, `spamaction`, `spamfolder`, `virus`, `virusaction`, `phish`, `phishaction`, `filters`, `autoreply`, `inbox`, `send_size_limit`, `recv_size_limit`, `daily_send_limit`, `daily_recv_limit`, `daily_recv_limit_ip`, `class`) VALUES (7,1,'',0,1,0,1,0,'REJECT',0,'REJECT',0,'MARK',0,'MARK',7,1,'DELETE',1,'DELETE',0,NULL,7,33554432,33554432,256,1024,1024,0); +INSERT INTO `Dispatch` (`usernum`, `secure`, `forwarded`, `rollout`, `bounces`, `greylist`, `greytime`, `rbl`, `rblaction`, `spf`, `spfaction`, `dkim`, `dkimaction`, `spam`, `spamaction`, `spamfolder`, `virus`, `virusaction`, `phish`, `phishaction`, `filters`, `autoreply`, `inbox`, `send_size_limit`, `recv_size_limit`, `daily_send_limit`, `daily_recv_limit`, `daily_recv_limit_ip`, `class`) VALUES (8,1,'',0,1,0,1,0,'REJECT',0,'REJECT',0,'MARK',0,'MARK',8,1,'DELETE',1,'DELETE',0,NULL,8,33554432,33554432,256,1024,1024,0); +INSERT INTO `Dispatch` (`usernum`, `secure`, `forwarded`, `rollout`, `bounces`, `greylist`, `greytime`, `rbl`, `rblaction`, `spf`, `spfaction`, `dkim`, `dkimaction`, `spam`, `spamaction`, `spamfolder`, `virus`, `virusaction`, `phish`, `phishaction`, `filters`, `autoreply`, `inbox`, `send_size_limit`, `recv_size_limit`, `daily_send_limit`, `daily_recv_limit`, `daily_recv_limit_ip`, `class`) VALUES (9,1,'',0,1,0,1,0,'REJECT',0,'REJECT',0,'MARK',0,'MARK',9,1,'DELETE',1,'DELETE',0,NULL,9,33554432,33554432,256,1024,1024,0); + +INSERT INTO `Folders` (`foldernum`, `usernum`, `foldername`, `order`, `type`, `parent`) VALUES (5,5,'Inbox',0,1,0); +INSERT INTO `Folders` (`foldernum`, `usernum`, `foldername`, `order`, `type`, `parent`) VALUES (6,6,'Inbox',0,1,0); +INSERT INTO `Folders` (`foldernum`, `usernum`, `foldername`, `order`, `type`, `parent`) VALUES (7,7,'Inbox',0,1,0); +INSERT INTO `Folders` (`foldernum`, `usernum`, `foldername`, `order`, `type`, `parent`) VALUES (8,8,'Inbox',0,1,0); +INSERT INTO `Folders` (`foldernum`, `usernum`, `foldername`, `order`, `type`, `parent`) VALUES (9,9,'Inbox',0,1,0); + +INSERT INTO `Keys` (`usernum`, `signet`, `key`) VALUES (5,'Bv0AAMcBICcoIIlYlOHp6VdaGEvEXN-UqJAT2cb-8WowPihsy0DvAiEC8jqMxQunZdsiUawkOYdtM1A-N9JM5xswQqqug7Wp6LUFttNrqGHydY6lmPE35KzX4RNKtop5KoBcP3zg-01Disjomea6zKaY-tnwULXCV8Uj3y1hmw_6Rt_EHgNiTQvDDAb6z1w5Il-FBjF_nPMO-os8zbIgmniobKF1kkWBn8LRYYhVGR0FkIJYXA6fPEDIp9PdXTOIly72D4RJSptzwWYO','B7gAAABwzM_6qBfFNEGEPY5mCa3s25BqpP05vk7UZH1h8i28aBu0zRyQtGbMi4kChFbO-5uGtwUJwnYuYCqi7ACSmgyZFrrQj557wI-wm3heHVxdOCl6B0XBZst_kqpDVrZasAn0fn2W4ZXTXnqmv9on3eD3KA'); +INSERT INTO `Keys` (`usernum`, `signet`, `key`) VALUES (6,'Bv0AAMcBIGjq9I1m8mw-fbxNzdUHaQqMfAr-zq0_gSs1Hl5XuFD7AiECLoiw3N4j-rlqg1EptpTjUKMu8rjKoWJWv_Zz04U2AxQFCY9T25b0pPCwgYYqyal_-TTVHSgCWY18xmTaqrk9o7C07lZxKnUWl0_onELSDVoaFloJmlrcRJeujK-2qiGiBgaSHvbXZtf6fePTQHwc2_D1KgcYZL1Nui4tX5I6l9rZkLxBVbVKfaEF4H7E1usRD504hvDyXSNbMEXKq3mUWjAI','B7gAAABww6rMYLCkmrT9mmNZavsy4ekH1CchJMA4D2LDHeJf1zsVqXfBS-T8Qlu4dcq2jBT3ZP1443DBWnNNVhlMjOO-hSfWi7KCCdNqydqocdqTWVcp_XMLsn6vdz_OCkwzckK73-5E3cW_t8zq5nR9Cnx3og'); +INSERT INTO `Keys` (`usernum`, `signet`, `key`) VALUES (7,'Bv0AAMcBIHv8SGmB2PaDyXVX49wsfnn9p2Tkf-jFfm6ykKSaFY0zAiEDc_Q1aKqcZKQf5EPC0AJP6tVFvgfKzmNqNVLcarTjV_sFMhOwQ1gyggO-Zk5wi7Ay4FmJSETcMkr0aR1q_NskOocQn5XVoLb_I_0AEVq2BdMNx6K8WilwKzbNJ-POLmC9Dgbr7kq8mvObKd234DSO-8NNA8ZWAj5hqeIQdDifhuYXXuLA0XRmQJg9vvd6L-ldcKEAb8GsGZTkfbCziByHwyUC','B7gAAABwnFuBNqYlG5mN0p10Q3CAhvv8rwldAT8lRGiCxr3CmGdnJ-ZSL0VKvSD_NH4r-QGsTR1mDTAg8dEPVUFEfBE6mn1jekUwFQwYPmV4PM6IBEVZds6z8H-FMu_pHz4jlBnrr9vx6xVn9k72pPtW0j_y_w'); +INSERT INTO `Keys` (`usernum`, `signet`, `key`) VALUES (8,'Bv0AAMcBIGvSUm1_jMfKTyz5AzpzP8YY5MHjDiC0iDhigsijoMxnAiECdpYzZi2cvo_KVsQmIfeBXcaJPPH3Qo1b3LyV0qL_d7wFKN0MYCRbJ6GdSJnfn40z-UdLhVHCQmZut9SrQ4F6A45QRy8m6_-eCnZBQqydC_MgApHYffaxieGxTS0q4HGUBgaEquhsypHqPTb6WP4-i5KtleTQa4vdgL5EwhLgO5XyvnCqItvMJNDKax5M1aWzcEuDyVJiGhfO1_W7ZCFPFqYD','B7gAAABwS-LvSjwjeyCYsy_T0RFAHoi-Rst38JDl3kf4tZyXE6RBD64l2nucsVz5cN2V6nZt_2e0P6lSHmR1Eh2mgPjM1Zcl7eskWfew98cLTfhCLcTs6rdXnIM9MTqHXtaUVz95o_7l7ZBPSsg_6apA7XvOQw'); +INSERT INTO `Keys` (`usernum`, `signet`, `key`) VALUES (9,'Bv0AAMcBIGyoHRHDS_ExrEOvd41pZVbqjTL9r5qvmIi--bzhFqmMAiECQh7-Y3SeSa5Yw0ncNnEw4bOcH8y9EawwmbhczHXUotwFkwdlFVYjRB0EIBHCPjxvf5OmQX_p1xhCr3s0l8GChg0KlJcMjZUZfVWzKRrK2RA6f7bMQ5NtEUCkyxfDY6VHBAa6tMsBWAqCzI9NANVBwHdEbjWAUjd_yYaPtRm51ROhsLwljHWJBPn1tlsKAOKqd_c85pdInIePfBeZXITjLGYI','B7gAAABw_7LafljuUhrjp8i5xWiD6MBX7HkAhC_ZzyXuFxpDEmLhl3ftyXjDtX4OnzKBoQI-MZ3OAKWSB2Cge-F_C794Go-cZDO31aWtQH_ZAZ0OU_wuVA3Jc3RIyH33dxqIfBVTdQ9qgls3IFRXxe6yrK-pnw'); + +INSERT INTO `Log` (`usernum`, `lastpop`, `lastmap`, `lastweb`, `lastchat`, `lastsent`, `lastreceived`, `popsessions`, `mapsessions`, `websessions`, `chatsessions`, `totalsent`, `totalreceived`, `totalbounces`, `created`, `created_ip`) VALUES (5,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2018-08-06 16:59:46','127.0.0.1'); +INSERT INTO `Log` (`usernum`, `lastpop`, `lastmap`, `lastweb`, `lastchat`, `lastsent`, `lastreceived`, `popsessions`, `mapsessions`, `websessions`, `chatsessions`, `totalsent`, `totalreceived`, `totalbounces`, `created`, `created_ip`) VALUES (6,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2018-08-06 16:59:46','127.0.0.1'); +INSERT INTO `Log` (`usernum`, `lastpop`, `lastmap`, `lastweb`, `lastchat`, `lastsent`, `lastreceived`, `popsessions`, `mapsessions`, `websessions`, `chatsessions`, `totalsent`, `totalreceived`, `totalbounces`, `created`, `created_ip`) VALUES (7,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2018-08-06 16:59:46','127.0.0.1'); +INSERT INTO `Log` (`usernum`, `lastpop`, `lastmap`, `lastweb`, `lastchat`, `lastsent`, `lastreceived`, `popsessions`, `mapsessions`, `websessions`, `chatsessions`, `totalsent`, `totalreceived`, `totalbounces`, `created`, `created_ip`) VALUES (8,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2018-08-06 16:59:46','127.0.0.1'); +INSERT INTO `Log` (`usernum`, `lastpop`, `lastmap`, `lastweb`, `lastchat`, `lastsent`, `lastreceived`, `popsessions`, `mapsessions`, `websessions`, `chatsessions`, `totalsent`, `totalreceived`, `totalbounces`, `created`, `created_ip`) VALUES (9,'0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00',0,0,0,0,0,0,0,'2018-08-06 16:59:46','127.0.0.1'); + +INSERT INTO `Mailboxes` (`mailboxnum`, `address`, `usernum`) VALUES (11,'lock_inactive@lavabit.com',5); +INSERT INTO `Mailboxes` (`mailboxnum`, `address`, `usernum`) VALUES (12,'lock_expired@lavabit.com',6); +INSERT INTO `Mailboxes` (`mailboxnum`, `address`, `usernum`) VALUES (13,'lock_admin@lavabit.com',7); +INSERT INTO `Mailboxes` (`mailboxnum`, `address`, `usernum`) VALUES (14,'lock_abuse@lavabit.com',8); +INSERT INTO `Mailboxes` (`mailboxnum`, `address`, `usernum`) VALUES (15,'lock_user@lavabit.com',9); + +INSERT INTO `Profile` (`usernum`, `name`, `address_one`, `address_two`, `city`, `state`, `zip`, `country`, `profile`, `phone`, `mobile`, `fax`, `gender`, `language`, `birthdate`, `industry`, `website`, `accessible`) VALUES (5,'','','','','',0,'',NULL,'','','',NULL,'','0000-00-00','','',0); +INSERT INTO `Profile` (`usernum`, `name`, `address_one`, `address_two`, `city`, `state`, `zip`, `country`, `profile`, `phone`, `mobile`, `fax`, `gender`, `language`, `birthdate`, `industry`, `website`, `accessible`) VALUES (6,'','','','','',0,'',NULL,'','','',NULL,'','0000-00-00','','',0); +INSERT INTO `Profile` (`usernum`, `name`, `address_one`, `address_two`, `city`, `state`, `zip`, `country`, `profile`, `phone`, `mobile`, `fax`, `gender`, `language`, `birthdate`, `industry`, `website`, `accessible`) VALUES (7,'','','','','',0,'',NULL,'','','',NULL,'','0000-00-00','','',0); +INSERT INTO `Profile` (`usernum`, `name`, `address_one`, `address_two`, `city`, `state`, `zip`, `country`, `profile`, `phone`, `mobile`, `fax`, `gender`, `language`, `birthdate`, `industry`, `website`, `accessible`) VALUES (8,'','','','','',0,'',NULL,'','','',NULL,'','0000-00-00','','',0); +INSERT INTO `Profile` (`usernum`, `name`, `address_one`, `address_two`, `city`, `state`, `zip`, `country`, `profile`, `phone`, `mobile`, `fax`, `gender`, `language`, `birthdate`, `industry`, `website`, `accessible`) VALUES (9,'','','','','',0,'',NULL,'','','',NULL,'','0000-00-00','','',0); + +INSERT INTO `Realms` (`usernum`, `serial`, `label`, `shard`, `rotated`) VALUES (5,0,'mail','LWreVSWaVRKV4Xdw9GlsqlcPFbxythMTGtzO5xCoQWlaIjH5vLjE9rXTuOhaLBVsxOxbvtQNeUXILBZm0JfJKQ',1); +INSERT INTO `Realms` (`usernum`, `serial`, `label`, `shard`, `rotated`) VALUES (6,0,'mail','WBHWPFx2khiY7uChvtpWIeXfHXJXSuTBsdyHjUPmusy5IvmOCKJ2BPSQrADXhFjhYnmOdr340ZNRRQXfurtZrQ',1); +INSERT INTO `Realms` (`usernum`, `serial`, `label`, `shard`, `rotated`) VALUES (7,0,'mail','bOdEnn0D6YpNNnFFA-lcvCFnJJqz20VDRc7TJfNj7RahfaXonIb0lQd8ZXlJQvQyx-P1HpmWUO19ofhdx1ENTw',1); +INSERT INTO `Realms` (`usernum`, `serial`, `label`, `shard`, `rotated`) VALUES (8,0,'mail','mL7galUcnyDDTHMNHJuLxuqINhqzASqz9PIeKbSPGwLV3rCbzzfVsvbX_iXPkvhv4RforM_QgswhQ7u27ZA6wg',1); +INSERT INTO `Realms` (`usernum`, `serial`, `label`, `shard`, `rotated`) VALUES (9,0,'mail','vRVBZSMt4iw3_7bhhs2V51roTBePg6nnt7oxdha1cOzPaRXP2xcua12Fr7XQ8OXDQghI1gvbheFTlpz4TTF6Ww',1); diff --git a/res/sql/Hostname.sql b/res/sql/Hostname.sql index 20b36e39..99c4c31b 100644 --- a/res/sql/Hostname.sql +++ b/res/sql/Hostname.sql @@ -1 +1 @@ -UPDATE Hosts SET hostname = 'dark.local' WHERE hostnum = 1; +INSERT INTO `Hosts` (`hostnum`, `hostname`, `timestamp`) VALUES (1,'dark.local',NOW()); diff --git a/res/sql/Version.sql b/res/sql/Version.sql new file mode 100644 index 00000000..0df298f2 --- /dev/null +++ b/res/sql/Version.sql @@ -0,0 +1 @@ +INSERT INTO `Host_Config` (`confignum`, `hostnum`, `application`, `name`, `value`, `timestamp`) VALUES (1,NULL,'magmad','magma.version','6',NOW()); diff --git a/src/engine/config/global/global.c b/src/engine/config/global/global.c index c2cbf255..8603a3d0 100644 --- a/src/engine/config/global/global.c +++ b/src/engine/config/global/global.c @@ -897,8 +897,9 @@ bool_t config_load_database_settings(void) { cache_config(name, value); } - // Otherwise if we still haven't matched a value, report an error. - else { + // Otherwise if we still haven't matched a value, and it's not one of the valid keys that aren't stored in the + // global configuration, we print the error and exit. + else if (st_cmp_ci_eq(name, CONSTANT("magma.version"))) { log_critical("%.*s is not a valid setting.", st_length_int(name), st_char_get(name)); res_table_free(database_pairs); return false; |