接到电信总部通知,说根据XX规定,不允许我将域名绑到自己的宽带上,不然就停封帐号
算一算,绑定了好几周,只是最近为了学习org-mode,所以发了一大堆图片,然后就立 刻接到电话了,话说我找他们办事的时候就没这么快。
因此,我在godaddy买了个空间,整个过程还顺利,不一会就将所有的切换到新的空间上了
然后,测下速度,也还算满意,比我自己家里快。然后,接着使用emacs测试下看能否 正常发blog了。
悲剧出现, org2blog在登录的这一步,一直说404错误,而在我的其他的任何一个环境中测试,都很正常
找遍了网络,升级xml-rpc.el,配置服务器这个,配置服务器那个,修改xmlrpc.php,都找不到解决方式, 我甚至都给godaddy发送邮件,询问是不是服务器是不是有什么限制了,趁着等邮件的 时候,研究org2blog的代码调用,研究到xml-rpc.el,打开调试,看最终发送的是什么。然后使用 curl模拟发送,结果没想到curl竟然可以发送成功,然后各种测试,模拟,不管哪个头 标识,curl模拟下来都非常正常,但 emacs死活是不行
我非常的生气,后果很严重,于是,决定看看网络传输的到底是什么数据
下载windump(我在windows机器上,ubuntu 12.04上的那个emacs版本太低,还需要重新 配置),研究windump的使用方式,然后dump数据,分析emacs发送数据和curl的区别,真 的要弄瞎我的近视眼啊
一个字段一个字段的比较下来,都没问题,字段都一样,只是顺序不一样,我觉的这个不是问题
一遍又一遍,甚至我都想要测试回车符有没有影响了,突然,我注意到emacs比curl多了一个字段
“Connection: keep-alive”, 在curl这边,这个值只出现了一次,而在emacs这边,这 个值出现了两次,也就是说,某个地方设置了两次,难道这个?我都在怀疑自己的判断 了。
瞎猫碰死耗子吧,我修改了下xml-rpc.el,结果,它居然正常了。
看来问题就出现在两次”Connection: keep-alive”上,于是,就有了以下的补丁(我用 的是1.6.7,最新的可能是1.6.8)
diff --git a/xml-rpc.el b/xml-rpc.el index 16c4cb1..bb23ecb 100644 --- a/xml-rpc.el +++ b/xml-rpc.el @@ -13,7 +13,7 @@ ;; Keywords: xml rpc network ;; URL: http://emacswiki.org/emacs/xml-rpc.el ;; Maintained-at: http://savannah.nongnu.org/bzr/?group=emacsweblogs -;; Last Modified: <Zhang_Ze 2009-12-15 16:51:25> +;; Last Modified: <--==RIX==-- 2014-05-24 22:29:52> ;; This file is NOT (yet) part of GNU Emacs. @@ -521,7 +521,7 @@ or nil if called with ASYNC-CALLBACK-FUNCTION." (url-request-coding-system xml-rpc-use-coding-system) (url-http-attempt-keepalives t) (url-request-extra-headers (list - (cons "Connection" "keep-alive") + ;(cons "Connection" "keep-alive") (cons "Content-Type" "text/xml; charset=utf-8")))) (when (> xml-rpc-debug 1)