加载中…
个人资料
宇安
宇安
  • 博客等级:
  • 博客积分:0
  • 博客访问:12,348
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

telnet mail queue.h

(2008-07-23 19:29:37)
标签:

it

分类: Linux

今天看sase代码,居然被tail queue打懵了,因为没看前面的数据结构,得,我把queue.h直接看完了,然后发现是摘自freebsdlinux内核中的queue.h,或者说,此.h是某个大牛写的,放在了这两个os内核里边,拜服,orz.

#define STAILQ_HEAD(name, type)      \
struct name {        \
 struct type *stqh_first;   \
 struct type **stqh_last;  (就是这丫的**玩了会儿我,还以为是*呢)\
}

下边的宏定义,蓝色是没看上班的结构迷惑了我的地方

#define TAILQ_CONCAT(head1, head2, field) do {    \
 if (!TAILQ_EMPTY(head2)) {     \
  *(head1)->tqh_last = (head2)->tqh_first;  \
  (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
  (head1)->tqh_last = (head2)->tqh_last;   当时就想这丫是不是双*....\
  TAILQ_INIT((head2));     \
  QMD_TRACE_HEAD(head1);     \
  QMD_TRACE_HEAD(head2);     \
        \
} while (0)

这里的head1 head2并不在queue里边,很好理解。拿纸画一画就能理解这个归并过程了,此**用的很巧妙。

===========================================================================

 

为了查看程序效果,小小的用telnet mail测,虽然没有通过,但是还是有点收获

telnet *********(邮箱服务器) 25(25端口)

接着可能会有一些认证。

      键入:AUTH LOGIN

      成功后将响应:334

      334 表示命令未完成,后面接着输入编码后的email用户名,回车,将又响应:334,再输入编码后的密码,回车,这次如果验证通过将响应:235 。

 

输入发件人,

      键入:mail from: <*****@sina.com>

      成功将响应:250 Ok

      发件人最好写成正确的email地址,因为一般邮件服务器也会验证的

 

输入收件人,

      键入:rcpt to: <*****@sina.com>

      成功将响应:250 Ok

      收件人必须是正确的email地址,

      并且可以输入多个 rcpt to 命令,将同时给多个email地址发送邮件

 

写邮件内容,

      键入:data (+ 内容),以 回车 .  回车 结束内容的书写,

     

断开连接,

      键如:quit

 

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有