Michael Cook (mackal) c6d5864aa9 Port SpawnGroup stuff to unique_ptr to fix leak
This was leaking on #repop, unsure of other cases, smart pointers should
cover us though.

Direct leak of 3600 byte(s) in 18 object(s) allocated from:
    #0 0x7f2b3dbe0d30 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0xead30)
    #1 0x5645dc7c9dff in ZoneDatabase::LoadSpawnGroups(char const*, unsigned short, SpawnGroupList*) ../zone/spawngroup.cpp:241
    #2 0x5645dc9db3f5 in Zone::Depop(bool) ../zone/zone.cpp:1746
    #3 0x5645dca1ba6b in Zone::Repop(unsigned int) ../zone/zone.cpp:1777
    #4 0x5645db4624b7 in command_repop(Client*, Seperator const*) ../zone/command.cpp:5683

Indirect leak of 6552 byte(s) in 273 object(s) allocated from:
    #0 0x7f26f2ff8d30 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0xead30)
    #1 0x558d00490bc6 in __gnu_cxx::new_allocator<std::_List_node<SpawnEntry*> >::allocate(unsigned long, void const*) /usr/include/c++/8/ext/new_allocator.h:111
    #2 0x558d00490bc6 in std::allocator_traits<std::allocator<std::_List_node<SpawnEntry*> > >::allocate(std::allocator<std::_List_node<SpawnEntry*> >&, unsigned long) /usr/include/c++/8/bits/alloc_traits.h:436
    #3 0x558d00490bc6 in std::__cxx11::_List_base<SpawnEntry*, std::allocator<SpawnEntry*> >::_M_get_node() /usr/include/c++/8/bits/stl_list.h:450
    #4 0x558d00490bc6 in std::_List_node<SpawnEntry*>* std::__cxx11::list<SpawnEntry*, std::allocator<SpawnEntry*> >::_M_create_node<SpawnEntry* const&>(SpawnEntry* const&) /usr/include/c++/8/bits/stl_list.h:642
    #5 0x558d00490bc6 in void std::__cxx11::list<SpawnEntry*, std::allocator<SpawnEntry*> >::_M_insert<SpawnEntry* const&>(std::_List_iterator<SpawnEntry*>, SpawnEntry* const&) /usr/include/c++/8/bits/stl_list.h:1903
    #6 0x558d00490bc6 in std::__cxx11::list<SpawnEntry*, std::allocator<SpawnEntry*> >::push_back(SpawnEntry* const&) /usr/include/c++/8/bits/stl_list.h:1220
    #7 0x558d00490bc6 in SpawnGroup::AddSpawnEntry(SpawnEntry*) ../zone/spawngroup.cpp:122
    #8 0x558d00490bc6 in ZoneDatabase::LoadSpawnGroups(char const*, unsigned short, SpawnGroupList*) ../zone/spawngroup.cpp:291
    #9 0x558d006a1465 in Zone::Depop(bool) ../zone/zone.cpp:1746
    #10 0x558d006e1adb in Zone::Repop(unsigned int) ../zone/zone.cpp:1777
2021-03-02 12:39:04 -05:00
2021-02-25 00:07:36 -05:00
2019-10-13 18:49:16 -07:00
2021-02-23 19:00:26 -06:00
2020-05-23 22:41:59 -05:00
2021-02-23 21:32:06 -05:00
2020-12-07 22:36:59 -06:00
2018-08-04 15:26:21 -04:00
2013-02-16 15:00:23 -08:00
2019-05-17 00:18:32 -07:00
2019-09-16 22:41:03 -05:00
2021-02-23 19:00:26 -06:00
2020-11-03 19:46:47 -05:00
2019-08-15 20:21:09 -05:00

EQEmulator Core Server

Travis CI (Linux) Appveyor (Windows x86) Appveyor (Windows x64)
Linux CI Build status Build status

EQEmulator is a custom completely from-scratch open source server implementation for EverQuest built mostly on C++

  • MySQL/MariaDB is used as the database engine (over 200+ tables)
  • Perl and LUA are both supported scripting languages for NPC/Player/Quest oriented events
  • Open source database (Project EQ) has content up to expansion OoW (included in server installs)
  • Game server environments and databases can be heavily customized to create all new experiences
  • Hundreds of Quests/events created and maintained by Project EQ

Server Installs

Windows Linux
Install Count Windows Install Count Linux Install Count

> Windows

> Debian/Ubuntu/CentOS/Fedora

  • Install Guide

  • You can use curl or wget to kick off the installer (whichever your OS has)

curl -O https://raw.githubusercontent.com/EQEmu/Server/master/utils/scripts/linux_installer/install.sh install.sh && chmod 755 install.sh && ./install.sh

wget --no-check-certificate https://raw.githubusercontent.com/EQEmu/Server/master/utils/scripts/linux_installer/install.sh -O install.sh && chmod 755 install.sh && ./install.sh

Supported Clients

Titanium Edition Secrets of Faydwer Seeds of Destruction Underfoot Rain of Fear

Bug Reports

  • Please use the issue tracker provided by GitHub to send us bug reports or feature requests.
  • The EQEmu Forums are also a place to submit and get help with bugs.

Contributions

  • The preferred way to contribute is to fork the repo and submit a pull request on GitHub. If you need help with your changes, you can always post on the forums or try Discord. You can also post unified diffs (git diff should do the trick) on the Server Code Submissions forum, although pull requests will be much quicker and easier on all parties.

Contact

Resources

Other License Info

  • The server code and utilities are released under GPLv3
  • We also include some small libraries for convienence that may be under different licensing
    • SocketLib - GPL LibXML
    • zlib - zlib license
    • MariaDB/MySQL - GPL
    • GPL Perl - GPL / ActiveState (under the assumption that this is a free project)
    • CPPUnit - GLP StringUtilities - Apache
    • LUA - MIT

Contributors

Description
Languages
C++ 93.4%
C 2.9%
C# 2.1%
Python 0.5%
CMake 0.3%
Other 0.6%