Commit Graph
367 Commits
Author SHA1 Message Date
Dehravor 24ae6a6802 Core/Misc: Remove obsolete C++11 backward compatibility macros
OVERRIDE, FINAL, DELETE_MEMBER
2014-04-29 16:35:11 +02:00
joschiwald 8b8aaa06fc Core/ChatLog: handle chatlog options with extended logging system 2014-04-08 22:52:05 +02:00
Gacko 1b2e4d8110 Remove whitespaces from previous commit 2014-02-05 17:49:04 +01:00
Gacko d0c9970be0 Authserver / Worldserver: Fix warnings about unused variables 2014-02-05 17:33:28 +01:00
Discover- f29463cf66 Core/Achievements: Implement criteria type ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN and criteria requirements ACHIEVEMENT_CRITERIA_REQUIRE_NTH_BIRTHDAY and ACHIEVEMENT_CRITERIA_REQUIRE_KNOWN_TITLE. Fixes anniversary achievements.
By @Schmoozerd
2014-02-05 09:34:12 +01:00
Zabustak 101cad1f28 Show Kick, Mute and Ban in world 2014-01-17 12:23:36 +01:00
zengwf 23acf75d3b Core/Movement: Add LOS check for fleeingmovement target point.
Prevents fleeing or feared units from going to upper floor ignoring walls/ceilings with mmaps on(and usually get stucked).

Current implementation just randomly selects a distance and angle against the frighting unit, when in narrow circumstance such as underground caves, such targeting point would be at another floor.

Closes #11300
Ref #9475 (needs fixed confirmation)
2014-01-12 00:33:33 +00:00
mthsena 0b5728f8a7 Core&Conf: Small cosmetic fixes
Closes #11392

Signed-off-by: DDuarte <[email protected]>
2014-01-12 00:07:29 +00:00
Vincent_Michael 20004050bc Update copyright note for 2014.
Happy new year.
2014-01-01 00:07:53 +01:00
jackpoz 2a7f03039d Core/Misc: Fix warnings
Fix warnings appearing with -Wstrict-aliasing flag.
2013-12-28 17:24:43 +01:00
jackpoz 04cc51a6cf Core/Misc: Fix some static analysis issues
Fix some static analysis issues, mostly false positive about fields not initialized in the constructor. It's good practice anyway to always initialize them.
2013-12-01 16:19:30 +01:00
Vincent_Michael 6e13263c7a Core/AI: Good bye, Good bye my beloved EventAI system :( 2013-12-01 01:27:08 +01:00
Spp 94e2b9332a Core/Logging: Remove LOG_FILTER_XXX defines with it's value (remember logger names are case-sensitive) 2013-11-08 10:50:51 +01:00
Spp 8aa9745c4c Core/Logging: Extend logging system to allow inheritance of loggers
- Changed default loggers and appenders
- '.' determines the relation between loggers ("type.subtype" inherits "type" logger setting if logger "type.subtype" is not defined)
- When core logs a message it search for the correct logger (root is the default one)
  ie: a message logged with "type.subtype"
  * Core will try to find a logger with name "type.subtype", if its not found then will search for "type", again if its not found it will return the default one "root"
2013-11-07 16:34:44 +01:00
Spp 895a23df11 Core/RBAC: Add default groups to accounts based on their security level.
- Removed config option RBAC.DefaultGroups

Use the table rbac_security_level_groups to configure the groups to be added to the account at load time.

Note: Those groups are only used at run time, never saved to DB
2013-09-27 13:35:45 +02:00
Aokromes 783e28e874 Core/Groups: Allow to configure the way in which instance reset message is sent, to the whole party (not blizzlike) or not.
Signed-off-by: Machiavelli <[email protected]>
2013-09-12 10:19:05 +01:00
Aokromes 80516db48c Core/Battlegrounds: Allow random BG winner/loser rewards to be configurable
Signed-off-by: Machiavelli <[email protected]>
2013-09-07 13:32:04 +01:00
jackpoz 5eff0b62ae Core/Command Line: Fix memory leak
Fix memory leak in command line handler on platforms other than Windows. The result of readline() is supposed to be freed with free() as described at http://cnswww.cns.cwru.edu/php/chet/readline/readline.html#SEC24 .

Valgrind log:
 11 bytes in 2 blocks are definitely lost in loss record 6 of 61
  at 0x4C28BED: malloc (vg_replace_malloc.c:263)
  by 0x4E5F6E8: xmalloc (in /lib/x86_64-linux-gnu/libreadline.so.6.2)
  by 0x4E4571A: readline_internal_teardown (in /lib/x86_64-linux-gnu/libreadline.so.6.2)
  by 0x4E46541: readline (in /lib/x86_64-linux-gnu/libreadline.so.6.2)
  by 0x1005284: CliRunnable::run() (CliRunnable.cpp:161)
  by 0x163A3DA: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
  by 0x518C555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
  by 0x61D7B4F: start_thread (pthread_create.c:304)
  by 0x6C66A7C: clone (clone.S:112)
2013-09-04 21:55:10 +02:00
Nay 9b92bc9409 Core: Fix compile with PCH enabled and warnings
Few corrections to worldserver.conf
2013-09-02 16:18:55 +01:00
Ascathor 722a6c143a Core/Account: Make account password change security variable and various changes
Settings within worldserver.conf:

Three settings for secruity level:
0 - None - No change to current system
1 - Email - Always requires the email entered on registration for confirming.
2 - RBAC - Groups applied with the RBAC role always require the email entered on registration for confirming.

RBAC default to every group. Changed some logs to make it more clear what is going on at all.

Emails may now no longer exceed 64 chars. Current email is used as regmail.

On account creation, two emails are saved. Registration email and normal email. Normal email is relevant afterwards. Registration email can be changed by console ONLY.

Includes new commands and changes to existing ones:
.account fulfills several new functions:
* Still prints GM Level.
* If account has permission, it displays the current email. This is not defaulted to any group.
* Security level is displayed. Also displays if user has RBAC perm if RBAC security mode is selected
.account email allows user to change email with sufficient confirmation
.account set sec email allows higher sec with higher sec than account to change the normal email. Registrationemail remains untouched here.
.account set sec regmail allows console to change registration email.
.pinfo now displays the registration and normal mail.

Also fixes .learn all crafts.
Closes #10558
2013-09-01 21:21:16 +02:00
jackpoz e1e1067d17 Core/Thread: Fix race condition in FreezeDetectorRunnable
Fix race condition by replacing a static volatile uint32 with proper atomic thread-safe ACE_Atomic_Op<ACE_Thread_Mutex, uint32>, incremented in WorldRunnable::run() at each world loop and read in FreezeDetectorRunnable::run().

Helgrind log:
 Possible data race during read of size 4 at 0x2400D54 by thread #12
 Locks held: none
    at 0x100FEA6: FreezeDetectorRunnable::run() (Master.cpp:106)
    by 0x1637892: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
    by 0x518F555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
    by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
    by 0x61DAB4F: start_thread (pthread_create.c:304)
    by 0x6C69A7C: clone (clone.S:112)

 This conflicts with a previous write of size 4 by thread #9
 Locks held: none
    at 0x100C23E: WorldRunnable::run() (WorldRunnable.cpp:55)
    by 0x1637892: ACE_Based::Thread::ThreadTask(void*) (Threading.cpp:186)
    by 0x518F555: ACE_OS_Thread_Adapter::invoke() (OS_Thread_Adapter.cpp:103)
    by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
    by 0x61DAB4F: start_thread (pthread_create.c:304)
    by 0x6C69A7C: clone (clone.S:112)
2013-09-01 18:49:49 +02:00
Machiavelli 59b4c34924 Core/NetworkIO: Generic packet spam solution
Currently regulates the usage of CMSG_CHAR_ENUM only, but can be easily
extended to detect inappropriate network behaviour by using
AntiDOS.AllowOpcode in WorldSession's handlers.
2013-08-29 16:46:28 +01:00
QAston 19343ddd55 Fix crashed caused by using openssl from multiple threads simultanously.
Note that this doesn't make BigNumber class threadsafe - it never was that way.
2013-08-18 17:44:04 +02:00
Nay a7d876e8b5 Config: Change ProcessPriority default to 0 (Normal)
On Linux, superuser (root) is required to set a process high priority and we shouldn't force that.
(It's already set to 0 (Normal) in worldserver\Master.cpp and authserver\Main.cpp)
2013-07-30 15:34:38 +01:00
Nay 1bb3c4a2b4 Misc: Fix warnings and build
Closes #10396
2013-07-29 14:24:53 +01:00
Nay 3330239a02 Servers: Fix typo 2013-07-28 20:12:06 +01:00
Nay e3f7be12ef Servers: Enable UseProcessors and ProcessPriority settings to be used on Linux 2013-07-28 18:58:12 +01:00
Nay f71d894a21 Servers: Fix some code style issues in world and authserver 2013-07-28 16:59:07 +01:00
Shauren 779a59e7e2 Core/Config: Refactored ConfigMgr
* Loading initial configuration files is now separate from loading any additional custom configs
2013-07-15 17:31:44 +02:00
Shauren 3c91c04758 Buildsystem/MSVC
* Fixed ACE PCH
* Removed WheatyExceptionReport sources from shared project
2013-06-15 14:07:12 +02:00
corbi e185713464 Stats Limits 2013-06-05 10:34:05 +03:00
Spp d3c2af0f66 Core/Build: Fix compile under Ubuntu 13.04 and openSUSE 12.3 (and probably other new distros)
Closes #9832
Closes #9740
2013-05-21 08:36:52 +02:00
Shauren 8be181c7e6 Core/Misc: Fixed a bunch of issues found by static analysis 2013-05-17 20:39:53 +02:00
Shauren 86d846e627 Core: Fixed windows compile 2013-05-13 18:10:20 +02:00
Spp d1677b2db0 Core/Logging: Performance-related tweaks to logging system
All sLog->out* functions (except outCommand atm) are replaced with TC_LOG_* macros.
    Memleak fix
2013-05-13 15:07:36 +02:00
Ascathor 1c2d617c18 Core/Player: CharDelete.Heroic.MinLevel as seperated unlink requirement for Heroic classes
Also added documentation for GetCharacterNameData
2013-04-28 00:04:55 +02:00
click 7afe928f2a Core/Buildsystem: Actually follow CONF_DIR path-directive when installing configuration-files on UNIX
Fixes issue #9649
2013-04-14 14:35:45 +02:00
Spp 1a6a23ec96 Core/Misc: Minor optimizations (+code changes to reduce differences with 4.3.4 branch)
Core/Logging: Create new logger type "Cheat". Will be used to log all cheat attempts
2013-03-25 13:26:48 +01:00
Nay 41c7f35a31 Merge pull request #9385 from thomas007788/Doxygen
First step of comment style refactoring to doxygen-style.
2013-03-08 16:25:05 -08:00
Nay c7463c5f6c Buildsystem: Add support for compiling with MinGW on Windows
Tested with:
- Windows 8 x64
- MySQL 5.5.30 win32
- OpenSSL 1.0.1c (32 bits)
- No PCH
- MinGW with GCC 4.7.0

TODO:
- Fix compile/link with PCH enabled
- Fix compile with WheatyExceptonionReport enabled (ignored for now)
- Fix compile of .rc files (ignored for now)
- Test with more platforms
2013-03-09 00:12:50 +00:00
Nefarion 49fd11ab5a First step of comment style refactoring to doxygen-style. 2013-03-08 21:55:37 +01:00
Spp 377cfdb560 Core/RBAC: Fix multiple permissions and remove multiple config options that are currently implementes by RBAC
- Remove config options: CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT, CONFIG_ALLOW_TWO_SIDE_INTERACTION_MAIL, CONFIG_GM_LOG_TRADE, CONFIG_ALLOW_TWO_SIDE_ACCOUNTS, CONFIG_ALLOW_TWO_SIDE_WHO_LIST, CONFIG_ALLOW_GM_FRIEND, CONFIG_ALLOW_TWO_SIDE_ADD_FRIEND, CONFIG_SILENTLY_GM_JOIN_TO_CHANNEL
- Fix RBAC_PERM_SKIP_CHECK_CHAT_SPAM (Was checking spam for those that had the permission)
- Only check RBAC_PERM_TWO_SIDE_INTERACTION_CHAT for sender of whispers (Restores GM being able to whisper players)
- Only check RBAC_PERM_TWO_SIDE_INTERACTION_MAIL for sender
- Fix .ticket assign <Player>, with last RBAC change it was changed by mistake from Player to Account
2013-03-08 13:15:25 +01:00
Shauren 6be5bc71eb Core/GameObjects
* Removed long deprecated code for mining nodes (multiple uses, artifact of TBC)
* Made fishing pools generate use count only on spawn (and respawn) instead of randomizing use count on every fishing attempt - prevents early despawning in some cases
2013-03-02 23:59:42 +01:00
Spp 480c6cf4dd Core/RBAC: Add .reload rbac command and prevent possible crash if rbac_permissions has wrong data 2013-02-27 03:30:53 +01:00
Spp 15343d9bb0 Core/RBAC: Remove unnecessary header includes from other header files 2013-02-25 15:48:17 +01:00
Spp 4fc7fcae33 Core/RBAC: Add config option to set comma separated list of groups to add by default
- Allows to reduce the rows in rbac_account_groups
2013-02-18 14:49:59 +01:00
Nay 87d4e8c067 Core/Config: Change CONFIG_EVENT_ANNOUNCE from int to bool
Also correct the description of BeepAtStart, it works in Windows as well
2013-02-18 12:20:00 +00:00
Machiavelli 203cf7cbf0 Core/RA: Addition to previous crashfix
To make sure it also works for sessions that use more than 1 command
before closing.
2013-02-14 13:30:51 +01:00
Machiavelli b4be224004 Core/RA: Fix a possible crash
Caused when RASocket::handle_close (event-driven) would delete the underlying object before RASocket::commandFinished callback was executed for that object. Dereferencing freed pointers is bad.
2013-02-14 11:57:43 +01:00
Nay 42e660e2a2 Core/Sockets: Always try to send MSG_NOSIGNAL in peer().send()
Fixes RASocket::authenticate crash

"MSG_NOSIGNAL:
If you send() to a remote host which is no longer recv()ing, you'll typically get the signal SIGPIPE. Adding this flag prevents that signal from being raised."

Closes #5040
Thanks to @derex for the hint
2013-02-11 02:59:37 +00:00