| 暗黑首页 | 基础知识 | 角色职业 | 魔法技能 | 物品装备 | 妖魔鬼怪 | 经验心得 | 官方公告 |
| 秘籍修改 | 任务攻略 | 非常技术 | 场景地图 | 常见问题 | 暗黑下载 | 新手指引 | MOD 制作 |
暗黑下载
暗黑破坏神2下载
暗黑2玩家交流
暗黑破坏神2新手指引
网络版暗黑简单进入说明:
1、下载1.11B版本暗黑2
2、其他版本覆盖1.11B补丁
3、运行91D2战网注册表
4、用91D2登陆器或D2loader启动游戏,点击battle.net进入游戏
经验分享
·RR详尽流程经验分享
·FZ永久无杖key制作
·新人乘坐bus全流程注
·战网穷人KB经验分享
·战网mf和bus一体sor
·如何高效轻松八开DYKB
·有交易价值物品的Drop率
人物练法
·HOLD住全场的男人PAL
·经典法师SOR再续前缘
·打造最帅的狂乱者BAR
·穷人的的暴力熊德DUR
·暗之幽灵刹那芳华ASN
·打造最强势信心弓AMA
·追寻五环的炫目NEC
非资料片
·非资料片KD房间注意项
·91D2非资料技术贴合集1
·91D2非资料技术贴合集2
·战网FZ单人8开SOLO方法
·战网FZ物品价值之我见
·影像资料记录FZ KD历程
首页 > MOD制作
bnetd及pvpgn的一个最新bug及修正方案
作者:vinceit 2018-09-08

 该bug只对windows操作系统架设的bnetd及pvpgn服务器起作用
其原理是windows操作系统禁止了一些保留字作为文件名, 如com1, con, nul, prn, lpt1等等

在windows系统下, 当使用这些文件名作为游戏账号或查询这些账号状态时, 会导致服务器程序死锁或崩溃

此bug对部分1.09, 1.10, 1.11版本的服务器有影响

经过后续分析, 发现产生这个问题的原因是当服务器在查找某个acc的时候, 会首先判断这个acc所在的user文件是否存在
这个判断机制在判断这些DOS Device的时候会呈现成功状态
之后服务器会用fopen尝试打开该user文件
打开也是成功的, 但打开的并不是文件, 而是系统保留的DOS Device设备,(比如com1串口)
之后服务器会用read去读取这个文件, 实际上对windows系统来说是在读取串口数据
而串口并没有数据返回, 于是服务器软件在这里持续不断地等待, 呈假死状态

判断一个服务器是否存在这个bug的简单方法是输入/m *com1 ni hao

该bug最新解决方法 (以bnetd 5.2.9为例)

修改account.c文件accountlist_load_account函数889行
if (stat(pathname, &statbuf) < 0) {
增加一个条件判断
改为
if (stat(pathname, &statbuf) < 0 || (statbuf.st_size == 0 && statbuf.st_mtime == -1)) {

若windows系统的DOS Device保留设备在stat查询状态值得时候, 返回的文件size为0, 最后访问时间mtime为invalid time(-1)
满足这个条件即可断定此文件为不可访问状态

苏ICP备14007949号-2

暗黑2战网 | anhei2 | 暗黑破坏神2 | 暗黑战网 | 暗黑2 | 暗黑破坏神3 | 暗黑3 | | anhei3 | 暗黑2下载

Copyright © 2007-2021 91D2 Corporation, All Rights Reserved

91d2战网 版权所有