diff options
| -rw-r--r-- | sql/base/auth_database.sql | 3 | ||||
| -rw-r--r-- | sql/updates/auth/master/2017_10_13_00_auth.sql | 7 | ||||
| -rw-r--r-- | src/server/game/Accounts/RBAC.h | 2 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.cpp | 2 |
4 files changed, 12 insertions, 2 deletions
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index cde9da4ba19..1f80a8648b2 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -821,6 +821,7 @@ INSERT INTO `rbac_linked_permissions` VALUES (195,24), (195,49), (195,199), +(196,7), (196,10), (196,200), (196,201), @@ -1437,6 +1438,7 @@ INSERT INTO `rbac_permissions` VALUES (4,'Join Random Battleground'), (5,'Join Arenas'), (6,'Join Dungeon Finder'), +(7,'Skip idle connection check'), (10,'Use character templates'), (11,'Log GM trades'), (12,'Skip character creation demon hunter min level check'), @@ -2322,6 +2324,7 @@ INSERT INTO `updates` VALUES ('2017_08_04_00_auth.sql','2E994A704C64FECE3CE0883ED0CAC5E5A0E3A36C','ARCHIVED','2017-08-04 23:46:32',0), ('2017_08_13_00_auth_2016_09_22_00_auth.sql','70047954E3556BFA430ADD5680EF8797F74A4B9E','ARCHIVED','2017-08-13 12:00:00',0), ('2017_09_22_00_auth.sql','9313CCE80A18212E6F0C78D83316DE8582AE8084','ARCHIVED','2017-09-22 18:05:17',0), +('2017_10_13_00_auth.sql','87674E0D166AC60E3725B445714427892E42C6FE','ARCHIVED','2017-10-13 00:00:00',0), ('2017_11_11_01_auth.sql','0D6EDB6B2FC8B9FBDF11ECD79B4B8E943328B6A9','ARCHIVED','2017-11-11 18:49:45',0), ('2017_12_30_00_auth.sql','F360E9555AC68E28834E3FF807E4E37A090EF363','ARCHIVED','2017-12-30 00:23:32',0), ('2017_12_30_01_auth.sql','1E11C78BA6D1D8E8CED7423DF92D1D197D6061EE','ARCHIVED','2017-12-30 23:00:00',0), diff --git a/sql/updates/auth/master/2017_10_13_00_auth.sql b/sql/updates/auth/master/2017_10_13_00_auth.sql new file mode 100644 index 00000000000..145714e9564 --- /dev/null +++ b/sql/updates/auth/master/2017_10_13_00_auth.sql @@ -0,0 +1,7 @@ +DELETE FROM `rbac_permissions` WHERE `id`=7; +INSERT INTO `rbac_permissions` (`id`,`name`) VALUES +(7, 'Skip idle connection check'); + +DELETE FROM `rbac_linked_permissions` WHERE `linkedId`=7; +INSERT INTO `rbac_linked_permissions` (`id`,`linkedId`) VALUES +(196,7); diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index c486dd4846d..5fd86fdf04d 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -57,7 +57,7 @@ enum RBACPermissions RBAC_PERM_JOIN_RANDOM_BG = 4, RBAC_PERM_JOIN_ARENAS = 5, RBAC_PERM_JOIN_DUNGEON_FINDER = 6, - // 7 - reuse + RBAC_PERM_IGNORE_IDLE_CONNECTION = 7, // 8 - reuse // 9 - reuse RBAC_PERM_USE_CHARACTER_TEMPLATES = 10, diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index a9bb542d0ca..93f31f53cd9 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -329,7 +329,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater) ///- Before we process anything: /// If necessary, kick the player because the client didn't send anything for too long /// (or they've been idling in character select) - if (IsConnectionIdle()) + if (IsConnectionIdle() && !HasPermission(rbac::RBAC_PERM_IGNORE_IDLE_CONNECTION)) m_Socket[CONNECTION_TYPE_REALM]->CloseSocket(); ///- Retrieve packets from the receive queue and call the appropriate handlers |
