2004年12月10日星期五

ProFTPD的mod_sql_mysql模块的bug

ProFTPD 1.2.10的模块mod_sql_mysql存在bug,在使用PERCALL模式时,即

SQLConnectInfo dbname@host user password percall

时会出错。花了一个晚上的时间看源程序,终于找到了原因。下面是patch文件。

*** mod_sql_mysql.c.orig Sat May 8 11:21:46 2004
--- mod_sql_mysql.c Fri Dec 10 10:45:51 2004
***************
*** 1189,1194 ****
--- 1189,1196 ----
db_conn_t *conn = NULL;
char *unescaped = NULL;
char *escaped = NULL;
+ modret_t *cmr = NULL;
+ cmd_rec *close_cmd;
sql_log(DEBUG_FUNC, "%s", "entering \tmysql cmd_escapestring");
***************
*** 1208,1213 ****
--- 1210,1221 ----
conn = (db_conn_t *) entry->data;
+ cmr = cmd_open(cmd);
+ if (MODRET_ERROR(cmr)) {
+ sql_log(DEBUG_FUNC, "%s", "exiting \tmysql cmd_escapestring");
+ return cmr;
+ }
+ unescaped = cmd->argv[1];
escaped = (char *) pcalloc(cmd->tmp_pool, sizeof(char) * (strlen(unescaped) * 2) + 1);
***************
*** 1222,1227 ****
--- 1230,1240 ----
mysql_escape_string(escaped, unescaped, strlen(unescaped));
#endif
+ /* close the connection, return the data. */
+ close_cmd = _sql_make_cmd( cmd->tmp_pool, 1, entry->name );
+ cmd_close(close_cmd);
+ SQL_FREE_CMD(close_cmd);
+ sql_log(DEBUG_FUNC, "%s", "exiting \tmysql cmd_escapestring");
return mod_create_data(cmd, (void *) escaped);
}

2004年11月30日星期二

Apache防盗链方法

今天给 CTEX 论坛增加了防盗链功能。方法是在保存附件的目录中(也可以放在论坛的根目录中)增加 .htaccess 文件,内容如下:

SetEnvIfNoCase Referer "^http://www\.ctex\.org/" local_ref=1
SetEnvIfNoCase Referer "^http://ctex\.org/" local_ref=1
SetEnvIfNoCase Referer "^http://159\.226\.47\.108/" local_ref=1
<FilesMatch "\.(ibf|ipb|gif|png|jpg|jpeg)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>

然后记得检查 http.conf 中论坛所在目录的设置,增加

AllowOverride FileInfo AuthConfig Limit

以上方法可以禁止用户从其他网站或者直接在浏览器地址栏输入地址的方式访问附件。

这个方法是从 Discuz! 论坛看到的: http://www.discuz.net/viewthread.php?tid=28372

2004年8月19日星期四

中国·白水洋文化旅游节隆重举行

白水洋上人山人海、龙腾狮跃,白水洋畔笑声融融、举城欢庆。由省旅游局和宁德市政府主办,屏南县及市旅游局承办的首届中国·白水洋文化旅游节于8月18日在屏南县隆重开幕。

省人大常务副主任黄贤模、省政协副主席李祖可和部分省、市老领导,国家旅游局和省市有关部门的领导,市领导陈少勇、姚智梅、张经喜、黄朝阳、刘必贵、陈允萍,海内外重点客商, 海外重要乡贤,屏南籍在外企业家等300多人参加了文化节。

来源:鸳鸯溪在线

2004年6月11日星期五

升级Redhat内核到2.4.20-28.7

2004年6月11日升级CTEX.ORG服务器Redhat内核,步骤如下:

从 ftp.redhat.com 下载

  • dev-3.3-4.i386.rpm
  • iptables-1.2.8-8.72.3.i386.rpm
  • iptables-ipv6-1.2.8-8.72.3.i386.rpm
  • kernel-doc-2.4.20-28.7.i386.rpm
  • kernel-headers-2.4.9-34.i386.rpm
  • kernel-source-2.4.20-28.7.i386.rpm
  • modutils-2.4.18-3.7x.i386.rpm
  • modutils-devel-2.4.18-3.7x.i386.rpm
  • kernel-2.4.20-28.7.i686.rpm

执行

  • rpm -e bcm5820
  • rpm -e iptables-ipv6
  • rpm -e iptables
  • rpm -Uvh dev-3.3-4.i386.rpm
  • rpm -Uvh modutils-2.4.18-3.7x.i386.rpm
  • rpm -Uvh modutils-devel-2.4.18-3.7x.i386.rpm
  • rpm -Uvh kernel-2.4.20-28.7.i686.rpm
  • rpm -Uvh kernel-doc-2.4.20-28.7.i386.rpm
  • rpm -Uvh kernel-source-2.4.20-28.7.i386.rpm
  • rpm -Uvh kernel-headers-2.4.9-34.i386.rpm
  • rpm -ivh iptables-1.2.8-8.72.3.i386.rpm
  • rpm -ivh iptables-ipv6-1.2.8-8.72.3.i386.rpm

重新启动,然后用

  • uname -rv

检查内核版本,正确的应该是

2.4.20-28.7 #1 Thu Dec 18 11:31:59 EST 2003

2004年3月1日星期一

OpenWebMail 升级(2.10-2.30)

基本参照1.70到2.10的升级, 改动比较大的配置选项是以下几个方面的:

    • The option has_savedsuid_support has been moved from etc/openwebmail.conf.default to etc/suid.conf
    • dbm options are moved from etc/openwebmail.conf to etc/dbm.conf and etc/dbm.conf.default
    • filelock option is moved from etc/openwebmail.conf to etc/filelock.conf and
      etc/filelock.conf.default
    • remove: enable_setfrom, enable_setfromemail
    • add: enable_loadfrombook, enable_editfrombook, frombook_for_realname_only
    • add options webdisk_allow_untar, webdisk_allow_unzip, webdisk_allow_unrar,
      webdisk_allow_unarj, webdisk_allow_unlzh to openwebmail.conf.default
    • move global setting in auth_xxx.pl into auth_xxx.conf so no more change to script
      itself is required for different cases.