struct IODescriptor;
struct ServerSocket;
-//struct UserSession;
+struct UserSession;
+
+#define USERCLIENT_LOGIN_PROCESSING 0x01
+#define USERCLIENT_LOGGED_IN 0x02
+
+struct UserLogin {
+ struct UserClient *client;
+ char *username;
+ char *password;
+ char *nick;
+
+ int login_accepted : 1;
+ char *reject_reason;
+
+ char *session_class;
+
+ struct IODescriptor *login_iofd;
+};
struct UserClient {
struct IODescriptor *iofd;
struct ServerSocket *server;
- //struct UserSession *user;
+ int flags;
+ void *user; /* struct UserSession / struct UserLogin */
+
+ char *username;
+ char *password;
+ char *nick;
struct UserClient *next, *prev;
};
void userclient_accepted(struct ServerSocket *server, int sockfd);
void userclient_close(struct UserClient *client);
void userclient_close_server(struct ServerSocket *server, int keep_clients);
+void userclient_login_failed(struct UserLogin *login, char *reason);
+void userclient_login_successful(struct UserLogin *login, struct UserSession *session, int recover);
#endif