5.1.3 SMTPD_CMD smtpd_cmd_table[]数组:回调函数数组
2016-04-07 11:15
691 查看
smtpd_cmd_table数组“绑定”smtp命令与执行函数,是实现命令状态机的基础:
共定义了16个回调函数,我们介绍HELO\EHLO、MAIL、RCPT、DATA这4个主要命令的实现。
static SMTPD_CMD smtpd_cmd_table[] = { {SMTPD_CMD_HELO, helo_cmd, SMTPD_CMD_FLAG_LIMIT | SMTPD_CMD_FLAG_PRE_TLS| SMTPD_CMD_FLAG_LAST,}, {SMTPD_CMD_EHLO, ehlo_cmd, SMTPD_CMD_FLAG_LIMIT | SMTPD_CMD_FLAG_PRE_TLS| SMTPD_CMD_FLAG_LAST,}, {SMTPD_CMD_XCLIENT, xclient_cmd,}, {SMTPD_CMD_XFORWARD, xforward_cmd,}, #ifdef USE_TLS {SMTPD_CMD_STARTTLS, starttls_cmd, SMTPD_CMD_FLAG_PRE_TLS,}, #else {SMTPD_CMD_STARTTLS, unimpl_cmd, SMTPD_CMD_FLAG_PRE_TLS,}, #endif #ifdef USE_SASL_AUTH {SMTPD_CMD_AUTH, smtpd_sasl_auth_cmd,}, #else {SMTPD_CMD_AUTH, unimpl_cmd,}, #endif {SMTPD_CMD_MAIL, mail_cmd,}, {SMTPD_CMD_RCPT, rcpt_cmd,}, {SMTPD_CMD_DATA, data_cmd, SMTPD_CMD_FLAG_LAST,}, {SMTPD_CMD_RSET, rset_cmd, SMTPD_CMD_FLAG_LIMIT,}, {SMTPD_CMD_NOOP, noop_cmd, SMTPD_CMD_FLAG_LIMIT | SMTPD_CMD_FLAG_PRE_TLS| SMTPD_CMD_FLAG_LAST,}, {SMTPD_CMD_VRFY, vrfy_cmd, SMTPD_CMD_FLAG_LIMIT | SMTPD_CMD_FLAG_LAST,}, {SMTPD_CMD_ETRN, etrn_cmd, SMTPD_CMD_FLAG_LIMIT,}, {SMTPD_CMD_QUIT, quit_cmd, SMTPD_CMD_FLAG_PRE_TLS,}, {0,}, };
共定义了16个回调函数,我们介绍HELO\EHLO、MAIL、RCPT、DATA这4个主要命令的实现。
相关文章推荐
- 5.1.2 SMTPD_CMD结构体:smtp协议命令表示
- 5.1.1 主要的结构体--SMTPD_STATE
- Yii CHtml
- 第五章 smtpd模块解析
- PHP导出数据到CSV文件
- PHP安全下载文件的方法
- 王立平--EditPlus激活码
- PHP设计模式:单例模式
- php生成验证码,缩略图及水印图的类分享
- PHP Token(令牌)设计应用
- PHP绿色版 官网下载+安装(win7)
- iis环境 thinkphp get url中文获取不到内容
- 使用root用户启动php
- Cts框架解析(12)-ITargetPreparer
- PHP如何在数组指定位置插入单元
- PHP使用token防止表单重复提交的方法
- ThinkPHP连接SQL Server数据库
- PHP使用Mysqli类库实现完美分页效果的方法
- php 下载图片
- 每天laravel-20160707|KeyWritten