首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Lua编写PowerDNS后端

用Lua编写PowerDNS后端
EN

Stack Overflow用户
提问于 2011-06-27 22:03:41
回答 1查看 1.8K关注 0票数 1

我就是不能让它起作用。脚本正确地回答,PowerDNS认为它是工作的,但是这个过程永远不会超越对它的准备状态的认可。

PowerDNS服务器被卡在read()中,端口53上的所有网络连接都被完全忽略。服务器启动pdns_server进程以及脚本本身,什么都不会发生。在第9级进行日志记录是完全没有价值的:什么都不会发生。除了脚本的stderr输出可以看到外,"pdns监视器“也是如此。

我已经把脚本这里。太让人沮丧了..。我遗漏了什么?是io.lines()电话吗?是因为输入被缓冲了吗?

更新:--我正在使用文档来创建这个。我还看过其他语言(我知道一些)--比如v6rev (虽然我不知道Python)和这个例子的后端。

更新2 --我最好提到这也是与gmysql后端结合在一起的;PowerDNS确实允许多个后端,尽管我不知道它的具体细节。我确实切换了配置文件中后端的顺序,之后没有看到任何更改。此外,MySQL查询也能工作。没有pipe后端,MySQL后端可以很好地处理一些事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-28 16:39:45

没有人有任何提示所以..。这就是我发现的。它确实与缓冲有关--至少,这就是它看起来的样子。代码最初的行如下所示:

代码语言:javascript
复制
print("OK\tPowerDNS backend ok")

这些行正是问题所在;用这个序列代替它们是可行的:

代码语言:javascript
复制
print("OK\tPowerDNS backend ok")
io.flush()

然而-用以下顺序取代它们不起作用:

代码语言:javascript
复制
io.write("OK\tPowerDNS backend ok")
io.flush()

这大概是因为print()io.write()之间有一些不同。查找有关Lua未缓冲I/O的详细信息,没有发现任何信息。也许我应该使用io.stdout.write()而不是io.write()

偶然地,我遇到了本帖到Lua-用户邮件列表,其中提到了setvbuf函数。但是,setvbuf函数在Lua5.1中似乎是新的,因此它在Lua5.0中不可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6499460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档