[kbs] 主分支基础结构 userec 修改
userec 结构是用户帐号信息文件 .PASSWDS 文件的数据结构。重中之重!
由于 userec 结构中凌乱的定义阻碍 kbs 系统进一步发展,现在去掉了
money 和 score 两个字段,并回收别的一些自定义内容。修改附后。
这个修改保证在定义了 HAVE_USERMONEY 宏的情况下 userec 的大小不变。
另外定义了 HAVE_WFORUM 的情况下这个宏自动被定义。
大部分站点应该不受影响。目前 cvs 上的站点均不受影响:
devel
fb2k-v2
feeling
happy
free
zixia
如果你的站点定义文件 (src/site.h src/site.c) 是:
a. 你自己维护的,或者
b. 链接的是上述 cvs 代码中的 site 定制文件,但是你自己改过,
那么你在所有代码升级到最新cvs主分支之后需要确认是否需要自定义 userec
结构以保证和以前代码的兼容性。如果你以前没有定义 HAVE_USERMONEY,那么
现在的 userec 结构和你原来的结构大小不一样,升级后会出现灾难性错误!
1. grep 一下你自己的 site.h,HAVE_USERMONEY 和 HAVE_WFORUM 只要有其中一个
被定义成 1,那么升级应该没有问题,只要通过编译就没问题了。
否则的话,自己在 site.h 里面定义自己原来的 userec 结构,并定义
#define OWN_USEREC 1
这样就不会使用现在新的 userec 结构
2. 升级代码需要全部代码一起升级,否则可能过不了编译。编译完成之后,先
不要 make install, 先在源代码目录下运行下 src/bbsd -p 5555,然后 telnet
到 localhost 5555 端口确认可以登录看文章等,以便确认修改没有问题。
相关修改 diff src/struct.h
+#ifndef OWN_USEREC
struct userec { /* Structure used to hold information in */
char userid[IDLEN + 2]; /* PASSFILE */
char flags; /*一些标志,戒网,版面排序之类的*/
@@ -36,17 +37,10 @@
time_t exittime;
/* 生日数据转移到 userdata 结构中 */
unsigned int usedspace; /* used space of user's mailbox, in bytes */
-#ifdef HAVE_USERMONEY
- int money;
- int score;
-#ifdef ZIXIA
- int altar;
- char unused[16];
-#else
- char unused[20];
-#endif
-#endif
+
+ int unused[7];
};
+#endif //OWN_USEREC
--
FROM 61.182.213.*