--- lbbs/include/bbs.h 2004/10/22 15:20:32 1.2 +++ lbbs/include/bbs.h 2025/06/14 09:20:13 1.25 @@ -1,78 +1,66 @@ /*************************************************************************** - bbs.h - description - ------------------- - begin : Mon Oct 18 2004 - copyright : (C) 2004 by Leaflet - email : leaflet@leafok.com + bbs.h - description + ------------------- + Copyright : (C) 2004-2025 by Leaflet + Email : leaflet@leafok.com ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * + * the Free Software Foundation; either version 3 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ -#include - -//BBS -#define BBS_max_section 1024 - -extern char BBS_id[20]; -extern char BBS_name[50]; -extern char BBS_server[256]; -extern char BBS_address[50]; -extern unsigned int BBS_port; -extern long BBS_max_client; -extern long BBS_max_user; -extern char BBS_start_dt[50]; - -//User privilege -#define S_NONE 0x0 -#define S_LIST 0x1 -#define S_GETEXP 0x2 -#define S_POST 0x4 -#define S_MSG 0x8 -#define S_MAIL 0x10 -#define S_MAN_S 0x20 -#define S_MAN_M 0x60 //(0x40 | 0x20) -#define S_ADMIN 0xe0 //(0x80 | 0x40 | 0x20) -#define S_ALL 0xff -#define S_DEFAULT 0x3 //0x1 | 0x2 - -#define P_GUEST 0x0 //游客 -#define P_USER 0x1 //普通用户 -#define P_AUTH_USER 0x2 //认证用户 -#define P_MAN_S 0x4 //副版主 -#define P_MAN_M 0x8 //正版主 -#define P_MAN_C 0x10 //栏目主管 -#define P_ADMIN_S 0x20 //次系统管理员 -#define P_ADMIN_M 0x40 //主系统管理员 - -struct user_priv -{ - long int uid; - long int auid; - int level; - int g_priv; - struct - { - int sid; - int s_priv; - }s_priv_list[BBS_max_section]; - int s_count; -}; - -typedef struct user_priv BBS_user_priv; +#ifndef _BBS_H_ +#define _BBS_H_ -//Session -extern BBS_user_priv BBS_priv; +#include +#include -extern int BBS_passwd_complex; +// BBS +#define BBS_max_section 200 +#define BBS_section_name_max_len 20 +#define BBS_section_title_max_len 20 +#define BBS_username_max_len 12 +#define BBS_password_max_len 12 +#define BBS_nickname_max_len 20 +#define BBS_user_tz_max_len 50 + +#define BBS_id_max_len 20 +#define BBS_name_max_len 50 +#define BBS_server_max_len 255 +#define BBS_address_max_len 50 +#define BBS_start_dt_max_len 50 + +#define BBS_section_list_load_interval 10 // second + +extern char BBS_id[BBS_id_max_len + 1]; +extern char BBS_name[BBS_name_max_len + 1]; +extern char BBS_server[BBS_server_max_len + 1]; +extern char BBS_address[BBS_address_max_len + 1]; +extern in_port_t BBS_port[2]; +extern int BBS_max_client; +extern int BBS_max_client_per_ip; +extern int BBS_max_user; +extern char BBS_start_dt[BBS_start_dt_max_len + 1]; + +// Session +#define MAX_DELAY_TIME 600 // 10 minutes +#define BBS_user_off_line 900 // 15 minutes + +extern char BBS_username[BBS_username_max_len + 1]; +extern char BBS_nickname[BBS_nickname_max_len + 1]; +extern char BBS_user_tz[BBS_user_tz_max_len + 1]; +extern int BBS_user_exp; extern time_t BBS_login_tm; extern time_t BBS_last_access_tm; -extern time_t BBS_last_sub_tm; +extern char BBS_current_section_name[BBS_section_name_max_len + 1]; + +extern char *setuserfile(char *buf, size_t len, const char *filename); + +#endif //_BBS_H_