![]() |
![]() |
#1 |
高级会员
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 注册: 08年04月11日
来自: 盘丝洞
帖子: 311
声望力: 20
声望:
50
![]() 现金:29两梁山币
资产:1245两梁山币
致谢数: 0
获感谢文章数:0
获会员感谢数:0 |
支持MySQL,使用MD5加密函数的MudOS v22.2b11版本
作者:jackyboy 发表时间:2001年6月20日 18:46 -------------------------------------------------------------------------------- 相关链接:http://ftp1.niub.net/MudOS/v22.2b11.tar.gz MudOS v22.2b11 (JackyBoy 增强版) 说明文件 1、本次修改只为了增强MudOS在Linux操作系统下的功能,其他平台我未测试,我只是尽量 的缩小影响范围。 2、象大部分人一样,默认修改了options.h里的如下定义: #undef NO_WIZARDS #define PACKAGE_UIDS #define AUTO_SETEUID 这一项根据我的朋友Darks所说应该是#undef才对,但是因为我一直都这样用,而且几乎我 看到的都这样用,所以我还是将其#define了,但是要注意将一些object在create()里增加 seteuid(0),比如在/inherit/char/char.c的create()函数: void create() { seteuid(0); // so LOGIN_D can export uid to us } 3、将默认密码加密方式修改为MD5,因为默认的DES加密方式只接受8位的密码长度,也就 是说密码12345678x和123456789这两个密码都是等价的。改为MD5方式后crypt()将默认用 MD5加密,如果还想用旧的加密方式,可以使用oldcrypt()来验证密码。由于此原因,如果 你是要考虑用此MudOS来替代一个已经运行的OS,那么一定要考虑玩家密码的更新问题。 妥善的运行方案是要两种方式并存运行一段时间,当玩家密码几乎都转为MD5加密过的以后 就可以完全抛弃过去的DES加密方式了。 此修改是通过将options.h里的#undef CUSTOM_CRYPT修改为如下所示来实现的: #define CUSTOM_CRYPT 4、修改MudOS可以使用MySQL数据库。 在options.h里做了如下修改: 将#undef PACKAGE_DB 修改为了 #define PACKAGE_DB 将#define USE_MSQL 1 修改为 #undef USE_MSQL 将#undef MYSQL 2 修改为 #define MYSQL 2 将#define DEFAULT_DB USE_MSQL修改为 #define DEFAULT_DB USE_MYSQL 如果不需要数据库功能,你可以将PACKAGE_DB的修改改回去就可以,但是,这样做还不如 你直接使用原来的v22.2b11版本好了,因为此次功能增强主要就是在数据库功能上增强的。 另外,由于高版本的MySQL数据库使用了zlib库,因此我也修改了edit_source.c,在里面 检查了zlib库是否存在,如果存在则将其加入连接选项,如果不存在,或者没加入zlib库 就会出现连接时找不到compress和uncompress函数的问题。 5、关于一些使用底版本MUDOS的LIB的问题 这次是直接拿v22.2b11的原本版本修改的。中间没有任何一次的build来产生累赘的东西。 大小跟原本一样。只要修改options.h就够了。因此这个版本也象其他的OS一样,似乎默认 开启了SENSIBLE_MODIFIERS选项的,这可以在options.h里看到如下的内容: #define SENSIBLE_MODIFIERS 如果你过去使用的是v22pre11的MudOS驱动,最好将上面一项修改为#undef而不是#define。 源代码下载地址: http://ftp1.niub.net/MudOS/v22.2b11.tar.gz 有相关的疑问或者问题,请访问下面的网址: http://bbs.niub.net 除了此处,请不要写信给我,请不要在QQ上呼我询问相关问题。 JackyBoy 2001/06/20 呵呵 利用lib来保持兼容的一些办法 作者:darks 发表时间:2001年6月21日 09:30 -------------------------------------------------------------------------------- #ifdef __SENSIBLE_MODIFIERS__ #define staticf protected #define staticv nosave #else #define staticf static #define staticv static #endif 在全局定义中 使用这个 可以保持和 这个语法的兼容问题 数据库功能 如果不想使用 可以不写那些代码 在master.c里面加一个: staticf mixed valid_database(object ob, string action, mixed *info){return 0;} 就可以了 |
![]() |
![]() |