<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>夜耗子</title>
	<atom:link href="http://www.yehaozi.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.yehaozi.com</link>
	<description></description>
	<lastBuildDate>Thu, 01 Jul 2010 03:38:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>cron的一些细节研究</title>
		<link>http://www.yehaozi.com/?p=374</link>
		<comments>http://www.yehaozi.com/?p=374#comments</comments>
		<pubDate>Thu, 01 Jul 2010 03:38:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=374</guid>
		<description><![CDATA[
/etc/cron.deny文件就是用于控制不让哪些用户使用Crontab的功能。

另外在/var/spool下面存在着两个目录cron，anacron。其中cron目录下面有每个用户的自己通过crontab -e增加的crontab的内容。
anacron目录下面是记录的是cron.daily,cron.monthly,cron.weekly的上一次执行的时间。

linux的cron服务是每隔一分钟去读取一次/var/spool/cron，/etc/crontab,/etc/cron.d下面所有的内容。

]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">/etc/cron.deny</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">文件就是用于控制不让哪些用户使用</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">Crontab</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的功能。</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p><span id="more-374"></span>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br /></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">另外在</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">/var/spool</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">下面存在着两个目录</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">cron</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">anacron</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">。</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><br /></span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">其中</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">cron</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">目录下面有每个用户的自己通过</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">crontab -e</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">增加的</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">crontab</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的内容。</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">anacron</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">目录下面是记录的是</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">cron.daily,cron.monthly,cron.weekly</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的上一次执行的时间。</span></p>
<p><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt"></span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" align=left>linux</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">的</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">cron</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">服务是每隔一分钟去读取一次</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">/var/spool/cron</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">，</span><span lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Verdana','sans-serif'; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">/etc/crontab,/etc/cron.d</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">下面所有的内容。</span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=374</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash test</title>
		<link>http://www.yehaozi.com/?p=373</link>
		<comments>http://www.yehaozi.com/?p=373#comments</comments>
		<pubDate>Thu, 01 Jul 2010 03:32:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=373</guid>
		<description><![CDATA[
conditon测试类型对照表



运算符
描述
示例


文件比较运算符 


-e filename
如果 filename存在，则为真 
[ -e /var/log/syslog ]


-d filename
如果 filename为目录，则为真 
[ -d /tmp/mydir ]


-f filename
如果 filename为常规文件，则为真 
[ -f /usr/bin/grep ]


-L filename
如果 filename为符号链接，则为真 
[ -L /usr/bin/grep ]


-r filename
如果 filename可读，则为真 
[ -r /var/log/syslog ]


-w filename
如果 filename可写，则为真 
[ -w /var/mytmp.txt ]


-x filename
如果 filename可执行，则为真 
[ -L /usr/bin/grep ]


filename1-nt filename2
如果 filename1比 filename2新，则为真 
[ /tmp/install/etc/services -nt /etc/services ]


filename1-ot filename2
如果 filename1比 filename2旧，则为真 [...]]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>
<p>conditon测试类型对照表</p>
<table class=zeroBorder cellSpacing=0 cellPadding=3 border=0>
<tbody>
<tr vAlign=top bgColor=#0033cc>
<td style="COLOR: rgb(0,0,0)"><span       style="COLOR: rgb(255,255,0)"><strong>运算符</strong></span></td>
<td style="COLOR: rgb(0,0,0)"><span       style="COLOR: rgb(255,255,0)"><strong>描述</strong></span></td>
<td style="COLOR: rgb(0,0,0)"><span       style="COLOR: rgb(255,255,0)"><strong>示例</strong></span></td>
</tr>
<tr vAlign=top bgColor=#888888>
<td colSpan=3><strong>文件比较运算符 </strong></td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-e <em>filename</em></td>
<td>如果 <em>filename</em>存在，则为真 </td>
<td>[ -e /var/log/syslog ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-d <em>filename</em></td>
<td>如果 <em>filename</em>为目录，则为真 </td>
<td>[ -d /tmp/mydir ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-f <em>filename</em></td>
<td>如果 <em>filename</em>为常规文件，则为真 </td>
<td>[ -f /usr/bin/grep ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-L <em>filename</em></td>
<td>如果 <em>filename</em>为符号链接，则为真 </td>
<td>[ -L /usr/bin/grep ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-r <em>filename</em></td>
<td>如果 <em>filename</em>可读，则为真 </td>
<td>[ -r /var/log/syslog ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-w <em>filename</em></td>
<td>如果 <em>filename</em>可写，则为真 </td>
<td>[ -w /var/mytmp.txt ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-x <em>filename</em></td>
<td>如果 <em>filename</em>可执行，则为真 </td>
<td>[ -L /usr/bin/grep ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>filename1</em>-nt <em>filename2</em></td>
<td>如果 <em>filename1</em>比 <em>filename2</em>新，则为真 </td>
<td>[ /tmp/install/etc/services -nt /etc/services ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>filename1</em>-ot <em>filename2</em></td>
<td>如果 <em>filename1</em>比 <em>filename2</em>旧，则为真 </td>
<td>[ /boot/bzImage -ot arch/i386/boot/bzImage ]</td>
</tr>
<tr vAlign=top bgColor=#888888>
<td colSpan=3><strong>字符串比较运算符 </strong>（请注意引号的使用，这是防止空格扰乱代码的好方法） </td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-z <em>string</em></td>
<td>如果 <em>string</em>长度为零，则为真 </td>
<td>[ -z "$myvar" ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td>-n <em>string</em></td>
<td>如果 <em>string</em>长度非零，则为真 </td>
<td>[ -n "$myvar" ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>string1</em>= <em>string2</em></td>
<td>如果 <em>string1</em>与 <em>string2</em>相同，则为真 </td>
<td>[ "$myvar" = "one two three" ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>string1</em>!= <em>string2</em></td>
<td>如果 <em>string1</em>与 <em>string2</em>不同，则为真 </td>
<td>[ "$myvar" != "one two three" ]</td>
</tr>
<tr vAlign=top bgColor=#888888>
<td colSpan=3><strong>算术比较运算符 </strong></td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>num1</em>-eq <em>num2</em></td>
<td>等于</td>
<td>[ 3 -eq $mynum ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>num1</em>-ne <em>num2</em></td>
<td>不等于</td>
<td>[ 3 -ne $mynum ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>num1</em>-lt <em>num2</em></td>
<td>小于</td>
<td>[ 3 -lt $mynum ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>num1</em>-le <em>num2</em></td>
<td>小于或等于</td>
<td>[ 3 -le $mynum ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>num1</em>-gt <em>num2</em></td>
<td>大于</td>
<td>[ 3 -gt $mynum ]</td>
</tr>
<tr vAlign=top bgColor=#eeeeee>
<td><em>num1</em>-ge <em>num2</em></td>
<td>大于或等于</td>
<td>[ 3 -ge $mynum ]</td>
</tr>
</tbody>
</table>
<p><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=373</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网络出现&#8221;ip冲突&#8221;的原理与解决方法</title>
		<link>http://www.yehaozi.com/?p=372</link>
		<comments>http://www.yehaozi.com/?p=372#comments</comments>
		<pubDate>Thu, 01 Jul 2010 03:32:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Others]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=372</guid>
		<description><![CDATA[为什么会出现&#8221;ip冲突&#8221;?&#160;&#160;当主机 A启动的时候会发送ARP查询报文(请求网关的MAC地址),此报文以广播的方式发送,导致局域网类所有处于开机状态的主机都会收到,根据ARP协议,每个主机收到ARP请求报文的时候会更新自己的ARP CACHE,但是在更新之前会检查源主的IP.当发现报文广播的IP地址与自己相同,但是对应的MAC地址和本主机不同,那么就会出现&#8221;ip冲突&#8221;,说白了就是同一个IP对应了多个MAC地址.从而出现了&#8221;WINDOWS 系统错误&#8221;&#160; &#160; 现在假定主机A,主机B,共同抢一个IP（222.199.197.123），网关为C，现在分析为什么不能上网，这需要一定的TCP/IP协议知识&#160;&#160;&#160; 当主机A与外网段通信，数据要发送到网关，根据以太网协议，首先会发送ARP查询报文，询问网关的MAC地址，查询报文是以广播的形式发送，这就导致B主机出现第一个&#8221;ip冲突&#8221;提示。网关收到后向A发送响应报文，这时A知道了网关C的MAC地址,这样就可以通讯了，可是主机B不干了，就会发送ARP 报文“我才是222.199.197.123”并在报文中说明了主机B的MAC地址，这是主机A就会出现&#8221;ip冲突&#8221;。这样循环着，就导致了没完没了的&#8221;ip冲突&#8221;。为什么&#8221;ip冲突&#8221;时无法进行通讯（即上网）?&#160; &#160; 主机A，B都知道网关的MAC(网关回复了ARP请求),于是数据包能安全到达网关，并到达外网的服务器，但是数据包发回来的时候到达网关，网关就对网段发送ARP查询报文就问IP（222.199.197.123）的MAC地址是什么，这就导致了主机A,主机B，抢着回答，因为对应一个IP就只能有一个 MAC地址与其对应，同时这个映射可以被 ARP报文修改，这就要看网关在要发送这个数据报的时候谁的ARP响应报文到达。但是这个数据包如果时A的那么发给了B对B来说就会丢弃，同理把本发给B 的发给了A对A来说就会丢弃。所以就不能上网了。其实说白了主机A,主机B就时个竞争的关系了，那么当你得到了IP输入了帐号，别人来抢了怎么办呢？我介绍一种柔和的办法，ping －t 网关的IP这会不断的ping 网关，其实就时反复的和网关说我才是IP（222.199.197.123）我做过测试采用这种方法会出现的ip冲突的提示，但是你可以上网，至少ｐｐｌｉｖｅ很流畅，因为网关就认你是 IP（222.199.197.123）。
]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId><span style="WORD-SPACING: 0px; FONT: 14px/22px Verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: collapse; orphans: 2; widows: 2"><strong style="FONT-WEIGHT: bold; LINE-HEIGHT: normal; FONT-STYLE: normal; WORD-WRAP: break-word">为什么会出现&#8221;ip冲突&#8221;?</strong><span id="more-372"></span><br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">&nbsp;<wbr>&nbsp;<wbr>当主机 A启动的时候会发送ARP查询报文(请求网关的MAC地址),此报文以广播的方式发送,导致局域网类所有处于开机状态的主机都会收到,根据ARP协议,每个主机收到ARP请求报文的时候会更新自己的ARP CACHE,但是在更新之前会检查源主的IP.当发现报文广播的IP地址与自己相同,但是对应的MAC地址和本主机不同,那么就会出现&#8221;ip冲突&#8221;,说白了就是同一个IP对应了多个MAC地址.从而出现了&#8221;WINDOWS 系统错误&#8221;<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word"><br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">&nbsp;<wbr> &nbsp;<wbr> 现在假定主机A,主机B,共同抢一个IP（222.199.197.123），网关为C，现在分析为什么不能上网，这需要一定的TCP/IP协议知识<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">&nbsp;&nbsp;&nbsp; 当主机A与外网段通信，数据要发送到网关，根据以太网协议，首先会发送ARP查询报文，询问网关的MAC地址，查询报文是以广播的形式发送，这就导致B主机出现第一个&#8221;ip冲突&#8221;提示。网关收到后向A发送响应报文，这时A知道了网关C的MAC地址,这样就可以通讯了，可是主机B不干了，就会发送ARP 报文“我才是222.199.197.123”并在报文中说明了主机B的MAC地址，这是主机A就会出现&#8221;ip冲突&#8221;。这样循环着，就导致了没完没了的&#8221;ip冲突&#8221;。<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word"><br style="LINE-HEIGHT: normal; WORD-WRAP: break-word"><strong style="FONT-WEIGHT: bold; LINE-HEIGHT: normal; FONT-STYLE: normal; WORD-WRAP: break-word">为什么&#8221;ip冲突&#8221;时无法进行通讯（即上网）?<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word"></strong>&nbsp;<wbr> &nbsp;<wbr> 主机A，B都知道网关的MAC(网关回复了ARP请求),于是数据包能安全到达网关，并到达外网的服务器，但是数据包发回来的时候到达网关，网关就对网段发送ARP查询报文就问IP（222.199.197.123）的MAC地址是什么，这就导致了主机A,主机B，抢着回答，因为对应一个IP就只能有一个 MAC地址与其对应，同时这个映射可以被 ARP报文修改，这就要看网关在要发送这个数据报的时候谁的ARP响应报文到达。但是这个数据包如果时A的那么发给了B对B来说就会丢弃，同理把本发给B 的发给了A对A来说就会丢弃。所以就不能上网了。其实说白了主机A,主机B就时个竞争的关系了，<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word"><br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">那么当你得到了IP输入了帐号，别人来抢了怎么办呢？<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">我介绍一种柔和的办法，<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">ping －t 网关的IP<br style="LINE-HEIGHT: normal; WORD-WRAP: break-word">这会不断的ping 网关，其实就时反复的和网关说我才是IP（222.199.197.123）我做过测试采用这种方法会出现的<a style="COLOR: rgb(79,103,103); LINE-HEIGHT: normal; TEXT-DECORATION: none; WORD-WRAP: break-word" name=baidusnap0></a><b style="COLOR: black; LINE-HEIGHT: normal; BACKGROUND-COLOR: rgb(255,255,102); WORD-WRAP: break-word">ip冲突的</b>提示，但是你可以上网，至少ｐｐｌｉｖｅ很流畅，因为网关就认你是 IP（222.199.197.123）。</span><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=372</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>postfix master.cf文件中${extension}的意思</title>
		<link>http://www.yehaozi.com/?p=371</link>
		<comments>http://www.yehaozi.com/?p=371#comments</comments>
		<pubDate>Mon, 21 Jun 2010 09:30:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=371</guid>
		<description><![CDATA[
一直忘记master.cf里面的${extension}代表的意思，今天又再找一次，记录在下方
An example using address extensions (ie user+extension@domain.com (don&#8217;t forget to define the proper recipient_delimiter in Postfix&#8217;s main.cf)) to deliver to the folder &#8216;extension&#8217; in your maildir (If you wish to preserve the case of ${extension}, remove the &#8216;hu&#8217; flags, and be sure to utilize Modifiers in your dovecot.conf for mail locations and other configuration parameters [...]]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>
<p class=line862>一直忘记master.cf里面的${extension}代表的意思，今天又再找一次，记录在下方</p>
<p class=line862>An example using address extensions (ie <a class=mailto href="mailto:user+extension@domain.com"><font color=#0000ff>user+extension@domain.com</font></a> (don&#8217;t forget to define the proper recipient_delimiter in Postfix&#8217;s main.cf)) to deliver to the folder &#8216;extension&#8217; in your maildir (If you wish to preserve the case of ${extension}, remove the &#8216;hu&#8217; <a class=http href="http://www.postfix.org/pipe.8.html"><font color=#0000ff>flags</font></a>, and be sure to utilize <a href="http://wiki.dovecot.org/Variables"><font color=#0000ff>Modifiers</font></a> in your dovecot.conf for mail locations and other configuration parameters that are expecting lower case): <span class=anchor id=line-42></span><span class=anchor id=line-43></span></p>
<p><span id="more-371"></span>
<p class=line867><span class=anchor id=line-44></span><span class=anchor id=line-45></span><span class=anchor id=line-46></span><span class=anchor id=line-47></span><span class=anchor id=line-48></span><span class=anchor id=line-49></span><span class=anchor id=line-50></span></p>
<pre><span class=anchor id=line-1-4></span>dovecot unix    -       n       n       -       -      pipe<span class=anchor id=line-2-3></span>  flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}</pre>
<p><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=371</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>在安装linux时截屏方法</title>
		<link>http://www.yehaozi.com/?p=370</link>
		<comments>http://www.yehaozi.com/?p=370#comments</comments>
		<pubDate>Mon, 21 Jun 2010 09:29:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=370</guid>
		<description><![CDATA[shift+printscreen
&#160;
保存在/root/anaconda_screenshots/目录下
&#160;

]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>shift+printscreen</div>
<div>&nbsp;</div>
<div>保存在/root/anaconda_screenshots/目录下</div>
<div>&nbsp;</div>
<div><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=370</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dropbox</title>
		<link>http://www.yehaozi.com/?p=369</link>
		<comments>http://www.yehaozi.com/?p=369#comments</comments>
		<pubDate>Mon, 31 May 2010 09:57:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Others]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=369</guid>
		<description><![CDATA[174.36.30.67 dropbox.com174.36.30.71 www.dropbox.com75.101.129.115 dl.dropbox.com75.101.159.151 dl-web.dropbox.com174.36.30.67 forums.dropbox.com
]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>174.36.30.67 dropbox.com<br />174.36.30.71 www.dropbox.com<br />75.101.129.115 dl.dropbox.com<br />75.101.159.151 dl-web.dropbox.com<br />174.36.30.67 forums.dropbox.com<br /><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=369</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>windows一机访问多个网络</title>
		<link>http://www.yehaozi.com/?p=365</link>
		<comments>http://www.yehaozi.com/?p=365#comments</comments>
		<pubDate>Wed, 26 May 2010 06:41:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Others]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=365</guid>
		<description><![CDATA[PS:最近发现经常有网络朋友,加QQ问如果设置一机访问多个网络的方法,大家需要,我就做个教程吧
机器有两块网卡，接到两台交换机上 internet地址：218.22.123.123，子网掩码：255.255.255.0，网关：218.22.123.254 企业内部网地址：10.128.123.123，子网掩码：255.255.255.0，网关：10.128.123.254 

如果按正常的设置方法设置每块网卡的ip地址和网关，再cmd下使用route print查看时会看到 Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 218.22.123.254 218.22.123.123 20 0.0.0.0 0.0.0.0 10.128.123.254 10.128.123.123 1 即指向0.0.0.0的有两个网关，这样就会出现路由冲突，两个网络都不能访问。
&#160;
要实现同时访问两个网络就要用到route命令 第一步:删除所有0.0.0.0的路由 
&#160;&#160;&#160;&#160;route delete 0.0.0.0第二步:添加0.0.0.0网络路由(外网)
&#160;&#160;&#160;&#160;route -p add 0.0.0.0 mask 0.0.0.0 218.22.123.254
第三步:添加10.0.0.0网络路由
&#160;&#160;&#160;&#160;route -p&#160;add 10.0.0.0 mask 255.0.0.0 10.128.123.254
这时就可以同时访问两个网络了，但碰到一个问题，使用上述命令添加的路由在系统重新启动后会自动丢失，怎样保存现有的路由表呢？ 在winxp下可以使用route add -p 添加静态路由，即重启后，路由不会丢失.
注意:使用前要在tcp/ip设置里去掉接在企业内部网的网卡的网关
上面的命令是在这边输入的

]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>PS:最近发现经常有网络朋友,加QQ问如果设置一机访问多个网络的方法,大家需要,我就做个教程吧</div>
<div>机器有两块网卡，接到两台交换机上 <br />internet地址：218.22.123.123，子网掩码：255.255.255.0，网关：218.22.123.254 <br />企业内部网地址：10.128.123.123，子网掩码：255.255.255.0，网关：10.128.123.254 </div>
<p><span id="more-365"></span>
<div>如果按正常的设置方法设置每块网卡的ip地址和网关，再cmd下使用route print查看时会看到 <br />Network Destination Netmask Gateway Interface Metric <br />0.0.0.0 0.0.0.0 218.22.123.254 218.22.123.123 20 <br />0.0.0.0 0.0.0.0 10.128.123.254 10.128.123.123 1 <br />即指向0.0.0.0的有两个网关，这样就会出现路由冲突，两个网络都不能访问。</div>
<div>&nbsp;</div>
<div>要实现同时访问两个网络就要用到route命令 <br />第一步:删除所有0.0.0.0的路由 </div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;route delete 0.0.0.0<br />第二步:添加0.0.0.0网络路由(外网)</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;route -p add 0.0.0.0 mask 0.0.0.0 218.22.123.254</div>
<div>第三步:添加10.0.0.0网络路由</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;route -p&nbsp;add 10.0.0.0 mask 255.0.0.0 10.128.123.254</div>
<div>这时就可以同时访问两个网络了，但碰到一个问题，使用上述命令添加的路由在系统重新启动后会自动丢失，怎样保存现有的路由表呢？ <br />在winxp下可以使用route add -p 添加静态路由，即重启后，路由不会丢失.</div>
<div><font color=#ff0000>注意:使用前要在tcp/ip设置里去掉接在企业内部网的网卡的网关</font></div>
<div><font color=#ff0000>上面的命令是在这边输入的</font></div>
<div><img src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-4d2ec3f297ace14cebcd9570cfdf7d95_20886000.png"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=365</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>java.lang.OutOfMemoryError: Java heap space</title>
		<link>http://www.yehaozi.com/?p=364</link>
		<comments>http://www.yehaozi.com/?p=364#comments</comments>
		<pubDate>Wed, 26 May 2010 05:40:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[邮局]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=364</guid>
		<description><![CDATA[问题：&#160;&#160;&#160; java.lang.OutOfMemoryError: Java heap space&#160;
&#160;
分析:&#160;&#160;&#160;&#160; Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.&#160;&#160;&#160; JVM在启动的时候会自动设置Heap size的值， 其初始空间(即-Xms)是物理内存的1/64，最大空间(-Xmx)是物理内存的1/4。&#160;&#160;&#160; 可以利用JVM提供的-Xmn -Xms -Xmx等选项可 进行设置。&#160;&#160;&#160; Heap size 的大小是Young Generation 和Tenured Generaion 之和。&#160;&#160;&#160;&#160; 提示：在JVM中如果98％的时间是用于GC且可用的Heap size 不足2％的时候将抛出此异常信息。&#160;&#160;&#160; 提示：Heap Size 最大不要超过可用物理内存的80％，一般的要将-Xms和-Xmx选项设置为相同，而-Xmn为1/4的-Xmx值。&#160;
&#160;
解决方法：&#160;&#160;&#160; 手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo &#8220;Using CATALINA_BASE: $CATALINA_BASE&#8221;”上面加入以下行：&#160;&#160;&#160;&#160; JAVA_OPTS=&#8221;-server -Xms800m -Xmx800m&#8221;
]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId>问题：<br />&nbsp;&nbsp;&nbsp; java.lang.OutOfMemoryError: Java heap space&nbsp;
<div>&nbsp;</div>
<p>分析:&nbsp;<br />&nbsp;&nbsp;&nbsp; Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.<span id="more-364"></span><br />&nbsp;&nbsp;&nbsp; JVM在启动的时候会自动设置Heap size的值， 其初始空间(即-Xms)是物理内存的1/64，最大空间(-Xmx)是物理内存的1/4。<br />&nbsp;&nbsp;&nbsp; 可以利用JVM提供的-Xmn -Xms -Xmx等选项可 进行设置。<br />&nbsp;&nbsp;&nbsp; Heap size 的大小是Young Generation 和Tenured Generaion 之和。&nbsp;<br />&nbsp;&nbsp;&nbsp; 提示：在JVM中如果98％的时间是用于GC且可用的Heap size 不足2％的时候将抛出此异常信息。<br />&nbsp;&nbsp;&nbsp; 提示：Heap Size 最大不要超过可用物理内存的80％，一般的要将-Xms和-Xmx选项设置为相同，而-Xmn为1/4的-Xmx值。&nbsp;
<div>&nbsp;</div>
<p>解决方法：<br />&nbsp;&nbsp;&nbsp; 手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo &#8220;Using CATALINA_BASE: $CATALINA_BASE&#8221;”上面加入以下行：&nbsp;<br />&nbsp;&nbsp;&nbsp; JAVA_OPTS=&#8221;-server -Xms800m -Xmx800m&#8221;<br /><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=364</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>perdition文档</title>
		<link>http://www.yehaozi.com/?p=363</link>
		<comments>http://www.yehaozi.com/?p=363#comments</comments>
		<pubDate>Wed, 26 May 2010 05:39:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[邮局]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=363</guid>
		<description><![CDATA[Introduction and Overview 

Perdition is a fully featured POP3[6] and IMAP4[1] proxy server. It is able to handle Plain-Text, SSL and TLS connections and connect end-users to a real-server based on a database lookup. Perdition supports modular based database access. The API for modules is open, allowing arbitrary modules to be written to allow access [...]]]></description>
			<content:encoded><![CDATA[<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt">Introduction and Overview <o:p></o:p></span></p>
<p><span id="more-363"></span>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt">Perdition is a fully featured POP3[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">6</span></a>] and IMAP4[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">1</span></a>] proxy server. It is able to handle Plain-Text, SSL and TLS connections and connect end-users to a real-server based on a database lookup. Perdition supports modular based database access. The API for modules is open, allowing arbitrary modules to be written to allow access to any data store. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt">Perdition has many uses. Including, creating large mail systems where an end-user&#8217;s mailbox may be stored on one of several hosts, integrating different mail systems together, migrating between different email infrastructures, and bridging plain-text, SSL and TLS services. It can also be used as part of a firewall. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 373.5pt; PADDING-TOP: 0cm"     width=498>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span><img height=219 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image001.gif"       width=492 border=0 v:shapes="图片_x0020_1"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 373.5pt; PADDING-TOP: 0cm"     width=498>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 1: Basic   Architecture<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition handles the authentication phase of end-users&#8217; connections. More specifically, when a connection is made to perdition in POP3 mode, it reads the USER and PASS commands and then checks its popmap to find where the user&#8217;s connection should be forwarded. A connection to the real-server is made and perdition enters the USER and PASS commands. If authentication is successful then perdition pipes data between the client and the real-server. If authentication fails then the real-server server connection is closed and an error is returned to the end-user. Similarly in IMAP4 mode, perdition accepts the LOGIN command and passes the username and password supplied onto the real-server specified in the popmap. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">When perdition is piping information between the end-user and real-server it does not interpret the data, it merely reads bytes from the end-user and sends then to the real-server and vice versa. This means that perdition only understands the POP3 and IMAP4 commands that are used in the authentication phase. It does not interpret the communication between the end-user and the real-server. This greatly reduces the amount of the POP3 and IMAP4 protocol that perdition needs to understand, reducing the complexity of the code. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt; mso-fareast-font-family: System">Plain-Text, SSL and TLS <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 372.75pt; PADDING-TOP: 0cm"     width=497>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span><img height=252 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image002.gif"       width=491 border=0 v:shapes="图片_x0020_2"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 372.75pt; PADDING-TOP: 0cm"     width=497>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 2: Plain-Text, SSL and TLS       Modes<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition can independently accept plain-text, SSL and TLS[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">7</span></a>] connections from end-users and make plain-text, SSL or TLS connections to real-servers. In this way perdition can be used to bridge between plain-text, SSL and TLS services. For example, suppose a system is running a POP daemon that does not support SSL, but the end user is downloading mail from an SSL enabled client. By running perdition, listening for SSL connections, on the same or another box, and connecting to the plain-text only daemon an SSL POP service can be provided to end-users. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt; mso-fareast-font-family: System">Popmap <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">The database that perdition uses to determine which server an end-user&#8217;s connection should be forwarded to is called the <i>popmap</i>. The lookup functions for the popmap are provided by a a map-library whose symbols are loaded at run-time. By creating different map-libraries it is possible for perdition to lookup user information using any database source. The current revision provides map-libraries to resolve lookups using LDAP, ODBC, MySQL, PostgreSQL, GDBM, Berkeley DB, POSIX Regular Expression and NIS. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Input <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">The key for a popmap lookup is the username provided by the end-user. The username supplied by the user is referred to as the long</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username. The portion of the long</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username before the run-time configurable domain</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">delimiter, an at-symbol (&#8216;@&#8217;) by default, is referred to as the short</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username. The portion of the long</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username after the domain delimiter is referred to as the domain. Thus, if the domain</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">delimiter is omitted, the short</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username is the same as the long</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username and there is no domain. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 321.75pt; PADDING-TOP: 0cm"     width=429>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none"       align=left><span><img height=72 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image003.gif"       width=423 border=0 v:shapes="图片_x0020_3"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 321.75pt; PADDING-TOP: 0cm"     width=429>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 3: Username   Components<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Query Key <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition is able to build up a query key using the components provided in the long</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username by the end-user and the source and destination IP address of the connection. The query key is built up by using a format-string which contains a combination of string-literals and escape sequences. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 262.5pt; PADDING-TOP: 0cm"     width=350>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none"       align=left><span><img height=233 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image004.gif"       width=344 border=0 v:shapes="图片_x0020_4"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 262.5pt; PADDING-TOP: 0cm"     width=350>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 4: Query Key Escape       Sequences<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Multiple keys may be provided. A comma (&#8216;,&#8217;) is used to delimit keys. Each key is queried in order, and the first valid result retrieved is used. For example, search for the short</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username, domain</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">delimiter and destination IP address in the database. If this fails search for the short</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">username, domain</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">delimiter and the string &#8220;default&#8221;. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">\u\D\I,\u\Ddefault<o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Thus, perdition is able to search the database in a very flexible manner. This flexibility allows perdition to be deployed for a wide range of applications. As discussed in the applications section. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Result <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">The result of the query is the real-server to which a connection should be made. Optionally, the server-name may be suffixed with a colon (&#8216;:&#8217;) and the port to connect to. The server may also be prepended with a username and the domain delimiter. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 414.75pt; PADDING-TOP: 0cm"     width=553>
<p class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none"       align=left><span><img height=117 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image005.gif"       width=547 border=0 v:shapes="图片_x0020_5"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 414.75pt; PADDING-TOP: 0cm"     width=553>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 5: Result   Components<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">If a username is provided, then it may be used as the username to log into the real-server. In this way usernames may be translated. This is useful for avoiding user-space collisions when integrating different mail systems together. If a port is provided then it will override the default port for real-server connections that is set at run-time. This allows for situations where different real-servers may be listening on different ports for some reason. A server must always be supplied as part of the result. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">No Result <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">If no result is returned from the database all is not lost. A comma delimited list of default servers may be supplied. Each server in the list has the name of the server, optionally followed by a colon (:) and the port to connect to. For example: <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">pop0.vergenet.net:110,pop1.vergenet.net:110 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">A username cannot be provided as part of the default server, thus username translation cannot take place when the default server is used. These servers will be selected in a round-robin fashion. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">It may be desirable for all connections to be forwarded to the default servers. In this case a database lookup is not necessary. Rather than make queries to an empty database, by specifying the empty string (&#8220;&#8221;) as the map-library to use, no database lookup will be attempted. By providing a single default server and no map-library it is possible to forward all connections to the same real-server. This is useful for providing SSL access to an otherwise plain-text only POP or IMAP daemon. It is also useful for proxying connections as part of a firewall. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt; mso-fareast-font-family: System">POP/IMAP Before SMTP <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Generally speaking it is undesirable to allow hosts outside of the local network to use a mail server as a mail relay. Doing so provides an open relay that can be used by third parties to send unsolicited email. For this reason many mail servers are configured not to relay mail, other than from a very select list of IP addresses, often the local network and nothing else. However, in some situations it is desirable to allow end-users outside of the local network to relay email through a server. For example, an employee who is on the road using dial-up connections. Probably the best solution to this problem is to have clients authenticate themselves when sending mail using SMTP AUTH[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">5</span></a>]. If this is not possible, POP/IMAP before SMTP may be used. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">POP/IMAP before SMTP works by recording the IP address of end-users that are authenticated for POP or IMAP access. These IP addresses are added to a list of IP addresses that are allowed to relay mail. Typically IP addresses on this list are valid for a window of time and are removed from the list once this window expires. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition logs connections in three phases to allow it to work in conjunction with POP/IMAP before SMTP software which monitors logs and maintains a list of IP addresses that may be relayed. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">When a user connects: <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">&lt;source_ip_address&gt;[inetd_pid=&lt;pid&gt;] <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">When a user is authenticated: <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Auth: &lt;source_ip_address&gt; user=&lt;username&gt; server=&lt;servername&gt; port=&lt;port&gt; status=failed|ok <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">When a user disconnects: <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Close: &lt;source_ip_address&gt; user=&lt;username&gt; received=&lt;bytes&gt; sent=&lt;bytes&gt; <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Given that IMAP connections may last for a very long time, many mail readers keep an IMAP connection open until the user quits the mail reader. Thus the connection may be open for much longer than the user&#8217;s IP address will last in the POP/IMAP before SMTP relay list. For this reason perdition can be configured to periodically reissue the &#8220;Auth&#8221; log. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition also provides a POP/IMAP before SMTP daemon, perdition-pbs. This works by monitoring the system logs for the &#8220;Auth&#8221; line. It adds the IP addresses to a Berkeley database. Periodically entries are expired from this database. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition-PBS can be used in conjunction with sendmail by adding a rule to sendmail.cf that is able to use this database as a list of hosts to relay mail from. It can also be used in conjunction with qmail by using a wrapper for qmail-smtp which sets the RELAYCLIENT environment variable if a connection is received from an IP address in the database. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">It is thought that by using TDBrepl[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">8</span></a>], a simple database replication system built on top of TDB[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">2</span></a>], instead of Berkeley DB for the back-end database it is possible to use perdition-pbs in a distributed environment. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt; mso-fareast-font-family: System">Applications <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">The original design and implementation of perdition was intended to allow a mail service to grow beyond a single machine. However, it soon became apparent that it could be used to solve a variety of problems. Today its features support many different applications. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Scaling <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">As the number of end-users accessing an email system, and the amount of email that they are sending and receiving increases it is often necessary to grow an email system beyond a single machine. There are many different ways of achieving this. One is to divide the end-users between different mail servers[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">4</span></a>]. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 373.5pt; PADDING-TOP: 0cm"     width=498>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span><img height=240 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image006.gif"       width=492 border=0 v:shapes="图片_x0020_6"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 373.5pt; PADDING-TOP: 0cm"     width=498>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 6: Using Perdition to Scale a Mail       Service<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">For example, suppose that there are three mail servers. And that end-users are split between the mail servers based on a simple match on the first letter of their login-name. end-users a-h are allocated to real-server0, i-p to real-server1 and q-z to real-server2. To retrieve their email, end-users may connect to the perdition director which proxies their connection to the real server that their mail is on. This can be done simply by using a regular expression popmap on the perdition-director. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">^[a-h]: real-server0<o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">^[i-p]: real-server1<o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">^[q-z]: real-server2<o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">This method allows additional real-servers to be added to the system without end-users needing to change their settings as they always connect to the perdition-director. If additional directing capacity is required, then more perdition-directors may be added and load balanced using Layer 4 Switching or Round-Robin DNS. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Integration <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">When organisations merge it may be desirable to consolidate email serving infrastructure. Unfortunately there is often username clashes when doing this. Perdition is able to resolve this problem by distinguishing between users based on either a domain-name supplied by an end-user or the IP address that the end-user connects to. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">User-Supplied Domain Name <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Users may supply a domain name when connecting to the perdition-director. This is done by following their username with a domain delimiter and the domain name. Perdition can use this domain to distinguish between two end-users from different domains with the same username and can map the username such that on the underlying real-server the users have different usernames. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">For example, bob@foo.com becomes bob1 and bob@bar.com becomes bob2. Perdition then opens up a connection to the real-server, which could be the same host as the perdition-director and accesses the mapped user account. This system works particularly well in an environment where end-users already have their mail-clients configured to include the domain name as part of their login name. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition-Director with Multiple IP Addresses <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Another approach to identifying end-users based on their domain is to configure the perdition-director with multiple IP addresses. Thus, in DNS a different IP address can be used for each domain. The IP address that an end-user connects to can be used as part of the query key for the database lookup. Thus is bob@foo.com connects to pop3.foo.com, then the database lookup could be bob@10.0.0.1. Similarly the lookup for bob@bar.com could be bob@10.0.0.2. Again, this can be used to map the two Bob&#8217;s to a unique username and connect to the corresponding real-server. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 334.95pt; PADDING-TOP: 0cm"     width=447>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span><img height=208 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image007.gif"       width=349 border=0 v:shapes="图片_x0020_7"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 334.95pt; PADDING-TOP: 0cm"     width=447>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 7: Perdition-Director with Multiple IP       Addresses<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">This approach is particularly useful in an environment where end-users have not already set up their mail-clients to supply their domain as part of their login information. End-users continue to access their email using the same POP or IMAP server as before. Perdition is able to direct their request to the correct mailbox based on information about the connection itself. The disadvantage of this approach is that it requires each domain to have a separate IP address for its POP and IMAP servers. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Essentially, having the user supply a domain name is equivalent to an HTTP name-based virtual host[<a href="http://www.vergenet.net/linux/perdition/perdition_paper/html/perdition_paper.html"><span style="COLOR: blue">3</span></a>]. While configuring perdition with multiple IP addresses is equivalent to an IP-based virtual-host. Both techniques may be used simultaneously on the same perdition-director for different domains. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Migration <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Sometimes when new mail infrastructure is deployed it is useful to migrate end-users gradually from the existing system to the new system. Using perdition this can be done without end-users needing to change their settings. <o:p></o:p></span></p>
<div align=center>
<table class=MsoNormalTable style="BORDER-COLLAPSE: collapse; mso-table-layout-alt: fixed; mso-padding-top-alt: 0cm; mso-padding-bottom-alt: 0cm" cellSpacing=0 cellPadding=0 border=0>
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 419.8pt; PADDING-TOP: 0cm"     width=560>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span><img height=224 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image008.gif"       width=720 border=0 v:shapes="图片_x0020_8"><o:p></o:p></span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<td     style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; PADDING-BOTTOM: 0cm; WIDTH: 419.8pt; PADDING-TOP: 0cm"     width=560>
<p class=MsoNormal style="TEXT-ALIGN: center; mso-layout-grid-align: none"       align=center><span>Figure 8: Using Perdition to Migrate a Mail       Service<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Suppose that an organisation has a POP server, pop3.foo.com and want to gradually move end-users over to a new server. This can be done by having perdition set up with the IP address of pop3.foo.com and the new and old servers set up as real servers. The popmap on the perdition director can be used to determine which end-users have their connections forwarded to the old server and which end-users have their connections forwarded to the new server. Once all the end-users have been migrated to the new server, the perdition director can be removed. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Firewall <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition can be used as part of a firewall to proxy outgoing POP and IMAP requests. End-users&#8217; connections can be forwarded to an external real-server according to a popmap. Alternatively, perdition can be configured to use the domain supplied by the end-user&#8217;s mail-client as the real server to connect to. For example, if an end-user connects to the perdition director and logs-in as bob@pop3.foo.com, then perdition will connect the user to pop3.foo.com. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition can also be configured to authenticate the user, thus limiting access. This is, however, extremely limited as the same username and password is used to authenticate with both perdition and the real server. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">It is important to note, that once the user is authenticated with the real-server, perdition does not interpret the POP or IMAP commands sent by the end-user&#8217;s mail-client or the responses sent by the real-server. Thus, it cannot be used to protect real-servers from malicious end-users or vice versa. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt; mso-fareast-font-family: System">Availability <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition is implemented in C. It is available under the terms of the GNU General Public Licence from http://www.vergenet.net/linux/perdition/. It is also distributed as part of Debian GNU/Linux. The primary development platform for perdition is Linux, although it is known to work well on other Unixes including Sun Solaris and FreeBSD. Contributions and bug reports are always more than welcome. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 18.0pt; mso-fareast-font-family: System">Conclusion <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Perdition provides a flexible way to proxy POP and IMAP connections from end-users to one or more real-servers. Pipex, an ISP in the United Kingdom, WorldCom Europe, Belgacom Skynet, the largest ISP in Belgium, Ohio State University, SoVerNet, and ISP in Vermont, USA, Fastmail.FM, and NetCologe, and ISP in Colonge, Germany are using Perdition as a front-end to multiple real-servers. GPS-Technik in Switzerland and Osprey Network Technologies in Kansas, USA are using perdition to translate account names for end-users when integrating mail services together. These systems use a range of database-backends, including LDAP, MySQL and Berkely DB. The size of these deployments range from 2,500 to in excess of 250,000 accounts with up to 8 real-servers. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Bibliography <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">1 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">M.</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Crispin. <br />Rfc 1730: Internet message access protocol &#8211; version 4, December 1994. <br />http://www.ietf.org/rfc/rfc1730.txt. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">2 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Andrew</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Tridgel et</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">al. <br />Tdb &#8211; trivial database. <br />http://sourceforge.net/projects/tdb/. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">3 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">The Apache</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Software Foundation. <br />Apache virtual host documentation. <br />http://httpd.apache.org/docs/vhosts/. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">4 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Simon Horman. <br />High capacity email, November 1999. <br />http://vergenet.net/linux/mail_farm/. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">5 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">J.</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Myers. <br />Rfc 2554: Smtp service extension for authentication, March 1999. <br />http://www.ietf.org/rfc/rfc2554.txt. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">6 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">J.</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Myers and M.</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Rose. <br />Rfc 1939: Post office protocol &#8211; version 3, May 1996. <br />http://www.ietf.org/rfc/rfc1939.txt. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">7 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">C.</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体; mso-fareast-font-family: 宋体; mso-ascii-font-family: 宋体">&nbsp;</span><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Newman. <br />Rfc 2595: Using tls with imap, pop3 and acap, June 1999. <br />http://www.ietf.org/rfc/rfc2559.txt. <o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">8 <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN-LEFT: 36pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Liam Widdowson. <br />Tdbrepl &#8211; the trivial database replication system. <br />http://tdbrepl.inodes.org/. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体">Special thanks to Kfish, Raster, Alex, Jake, John Ferlito and Nerdy Amanda Lin. <o:p></o:p></span></p>
<p class=MsoNormal style="MARGIN: 5pt 0cm; LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: 宋体"><o:p>&nbsp;</o:p></span><span><img height=2 src="http://www.yehaozi.com/wp-content/uploads/2010/05/wpid-be0b6a66d562e2d881de60c566d0efb5_clip_image010.gif" width=553 border=0 v:shapes="图片_x0020_9"><o:p></o:p></span></p>
<p class=MsoNormal style="LINE-HEIGHT: 150%; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><i><span lang=EN-US style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Tahoma','sans-serif'; mso-font-kerning: 0pt; mso-fareast-font-family: System">Horms 2002-12-15 </span></i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=363</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>python编译成可运行的pyc/pyo文件</title>
		<link>http://www.yehaozi.com/?p=353</link>
		<comments>http://www.yehaozi.com/?p=353#comments</comments>
		<pubDate>Wed, 26 May 2010 05:37:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.yehaozi.com/?p=353</guid>
		<description><![CDATA[                        document.body.oncopy = function() {                            [...]]]></description>
			<content:encoded><![CDATA[<div id=WizHtmlContentId><script type=text/javascript>                        document.body.oncopy = function() {                            if (window.clipboardData) {                                setTimeout(function() {                                    var text = clipboardData.getData("text");                                    if (text &#038;&#038; text.length > 300) {                                        text = text + "\r\n\n本文来自CSDN博客，转载请标明出处：" + location.href;                                        clipboardData.setData("text", text);                                    }                                }, 100);                            }                        }					</SCRIPT><script type=text/javascript>                        function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&#038;u=' + escape(d.location.href) + '&#038;c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }</SCRIPT><span id="more-353"></span>
<p class=blogstory>编译成 pyc 就比较简单，一般运行过就可以，也可以写份脚本来做这事&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;import py_compile<br />&nbsp;&nbsp;&nbsp;&nbsp;py_compile.compile('path') //path是包括.py文件名的路径</p>
<p class=blogstory>编译成 pyo 就是在控制台执行 python -O -m py_compile file.py<br />&nbsp;&nbsp;&nbsp;&nbsp;其中的 -m 相当于脚本中的import，这里的-m py_compile 相当于上面的 import py_compile&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;-O 如果改成 -OO 则是删除相应的 pyo文件，具体帮助可以在控制台输入 python -h 查看 </p>
<p><!--WizHtmlContent--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yehaozi.com/?feed=rss2&amp;p=353</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
