diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2014-04-17 16:10:11 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2014-04-17 16:10:11 -0700 |
commit | ae7b06ff8ad775a945bd677effd72b7fafa13d8d (patch) | |
tree | 3de2693f18a39e57008f63926fedf169da5b23ac /src/mmo/socket.hpp | |
parent | 15dc4a8c51d0704bb82407c1dc79c751cda7fb42 (diff) | |
download | tmwa-ae7b06ff8ad775a945bd677effd72b7fafa13d8d.tar.gz tmwa-ae7b06ff8ad775a945bd677effd72b7fafa13d8d.tar.bz2 tmwa-ae7b06ff8ad775a945bd677effd72b7fafa13d8d.tar.xz tmwa-ae7b06ff8ad775a945bd677effd72b7fafa13d8d.zip |
Die sensibly, take 1
Diffstat (limited to 'src/mmo/socket.hpp')
-rw-r--r-- | src/mmo/socket.hpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mmo/socket.hpp b/src/mmo/socket.hpp index 256c08b..53e0dfd 100644 --- a/src/mmo/socket.hpp +++ b/src/mmo/socket.hpp @@ -59,8 +59,14 @@ struct Session TimeT created; bool connected; +private: /// Flag needed since structure must be freed in a server-dependent manner bool eof; +public: + void set_eof() { eof = true; } + // not everything is a member yet ... + bool private_is_eof() { return eof; } + /// Currently used by clif_setwaitclose Timer timed_close; @@ -87,6 +93,8 @@ struct Session /// is a player or a server/ladmin /// Can be set explicitly or via set_defaultparse void (*func_parse)(Session *); + /// Cleanup function since we're not fully RAII yet + void (*func_delete)(Session *); /// Server-specific data type std::unique_ptr<SessionData, SessionDeleter> session_data; @@ -141,7 +149,7 @@ void do_parsepacket(void); /// Change the default parser for newly connected clients // typically called once per server, but individual clients may identify // themselves as servers -void set_defaultparse(void(*defaultparse)(Session *)); +void set_defaultparse(void(*defaultparse)(Session *), void(*defaultdelete)(Session *)); template<class T> uint8_t *pod_addressof_m(T& structure) |