/* IRCfs - IRC FileServ for *nix. * Copyright (C) 2002 Nick 'Zaf' Clifford * For licensing details, refer to the LICENSE file in the source * code directory. */ #ifndef __include_session_h__ #define __include_session_h__ #include "server.h" #include "magic.h" #include "file.h" #include "user.h" #include struct session; enum session_events { session_event_new, /* A new session has been created */ session_event_destroy, /* A session is being destroyed */ session_event_connected, /* The user has connected to the session */ session_event_disconnected, /* The user has disconnected from the session */ session_event_dir_change, /* The user has changed directory */ session_event_get_request, /* The user has requested a file */ session_event_get_started, /* The fserv is sending the user a file */ session_event_said, /* The user said something */ session_event_said_unknown, /* The user said something that wasn't handled by a handler from event_said */ }; #define MAGIC_SESSION_EVENT_MSG 0xCE46A29A struct session_event_msg { MAGIC magic; struct session *session; union { char *str; struct dccsend *send; } u; }; struct eventobj *session_get_eventobj(); struct session *session_create(struct user *u, struct dir *root_dir); int session_destroy(struct session *s); int session_write(struct session *s, const char *str); int session_writef(struct session *s, const char *str, ...); int session_vwritef(struct session *s, const char *str, va_list vl); struct user *session_get_user(); struct dir *session_get_current_dir(); #endif