* ipv4 servers, so this value will be ten times as
* high on ipv6 servers.
*/
-#define NATIVE_API_VERSION 11017
+#define NATIVE_API_VERSION 11019
#ifdef IPV6
#define API_VERSION (NATIVE_API_VERSION * 10)
#else
#define IS_LOCAL(x) ((x->GetFd() > -1) && (x->GetFd() <= MAX_DESCRIPTORS))
#define IS_REMOTE(x) (x->GetFd() < 0)
#define IS_MODULE_CREATED(x) (x->GetFd() == FD_MAGIC_NUMBER)
+#define IS_OPER(x) (*x->oper)
+#define IS_AWAY(x) (*x->awaymsg)
/** Holds a module's Version information
* The four members (set by the constructor only) indicate details as to the version number
* 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
*/
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);
};