* ipv4 servers, so this value will be ten times as
* high on ipv6 servers.
*/
-#define NATIVE_API_VERSION 11015
+#define NATIVE_API_VERSION 11018
#ifdef IPV6
#define API_VERSION (NATIVE_API_VERSION * 10)
#else
I_OnPostLocalTopicChange, I_OnEvent, I_OnRequest, I_OnOperCompre, I_OnGlobalOper, I_OnPostConnect, I_OnAddBan, I_OnDelBan,
I_OnRawSocketAccept, I_OnRawSocketClose, I_OnRawSocketWrite, I_OnRawSocketRead, I_OnChangeLocalUserGECOS, I_OnUserRegister,
I_OnOperCompare, I_OnChannelDelete, I_OnPostOper, I_OnSyncOtherMetaData, I_OnSetAway, I_OnCancelAway, I_OnUserList,
- I_OnPostCommand, I_OnPostJoin, I_OnWhoisLine, I_OnBuildExemptList, I_OnRawSocketConnect, I_OnGarbageCollect };
+ I_OnPostCommand, I_OnPostJoin, I_OnWhoisLine, I_OnBuildExemptList, I_OnRawSocketConnect, I_OnGarbageCollect, I_OnBufferFlushed };
/** Base class for all InspIRCd modules
* This class is the base class for InspIRCd modules. All modules must inherit from this class,
* This event is only called when the user is fully registered when they quit. To catch
* raw disconnections, use the OnUserDisconnect method.
* @param user The user who is quitting
- * @param message The user's quit message
+ * @param message The user's quit message (as seen by non-opers)
+ * @param oper_message The user's quit message (as seen by opers)
*/
- virtual void OnUserQuit(userrec* user, const std::string &message);
+ virtual void OnUserQuit(userrec* user, const std::string &message, const std::string &oper_message);
/** Called whenever a user's socket is closed.
* The details of the exiting user are available to you in the parameter userrec *user
* method is called when it is time to do that.
*/
virtual void OnGarbageCollect();
+
+ /** Called whenever a user's write buffer has been completely sent.
+ * This is called when the user's write buffer is completely empty, and
+ * there are no more pending bytes to be written and no pending write events
+ * in the socket engine's queue. This may be used to refill the buffer with
+ * data which is being spooled in a controlled manner, e.g. LIST lines.
+ * @param user The user who's buffer is now empty.
+ */
+ virtual void OnBufferFlushed(userrec* user);
};