mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
* fix(DB/SmartAI): improve Harry surrendering during quest 'Gambling Debt' (#23598) * fix(DB/Quest): The Kalu'ak dailies reward 500 rep (#23600) * chore(DB): import pending files Referenced commit(s):fb03f41b2a* fix(DB/GameEvent): Remove midsummer pole in K3 (#23614) * chore(DB): import pending files Referenced commit(s):7b0000d6ee* fix(DB/SmartAI): increase reliability of quest event Foolish Endeavors (#23612) * chore(DB): import pending files Referenced commit(s):86f219abbc* fix(Scripts/AreaTrigger): players become stuck after Last Rites (#23613) * chore(DB): import pending files Referenced commit(s):c1a8047cf1* fix(Core/Vmaps): Fix inconsistency of hitInstance and hitModel to cause wrong area ids (#23233) Co-authored-by: ModoX <moardox@gmail.com> Co-authored-by: Shauren <shauren.trinity@gmail.com> Co-authored-by: Grimdhex <237474256+Grimdhex@users.noreply.github.com> Co-authored-by: sudlud <sudlud@users.noreply.github.com> * fix(DB/Gameobject): Sniffed Values for 'Wild Mustard' spawns (#23608) * fix(DB/SmartAI): remove large combat distance of Frostbrood Sentry (#23607) * chore(DB): import pending files Referenced commit(s):41d40b236f* fix(DB/ReputationRewardRate): Patch 3.0.0 gain for Northrend factions (#23597) * chore(DB): import pending files Referenced commit(s):067a898caa* fix(Core/Map): It should be ensured that the instance is unloaded only after the Creature Respawn. (#23103) * fix(Scripts/Northrend): Sniffing Out The Perpetrator horde (#23620) * fix(Scripts/Northrend): ensure Drakuru stays in place during Betrayal (#23619) * chore(DB): import pending files Referenced commit(s):928e145694* fix(DB/SmartAI): quest 'Reconnaissance Flight' (#23628) Co-authored-by: dr-j <dr-j@users.noreply.github.com> Co-authored-by: Killyana <morphone1@gmail.com> * fix(DB/QuestOfferReward): remove mention of a beta recipe in text (#23629) * fix(DB/Conditions): update quest conditions to drop chokers (#23610) * chore(DB): import pending files Referenced commit(s):bca8f7ce07* refactor(Core/PlayerScript): Delete OnPlayerChat, use OnPlayerCanUseChat (#23617) * fix(Core/SmartAI): startup warnings unused params (#23551) * fix(Core/Unit): Druid Talent Survival of the Fittest lacking immunity to creature daze (#23471) * fix(DB/SAI): Fix Fizzcrank Paradrop teleporters (#23633) * chore(DB): import pending files Referenced commit(s):94ba1c210d* fix(Core): Fix waterwalking after dying in instance (#23593) * fix(DB/SAI): don't remove all auras when mounting flamebringer (#23640) * chore(DB): import pending files Referenced commit(s):22f91f3802* fix(DB/SAI): Emerald Lasher goes out of the terrain when aggroed. (#23642) * chore(DB): import pending files Referenced commit(s):f9d6fe41de* fix(DB/SAI): Burning Depths Necromancer no longer stays in place. (#23641) * chore(DB): import pending files Referenced commit(s):1037471c8d* fix(DB/SAI): Remove SmartAI from Valkyrion Harpoon Gun. (#23646) * chore(DB): import pending files Referenced commit(s):8e3a7e6dcf* fix(DB/Creature): Fix Weakened Reanimated Frost Wyrm inhabit type (#23645) * chore(DB): import pending files Referenced commit(s):3baa18ef5b* fix(DB/Spell): Infectious Bites should stack from different casters (#23647) * chore(DB): import pending files Referenced commit(s):5aede412ab* fix(DB/SAI): Solve various issues with It Goes to 11... quest. (#23651) * fix(DB/Loot): Fireproof Satchel will now always drop the Ritual of Torch (#23585) * chore(DB): import pending files Referenced commit(s):1090c209b3* fix(Scripts/Northrend): Betrayal quest (#23650) * fix(Script/BlackTemple): Reliquary of Souls will use 45 degree in front to set incombat (#22938) * fix(Scripts/Spell): Fix Animal Blood spawning when it shouldn't (#23656) * fix(Scripts/BoreanTundra): Script Bloodspore Haze/Psychosis (#23657) * chore(DB): import pending files Referenced commit(s):baf7957e36* fix(DB/SAI): Sibling Rivalry quest credit if mounted (#23659) * chore(DB): import pending files Referenced commit(s):6919cc679d* fix(docs/license): use GPLv2 as MaNGOS-based project (#23655) * fix(Core/Achievements): a character can only have 1 race realm first (#23626) * chore: fix leftover license header (#23678) * fix(Scripts/HoL): Update Loken script (#23587) * fix(Scripts/DTK): Update King Dred script (#23572) * fix(DB/SAI): Bitter Departure quest credit (#23658) * chore(DB): import pending files Referenced commit(s):e595425578* fix(DB/Conditions): Ice Shard require Icy Imprisonment (#23661) * chore(DB): import pending files Referenced commit(s):8294652e77* fix(DB/Loot): add Scourge Curio drop to Lost Shandaral Spirit (#23686) * chore(DB): import pending files Referenced commit(s):b6ed4347fe* fix(DB/Gameobject): fix spell focus location for 'Will of the Titans' (#23683) * chore(DB): import pending files Referenced commit(s):388f18895d* fix(DB/Creature): update IOC Demolisher spells (#23685) * chore(DB): import pending files Referenced commit(s):cdfa50c990* fix(Scripts/Northrend): IOC boss cast ability Mortal Strike (#23684) * fix(Scripts/BoreanTundra): Fix Beryl Sorcerer engaging mobs (#23690) * fix(Core/Entities): Improve interactions between taxis and players regarding PvP flag. (#23681) * fix(DB/Creature): Peon Gakra should be an innkeeper (#23699) * chore(DB): import pending files Referenced commit(s):6abff4ac2b* fix(Scripts/SholazarBasin): Fix Song of Wind and Water double credit (#23707) * fix(DB/SAI): Reanimated Frost Wyrm engage after being hit by quest spell (#23697) * fix(DB/SAI): Timely respawn Nesingwary Trappers (#23703) * fix(DB/Creature): Fix Fjord Hawk Matriarch unit flags (#23696) * fix(DB/Conditions): Fix Fordragon Resolve target conditions (#23701) * chore(DB): import pending files Referenced commit(s):2942d63125* fix(DB/Script): Move Tailhorn Stag and Amberpine Woodsman behavior into SmartAI. (#23708) * fix(DB/Creature): Set Trigger flag on Steam Vent. (#23710) * chore(DB): import pending files Referenced commit(s):435ca302ef* fix(DB/SAI): To Stars' Rest! taxi flight (#23712) * chore(DB): import pending files Referenced commit(s):ab4d59ac9d* fix (DB/Creature): Set Surveyor Orlond flags. (#23714) * chore(DB): import pending files Referenced commit(s):e8ec77dca7* fix(DB/Loot): Fix Master Summoner Staff drop chance (#23717) * chore(DB): import pending files Referenced commit(s):182c055e6e* fix(Scripts/DTK): Fix Oh Novos! achievement (#23539) (#23718) * fix(Core/Spells): Remove King Mrgl-Mrgl costume on spell casting (#23713) * chore(DB): import pending files Referenced commit(s):8c963a11ce* fix(DB/Reputation): Utigarde Pinnacle normal reputation (#23719) * chore(DB): import pending files Referenced commit(s):88ed7d66d5* fix(Scripts/HoS): Clean up faction update hacks (#23720) * fix(DB/Reputation): Lower reputation according to rates handling (#23722) * fix(DB/Reputation): Oculus normal & UP correction (#23723) * chore(DB): import pending files Referenced commit(s):abc2cf3028* fix(Scripts/Oculus): Implement crossfaction support for drakes (#23704) * fix(DB/Quest): Correct prerequisite for Reclaimed Ration (#23736) Co-authored-by: blinkysc <blinkysc@users.noreply.github.com> * fix(DB/Quest): Correct prerequisite for Salvaging Life's Strength (#23734) Co-authored-by: blinkysc <blinkysc@users.noreply.github.com> * chore(DB): import pending files Referenced commit(s):afd8197588* fix(Core/Movement): Fix SummonMovementInform for summons (#23725) * refactor(Core/Movement): Fix Build (#23739) * fix(DB/SAI): Update Iron Rune Construct SAI to use DO_ACTION instead … (#23716) * chore(DB): import pending files Referenced commit(s):7cc39f78e2* fix(DB/SAI): Fix Flamebringer gossip interaction (#23740) * chore(DB): import pending files Referenced commit(s):9cb683cfcd* fix(DB/SAI): Nerub'ar member packs now attack together. (#23727) * chore(DB): import pending files Referenced commit(s):6f5a1b7ccc* fix(DB/SAI): Remove Harrison Johnes quest flag on escort accept (#23700) * chore(DB): import pending files Referenced commit(s):bacf15d356* Update crash issue template with log submission guidelines (#23754) * Merge * Updated OnPlayerChat method name to OnPlayerCanUseChat --------- Co-authored-by: sogladev <sogladev@gmail.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: 天鹭 <18535853+PkllonG@users.noreply.github.com> Co-authored-by: ModoX <moardox@gmail.com> Co-authored-by: Shauren <shauren.trinity@gmail.com> Co-authored-by: Grimdhex <237474256+Grimdhex@users.noreply.github.com> Co-authored-by: sudlud <sudlud@users.noreply.github.com> Co-authored-by: dr-j <dr-j@users.noreply.github.com> Co-authored-by: Killyana <morphone1@gmail.com> Co-authored-by: Undo <50205200+UndoUreche@users.noreply.github.com> Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com> Co-authored-by: killerwife <killerwife@gmail.com> Co-authored-by: Tereneckla <Tereneckla@pm.me> Co-authored-by: Rocco Silipo <108557877+Rorschach91@users.noreply.github.com> Co-authored-by: Ryan Turner <16946913+TheSCREWEDSoftware@users.noreply.github.com> Co-authored-by: blinkysc <37940565+blinkysc@users.noreply.github.com> Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com> Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Co-authored-by: Traesh <Traesh@users.noreply.github.com> Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
181 lines
6.3 KiB
Plaintext
181 lines
6.3 KiB
Plaintext
Things TODO
|
|
===========
|
|
|
|
* Fix -Wsign-conversion warnings in src
|
|
|
|
* Fix the numerous malloc+copy operations for sending data, see "Buffering
|
|
Improvements" below for details
|
|
|
|
* make sure the windowing code adapts better to slow situations so that it
|
|
does not then use as much memory as today. Possibly by an app-controllable
|
|
"Window mode"?
|
|
|
|
* Decrease the number of mallocs. Everywhere. Will get easier once the
|
|
buffering improvements have been done.
|
|
|
|
* Use SO_NOSIGPIPE for Mac OS/BSD systems where MSG_NOSIGNAL does not
|
|
exist/work
|
|
|
|
* Extend the test suite to actually test lots of aspects of libssh2
|
|
|
|
* Update public API to drop casts added to fix compiler warnings
|
|
|
|
* Expose error messages sent by the server
|
|
|
|
* select() is troublesome with libssh2 when using multiple channels over
|
|
the same session. See "New Transport API" below for more details.
|
|
|
|
* for obsolete/weak/insecure algorithms: either stop enabling them by default
|
|
at build-time, or delete support for them completely.
|
|
|
|
At next SONAME bump
|
|
===================
|
|
|
|
* stop using #defined macros as part of the official API. The macros should
|
|
either be turned into real functions or discarded from the API.
|
|
|
|
* delete or deprecate libssh2_session_callback_set()
|
|
|
|
* bump length arguments in callback functions to size_t/ssize_t
|
|
|
|
* remove the following functions from the API/ABI
|
|
|
|
libssh2_base64_decode()
|
|
libssh2_session_flag()
|
|
libssh2_channel_handle_extended_data()
|
|
libssh2_channel_receive_window_adjust()
|
|
libssh2_poll()
|
|
libssh2_poll_channel_read()
|
|
libssh2_session_startup() (libssh2_session_handshake() is the replacement)
|
|
libssh2_banner_set() (libssh2_session_banner_set() is the replacement)
|
|
|
|
* Rename a few function:
|
|
|
|
libssh2_hostkey_hash => libssh2_session_hostkey_hash
|
|
libssh2_banner_set => libssh2_session_banner_set
|
|
|
|
* change 'int' to 'libssh2_socket_t' in the public API for sockets.
|
|
|
|
* Use 'size_t' for string lengths in all functions.
|
|
|
|
* Add a comment field to struct libssh2_knownhost.
|
|
|
|
* remove the existing libssh2_knownhost_add() function and rename
|
|
libssh2_knownhost_addc to become the new libssh2_knownhost_add instead
|
|
|
|
* remove the existing libssh2_scp_send_ex() function and rename
|
|
libssh2_scp_send64 to become the new libssh2_scp_send instead.
|
|
|
|
* remove the existing libssh2_knownhost_check() function and rename
|
|
libssh2_knownhost_checkp() to become the new libssh2_knownhost_check instead
|
|
|
|
Buffering Improvements
|
|
======================
|
|
|
|
transport_write
|
|
|
|
- If this function gets called with a total packet size that is larger than
|
|
32K, it should create more than one SSH packet so that it keeps the largest
|
|
one below 32K
|
|
|
|
sftp_write
|
|
|
|
- should not copy/allocate anything for the data, only create a header chunk
|
|
and pass on the payload data to channel_write "pointed to"
|
|
|
|
New Transport API
|
|
=================
|
|
|
|
THE PROBLEM
|
|
|
|
The problem in a nutshell is that when an application opens up multiple
|
|
channels over a single session, those are all using the same socket. If the
|
|
application is then using select() to wait for traffic (like any sensible app
|
|
does) and wants to act on the data when select() tells there is something to
|
|
for example read, what does an application do?
|
|
|
|
With our current API, you have to loop over all the channels and read from
|
|
them to see if they have data. This effectively makes blocking reads
|
|
impossible. If the app has many channels in a setup like this, it even becomes
|
|
slow. (The original API had the libssh2_poll_channel_read() and libssh2_poll()
|
|
to somewhat overcome this hurdle, but they too have pretty much the same
|
|
problems plus a few others.)
|
|
|
|
Traffic in the other direction is similarly limited: the app has to try
|
|
sending to all channels, even though some of them may very well not accept any
|
|
data at that point.
|
|
|
|
A SOLUTION
|
|
|
|
I suggest we introduce two new helper functions:
|
|
|
|
libssh2_transport_read()
|
|
|
|
- Read "a bunch" of data from the given socket and returns information to the
|
|
app about what channels that are now readable (ie they will not block when
|
|
read from). The function can be called over and over and it will repeatedly
|
|
return info about what channels that are readable at that moment.
|
|
|
|
libssh2_transport_write()
|
|
|
|
- Returns information about what channels that are writable, in the sense
|
|
that they have windows set from the remote side that allows data to get
|
|
sent. Writing to one of those channels will not block. Of course, the
|
|
underlying socket may only accept a certain amount of data, so at the first
|
|
short return, nothing more should be attempted to get sent until select()
|
|
(or equivalent) has been used on the master socket again.
|
|
|
|
I have not yet figured out a sensible API for how these functions should return
|
|
that info, but if we agree on the general principles I guess we can work that
|
|
out.
|
|
|
|
VOLUNTARY
|
|
|
|
I wanted to mention that these two helper functions would not be mandatory
|
|
in any way. They would just be there for those who want them, and existing
|
|
programs can remain using the old functions only if they prefer to.
|
|
|
|
New SFTP API
|
|
============
|
|
|
|
PURPOSE
|
|
|
|
Provide API functions that explicitly tells at once that a (full) SFTP file
|
|
transfer is wanted, to allow libssh2 to leverage on that knowledge to speed
|
|
up things internally. It can for example do read ahead, buffer writes (merge
|
|
small writes into larger chunks), better tune the SSH window and more. This
|
|
sort of API is already provided for SCP transfers.
|
|
|
|
API
|
|
|
|
New functions:
|
|
|
|
LIBSSH2_SFTP_HANDLE *libssh2_sftp_send(SFTP_SESSION *sftp,
|
|
libssh2_uint64_t filesize,
|
|
char *remote_path,
|
|
size_t remote_path_len,
|
|
long mode);
|
|
|
|
Tell libssh2 that a local file with a given size is about to get sent to
|
|
the SFTP server.
|
|
|
|
LIBSSH2_SFTP_HANDLE *libssh2_sftp_recv();
|
|
|
|
Tell libssh2 that a remote file is requested to get downloaded from the SFTP
|
|
server.
|
|
|
|
Only the setup of the file transfer is different from an application's point
|
|
of view. Depending on direction of the transfer(s), the following already
|
|
existing functions should then be used until the transfer is complete:
|
|
|
|
libssh2_sftp_read()
|
|
libssh2_sftp_write()
|
|
|
|
HOW TO USE
|
|
|
|
1. Setup the transfer using one of the two new functions.
|
|
|
|
2. Loop through the reading or writing of data.
|
|
|
|
3. Cleanup the transfer
|