问题标签 [hexchat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
374 浏览

c - 比较已释放的指针是否会调用 UB?

这似乎是一个相当常见的模式,例如在 hexchat 中(可能无法编译,另请参阅插件文档。另请注意,它hexchat_plugin_get_info并没有永远使用,所以为了简单起见,我将其省略):

in 中的行timer_cb导致 hexchat 将(可能已释放 - 在此示例中肯定已释放,请参阅 中的注释do_ub)指针与另一个指针进行比较,如果您从此处 (plugin.c#L1089, hexchat_set_context) 开始,您将结束在这里 (hexchat.c#L191, is_session)。要调用此代码,/do_ub请在 hexchat 中运行。

相关代码:

这种东西是UB吗?

0 投票
1 回答
248 浏览

python - 如何让 Hexchat 接受 python 3.7+

当我安装 Hexchat 并说我想要 python 插件时,它坚持说我使用 python 3.6 我已经有了 python 3.7。有没有办法让 hexchat 接受这个更高版本?

0 投票
0 回答
185 浏览

python - 如何使 Hexchat 线程安全的 Python 插件?

我尝试为 Hexchat IRC 客户端编写一个简单的 Python 插件。但是,它似乎不是线程安全的,并导致 Hexchat 崩溃。

我读了一些关于线程安全的文章,但我不是开发人员。我无法弄清楚我需要改变什么。你能帮我么?谢谢。

编辑:关于我尝试完成的一些附加信息:插件将是我在这里安装的旧且非常奇怪的安装的临时解决方法。在分公司,我们有一台制造机器。很久以前,有人想监控这台机器。该公司使用 IRC 进行内部通信,他决定设置一台装有 Red Hat Linux 8(是 RHL,不是 RHEL)的机器进行监控。他编写了一个软件,可以从制造机器中检索错误并将它们发布到运行在同一主机上的 IRC 服务器的通道中。

分公司通过VPN连接到我们的办公室,但是分公司的互联网连接速度很慢,而且最近不太稳定。这导致与远程 IRC 服务器的连接有时会在短时间内多次丢失,并且在重新连接后,IRC 服务器会暂时禁止客户端 IP 地址。因此,这些客户端无法监控状态。开发人员还创建了一个 CGI 脚本来取消禁止打开 CGI 脚本 URL 的客户端的 IP。

整个 IRC 主机和在该主机上运行的其他软件大多是一个没有人愿意触摸的黑匣子。出于这个原因,Hexchat 插件似乎是一个很好的客户端解决方法,直到制造机器和整个设置将在明年年底之前被替换(希望)。

当 IRC 服务器封禁和断开 IP 地址时,插件应通过 HTTP 打开 CGI 脚本地址以解除封禁。CGI 脚本只会在您打开 URL 时立即返回“done”,但此时解禁过程尚未完成。此外,它经常失败(~50%)。这就是为什么插件应该等待 10 秒以确保后台进程完成,然后重新连接到服务器。如果禁令仍然有效,例如因为后台进程在服务器上失败,客户端将再次断开连接,再次发生“断开连接”事件,插件的整个过程将重新开始。

抱歉解释太长了,但是我在这里找到的这个旧设置太奇怪了,需要更多的文字来解释我为什么要编写这样一个 Hexchat 插件。然而,插件将简化一些人的生活,直到有一天我们拥有一台带有专业监控解决方案的新制造机器。:-)

0 投票
1 回答
507 浏览

irc - 在 Hexchat 或任何 IRC 客户端中,如果该人不再在网络中,我如何查看我过去与该人的对话?

我相信我可以直接向任何姓名发送消息msg <nick> <message>,但有没有办法实际查看我与该人的消息对话/历史记录?