自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 #多线程编程

互斥锁常用来防止多个进程或线程同时访问相同的共享资源而导致的资源竞争。 互斥锁可以保证以下三点:原子性:保证当某个线程锁定了一个互斥锁,其他线程不可能在同时能锁定该互斥锁。唯一性:保证当某个线程已经锁定一个互斥锁时,在它解锁前,其他线程不可能锁定该互斥锁非繁忙等待:保证当某个线程已经锁定一个互斥锁时,第二个线程又试图去锁定这个互斥锁,则第二个线程将被挂起。API头文件 pthread.h创

2017-08-24 14:19:37 244

原创 电子邮件基本格式(MIME格式)

总的来说,参照rfc4021标准,mime格式分为消息头和消息体两部分(邮件头和邮件体)。 本文大致描述邮件格式,仅供参考。邮件头邮件头包含了发件人、收件人、主题、时间、MIME版本、内容的类型、内容的传输编码方式等重要信息。每条信息称为一个域,由域名后加冒号(“ : ”)和信息内容构成,可以是一行,也可以占用多行。域的首行必须顶头写(即左边不能有空白字符(空格和制表符));续行则必须以空白字符打

2017-08-15 11:51:32 11369

原创 Postfix重要数据结构

binhash.c实现了哈希表的基本增删查改等功能,其binhash_hash函数完成哈希值的计算。 BINHASH_INFO结构体实现哈希表节点 BINHASH结构体表示哈希表本身HTABLE结构体实现了哈希表双向链表(qmgr模块所使用的一系列主要结构体都用HTABLE来存放。)/util/binhash.h typedef struct BINHASH_INFO {

2017-08-14 17:31:50 763

原创 postfix路由流程

postfix收到邮件后,先由cleanup程序处理收件地址(把一些不规范的发件和收件地址域名“清理”一下,比如没有的补全,改写等等)。cleanup清理后的邮件被队列管理器交给trivial-rewrite来决定下一步的传输路由。 postfix下一步的传输前需要获得几个目标地址数据:mydestination:本地标识;virtual_mailbox_domains:虚拟邮箱域名;rel

2017-08-11 16:55:07 2935

原创 Rspamd配置

Rspamd使用通用配置语言(UCL)进行配置。Rspamd定义了几个变量和宏来扩展UCL功能。最基础设置C模块启动项在options.inc文件中配置。 # Included from top-level .conf file filters = "chartable,dkim,spf,surbl,regexp,fuzzy_check";在filters定义加载模块。Lua模块启动

2017-08-10 17:49:51 3265

原创 Postfix邮件路由

# SYNOPSIS 概要# postmap /etc/postfix/transport# # postmap -q "string" /etc/postfix/transport# # postmap -q - /etc/postfix/transport <inputfile##DESCRIPTION 描述# Th

2017-08-10 17:49:05 1158

原创 Postfix扫描邮件结果Action

邮件经过垃圾邮件扫描器扫描后,接收返回结果,进行相应的action。返回结果如下: SMFIR_PROGRESS/* * Still working on it. * 仍在努力(正在处理) */case SMFIR_PROGRESS: if (data_size != 0) break; continue;SMFIR_CONTINUE/* * Decision:

2017-08-10 17:48:33 386

原创 Postfix-2.10 配置参数

下面四个文件是Postfix的最基本配置文件: main.cf:是postfix主要的配置文件。 Install.cf:包含安装过程中安装程序产生的postfix初始化设置。 master.cf:是postfix的master进程的配置文件,该文件中的每一行都是用来配置postfix的组件进程的运行方式。 postfix-script:包装了一些postfix命令,以便我们在linu

2017-08-10 17:47:49 7618 1

原创 Postfix组件简介

文档 Documentation:README_FILES/ Postfix功能说明 Instructions for specific Postfix featureshtml/ HTML格式 HTML formatman/ 手册(UNIX on-line manual page format示例文件 Example files:conf/

2017-08-10 17:47:07 583

原创 Postfix邮件过滤spam和virus函数

在milter过滤spam和virus涉及函数milter_conn_eventmilter_helo_eventmilter_mail_eventmilter_rcpt_eventmilter_data_eventmilter_unknown_eventmilter_other_eventcheck_milter_reply milter_conn_event() —— rep

2017-08-10 17:46:21 1058

原创 ClamAV工作

工作流程图引用库zlibbzlib关键函数int scanmanager(const struct optstruct *opts)内容扫描入口static void scanfile(const char *filename, struct cl_engine *engine, const struct optstruct *opts, unsigned int options)内容扫描int c

2017-08-10 17:45:12 456

原创 Rmilter解析邮件的流程

Rmilter解析邮件的流程过滤数据结构struct smfiDesc smfilter ={ "rmilter", /* filter name */ SMFI_VERSION, /* version code -- do not change */ SMFIF_ADDHDRS | SMFIF_CHGHDRS | SMFIF_ADDR

2017-08-10 17:42:56 746

原创 Milter协议

Milter协议SMTP 和milter对应SMTP Commands Milter Callbacks(open SMTP connection) xxfi_connectHELO ... xxfi_heloMAIL From: ...

2017-08-10 17:41:28 1040

原创 基本数据结构——队列

队列一种特殊的线性结构表,与栈相反,先进先出(Frist In Frist Out FIFO)。在队列尾进行插入操作,在队列头进行删除操作:C语言简单实现代码如下#include <stdio.h>#include <stdlib.h>#define N 20typedef int data_t;typedef struct sequeue { data_t data[N];

2017-03-29 15:27:04 239

原创 基本算法——冒泡法

冒泡法又称冒泡排序(Bubble Sort),是一种较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果值顺序错误就把他们交换过来。 冒泡排序算法的运作如下:(升序) 如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉

2017-03-22 16:07:59 1280

原创 基本数据结构——栈

栈(STACK)又称为堆栈,是一种“特殊”的线性表,这种线性表的插入和删除运算只允许在表的一端进行。允许进行插入和删除运算的这一端称为栈顶(TOP),不允许进行插入和删除运算的另一端则称为栈底(BOTTOM);向栈中插入一个新元素称为入栈,从栈中删除一个元素称为出栈; 由于栈的插入和删除运算仅在栈顶一端进行,所以栈是一种先进后出的结构(FRIST IN LAST OUT),栈的存储结构主要分

2017-03-21 13:09:26 323

原创 基本数据结构——单向链表

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。属于线性结构。线性表的链式存储表示的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,为

2017-03-20 15:34:47 273

SQL2008.zip

SQL标准2008 文档

2019-07-31

SQL2011.zip

SQL标准2011

2019-07-31

PostgreSQL数据库内核分析

PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析PostgreSQL数据库内核分析

2017-09-21

jdk1.8源码

jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!jdk1.8源码!

2017-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除