<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chn475111的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chn475111</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chn475111]]></copyright><item><title><![CDATA[TLS-PRF实现示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/53488359</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/53488359</guid><author>chn475111</author><pubDate>Tue, 06 Dec 2016 16:16:43 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 

void hmac_sha1(unsigned char *key, int key_len, unsigned char *text, int text_len, unsigned char *digest)
{
    int i;
    unsign]]></description><category></category></item><item><title><![CDATA[数字签名&数字信封]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/53115331</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/53115331</guid><author>chn475111</author><pubDate>Thu, 10 Nov 2016 14:29:49 +0800</pubDate><description><![CDATA[1, 生成数字签名


2, 验证数字签名


3, 生成数字信封


4, 解密数字信封]]></description><category></category></item><item><title><![CDATA[UNIX Domain Socket]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/53066309</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/53066309</guid><author>chn475111</author><pubDate>Mon, 07 Nov 2016 14:54:45 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int unix_socket()
{
    int fd = socket(AF_UNIX, SOCK_STREA]]></description><category></category></item><item><title><![CDATA[栈和队列]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/52609862</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/52609862</guid><author>chn475111</author><pubDate>Wed, 21 Sep 2016 16:51:57 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 

#define DATA_SIZE 2048
#define STACK_SIZE 65536

typedef struct data_s
{
	int len;
	char val[DATA_SIZE];
}data_t;

typedef struct stack_s 
{
	int count;
	data_]]></description><category></category></item><item><title><![CDATA[内核rbtree使用示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/52594457</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/52594457</guid><author>chn475111</author><pubDate>Tue, 20 Sep 2016 11:45:31 +0800</pubDate><description><![CDATA[/**
 * @author lijk@.infosec.com.cn
 * @version 0.0.1
 * @date 2016-9-20 11:52:06
 */
#include 
#include 
#include "rbtree.h"

typedef struct roc_node_s
{
    struct rb_node node;
    void *ctx;
    i]]></description><category></category></item><item><title><![CDATA[创建/销毁线程操作示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/52354805</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/52354805</guid><author>chn475111</author><pubDate>Mon, 29 Aug 2016 17:02:14 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define MAX_NUM 65536

#ifndef ECHO
#define ECHO(fp, fmt, ...)                                               ]]></description><category></category></item><item><title><![CDATA[awk/sed操作ini文件]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/52299900</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/52299900</guid><author>chn475111</author><pubDate>Wed, 24 Aug 2016 14:00:39 +0800</pubDate><description><![CDATA[#!/bin/sh

# author lijk@.infosec.com.cn
# date 2016-8-16 15:16:36

function _ini_usage()
{
    echo "Usage: $0 get filename.ini section key
or
Usage: $0 set filename.ini section key value"
    return]]></description><category></category></item><item><title><![CDATA[父子进程间分发FD]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/52290155</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/52290155</guid><author>chn475111</author><pubDate>Tue, 23 Aug 2016 13:38:14 +0800</pubDate><description><![CDATA[int fd_pair(int fd[2])
{
    return socketpair(AF_UNIX, SOCK_DGRAM, 0, fd);
}

int fd_send(int sockfd, int fd, int type)
{
    int data;
    struct iovec iov_data;
    struct msghdr msg_hdr;
    struc]]></description><category></category></item><item><title><![CDATA[OpenSSL多线程互斥锁]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/52280985</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/52280985</guid><author>chn475111</author><pubDate>Mon, 22 Aug 2016 22:22:20 +0800</pubDate><description><![CDATA[static pthread_mutex_t *crypto_lock = NULL;

static pthread_t pthread_id_cb()
{
    return pthread_self();
}

static void pthread_locking_cb(int mode, int n, const char *file, int line)
{
    if(mode ]]></description><category></category></item><item><title><![CDATA[rtp/rtcp header]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/51777813</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/51777813</guid><author>chn475111</author><pubDate>Tue, 28 Jun 2016 18:03:51 +0800</pubDate><description><![CDATA[#ifndef __RTP_H__
#define __RTP_H__

struct rtphdr
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
    uint16_t cc:4;              /* CSRC count */
    uint16_t x:1;               /* header extension flag */
  ]]></description><category></category></item><item><title><![CDATA[标记路由]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/51769409</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/51769409</guid><author>chn475111</author><pubDate>Mon, 27 Jun 2016 16:42:46 +0800</pubDate><description><![CDATA[#ip rule show
#ip route show table 1000
#
#客户端主机:
#    IP: 192.168.10.10
#    GW: 192.168.10.11
#    test: ping 192.168.110.110 -t
#客户端网关:
#    eth0: 192.168.10.11
#    eth1: 192.168.100.11
#    route]]></description><category></category></item><item><title><![CDATA[vim + ctags + taglist]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/51494388</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/51494388</guid><author>chn475111</author><pubDate>Tue, 24 May 2016 23:06:10 +0800</pubDate><description><![CDATA[安装ctags:
	tar xvf ctags-5.8.tar.gz
	cd ctags-5.8
	./configure && make && make install
	cd ..
	rm -rf ctags-5.8

安装taglist:
	rm -rf ~/.vim
	mkdir -pv ~/.vim
	unzip taglist_46.zip -d ~/.vim

配置vimrc(可选)]]></description><category></category></item><item><title><![CDATA[合并CentOS镜像]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/51386429</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/51386429</guid><author>chn475111</author><pubDate>Thu, 12 May 2016 18:20:01 +0800</pubDate><description><![CDATA[#1, 创建目录
rm -rf /media/dvd1 /media/dvd2 /media/CentOS
mkdir -pv /media/dvd1 /media/dvd2 /media/CentOS
#2, 挂载镜像
mount -o loop /root/CentOS-6.5-i386-bin-DVD1to2/CentOS-6.5-i386-bin-DVD1.iso /media/dvd1
]]></description><category></category></item><item><title><![CDATA[使用VS2010编译OpenSSL源码]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/51167731</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/51167731</guid><author>chn475111</author><pubDate>Sat, 16 Apr 2016 13:43:50 +0800</pubDate><description><![CDATA[1, 下载OpenSSL源码;
2, 安装Visual Studio 2010(确认选中: X64编译器和工具);
3, 安装ActivePerl;
4, 下载NSAM;
5, 拷贝nsam.exe和ndisam.exe至D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\目录;
6, 打开Visual Studio Co]]></description><category></category></item><item><title><![CDATA[CentOS本地yum源]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/50944483</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/50944483</guid><author>chn475111</author><pubDate>Mon, 21 Mar 2016 11:06:22 +0800</pubDate><description><![CDATA[1, mkdir -pv /media/CentOS/
2, 挂载镜像.png
2',拷贝镜像至Linux根目录: /root/
3, mount /dev/sr0 /media/CentOS/
3',mount -o loop /root/CentOS-6.5-i386-bin-DVD1.iso /media/CentOS/
4, ls /etc/yum.repos.d/ | grep]]></description><category></category></item><item><title><![CDATA[LVS+Keepalived配置示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/50802318</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/50802318</guid><author>chn475111</author><pubDate>Fri, 04 Mar 2016 14:20:14 +0800</pubDate><description><![CDATA[1, 说明

#应用层: PROTOCOL
#传输层: PORT
#网络层: ICMP

#关闭NetworkManager服务
#setup->System services->NetworkManager

#LB服务器
tar xvf popt-1.16.tar.gz
cd popt-1.16
./configure && make && make install
cd ..
rm -r]]></description><category></category></item><item><title><![CDATA[HTTP客户端(libcurl) & HTTP服务端(libevent)]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/50802211</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/50802211</guid><author>chn475111</author><pubDate>Fri, 04 Mar 2016 14:06:16 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "log.h"

#ifndef likely
#define likely(x)]]></description><category></category></item><item><title><![CDATA[开机自启脚本示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/50715912</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/50715912</guid><author>chn475111</author><pubDate>Mon, 22 Feb 2016 12:06:19 +0800</pubDate><description><![CDATA[#!/bin/sh

#chkconfig: 235 99 99
#description: ljk auto script (1, vim /etc/init.d/auto; 2, chmod a+x /etc/init.d/auto; 3, chkconfig --add auto)

case "${1}" in
start)
    echo ""${0}" start";
    log]]></description><category></category></item><item><title><![CDATA[Epoll使用示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/50676874</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/50676874</guid><author>chn475111</author><pubDate>Tue, 16 Feb 2016 21:15:43 +0800</pubDate><description><![CDATA[#include "xdjaapi.h"
#include "log.h"
#include "utils.h"

#define SERVER_IP "0.0.0.0"
#define SERVER_PORT 1988
#define LISTEN_BACKLOG 5
#define MAX_FDS 256
#define TIMEOUT 3000

static volatile sig_at]]></description><category></category></item><item><title><![CDATA[libpcap使用示例]]></title><link>https://blog.youkuaiyun.com/chn475111/article/details/50676514</link><guid>https://blog.youkuaiyun.com/chn475111/article/details/50676514</guid><author>chn475111</author><pubDate>Tue, 16 Feb 2016 19:21:24 +0800</pubDate><description><![CDATA[/**
 * @author lijk@.infosec.com.cn
 * @version 0.0.1
 * @date 2016-6-1 11:50:10
 */
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#incl]]></description><category></category></item></channel></rss>