亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? om_peo.c

?? MSyslog是一個允許在Linux下運行的網絡系統日志程序
?? C
字號:
/*	$CoreSDI: om_peo.c,v 1.77 2002/03/01 07:31:03 alejo Exp $	*//* * Copyright (c) 2001, Core SDI S.A., Argentina * All rights reserved *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither name of the Core SDI S.A. nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *//* * om_peo -- peo autentication * * Author: Claudio Castiglia * */#include "config.h"#if TIME_WITH_SYS_TIME# include <sys/time.h># include <time.h>#else# if HAVE_SYS_TIME_H#  include <sys/time.h># else#  include <time.h># endif#endif#include <sys/types.h>#include <sys/stat.h>#include <sys/param.h>#include <ctype.h>#include <errno.h>#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <syslog.h>#include <strings.h>#include "../modules.h"#include "../syslogd.h"#if 1#include "../peo/hash.h"#elseextern char *default_keyfile;#define	SHA1	0#endif#define MAXBUF	MAXSVLINE+MAXHOSTNAMELEN+20struct om_peo_ctx {	short	flags;	int	size;	int	hash_method;	char   *keyfile;	char   *macfile;};intom_peo_write(struct filed *f, int flags, struct m_msg *msg, void *ctx){	struct om_peo_ctx	*c;	int			 fd, mfd, len, keylen, newkeylen;	u_char			 key[41], mkey[41];	unsigned char		 m[MAXBUF], newkey[41];	char			 time_buf[16];	dprintf(MSYSLOG_INFORMATIVE, "om_peo_write: Entering\n");		if (f == NULL || ctx == NULL || msg == NULL)		return (-1);	c = (struct om_peo_ctx *) ctx;	strftime(time_buf, sizeof(time_buf), "%b %e %H:%M:%S", &f->f_tm);	time_buf[15] = '\0';	len = snprintf((char *) m, MAXBUF, "%s %s %s\n", time_buf,	    f->f_prevhost, msg->msg ? msg->msg : f->f_prevline) - 1;	dprintf(MSYSLOG_INFORMATIVE, "om_peo_write: len = %i, msg->msg = %s\n ",	    len, m);	/* Open keyfile and read last key */	if ( (fd = open(c->keyfile, O_RDWR, 0)) < 0) {		dprintf(MSYSLOG_SERIOUS, "om_peo_write: opening keyfile: %s:"		    " %s\n", c->keyfile, strerror(errno));		return (-1);	}	bzero(key, sizeof(key));	if ( (keylen = read(fd, key, 40)) < 0) {		close(fd);		dprintf(MSYSLOG_SERIOUS, "om_peo_write: reading form: %s:"		    " %s\n", c->keyfile, strerror(errno));		return (-1);	}	/* Open macfile and write mac'ed msg */	if (c->macfile) {		if ( (mfd = open(c->macfile, O_WRONLY, 0)) < 0) {			close(fd);			dprintf(MSYSLOG_SERIOUS, "om_peo_write: opening "			    "macfile: %s: %s\n", c->macfile,			    strerror(errno));			return (-1);		}		lseek(mfd, (off_t) 0, SEEK_END);		write(mfd, mkey, mac2(key, keylen, m, len, mkey));		dprintf(MSYSLOG_INFORMATIVE, "om_peo_write: write to macfile"		    " ok\n");		close(mfd);	}	/* Generate new key and save it on keyfile */	lseek(fd, (off_t)0, SEEK_SET);	ftruncate(fd, (off_t)0);	newkeylen = mac(c->hash_method, key, keylen, m, len, newkey);	if (newkeylen == -1) {		close(fd);		dprintf(MSYSLOG_INFORMATIVE, "om_peo_write: generating "		    "key[i+1]: keylen = %i: %s\n", newkeylen,		    strerror(errno));		return (-1);	}	write(fd, newkey, newkeylen);	close(fd);	return (1);}/* *  INIT -- Initialize om_peo *  args: *  *	-k <keyfile>		(default: /var/ssyslog/.var.log.messages) *	-l			line number corruption detect mode *				(generates a strcat(keyfile, ".mac") file) *	-m <hash_method>	md5, rmd160, or sha1 (default: sha1) * */char		*keyfile;char		*macfile;voidrelease(void){	if (keyfile != default_keyfile)		free(keyfile);	if (macfile != NULL)		free(macfile);}intom_peo_init(int argc, char **argv, struct filed *f, char *prog, void **ctx,	    char **status){	char			 statbuf[2048];	struct om_peo_ctx	*c;	int			 hash_method;	int			 mfd;	int			 ch;	int			 argcnt;	dprintf(MSYSLOG_INFORMATIVE, "om_peo_init: Entering, called by %s\n",	    prog);		if (argv == NULL || *argv == NULL || argc == 0 || f == NULL ||	    ctx == NULL)		return (-1);	/* default values */	hash_method = SHA1;	keyfile = default_keyfile;	macfile = NULL;	mfd = 0;	argcnt = 1;	/* skip module name */	while ( (ch = getxopt(argc, argv, "k!keyfile: l!macfile m!method:",	    &argcnt)) != -1) {		switch (ch) {		case 'k':			/* set keyfile */			release();			if ((keyfile = strdup(argv[argcnt])) == NULL) {				return (-1);			}			break;		case 'l':			/* set macfile */			mfd = 1;			break;		case 'm':			/* set method */			if ( (hash_method = gethash(argv[argcnt])) < 0) {				release();				errno = EINVAL;				return (-1);			}			break;		default:			release();			errno = EINVAL;			return (-1);		}		argcnt++;	}	/* set macfile */	if (mfd) {		if ( (macfile = (char *) strmac(keyfile)) == NULL) {			release();			return (-1);		}		if (! (mfd = open(macfile, O_CREAT, S_IRUSR | S_IWUSR))) {			if (errno != EEXIST) {				release();				return (-1);			}		} else			close(mfd);	}	/* save data on context */	if ( (c = (struct om_peo_ctx*)	    calloc(1, sizeof(struct om_peo_ctx))) == NULL) {		release();		return (-1);	}	c->size = sizeof(struct om_peo_ctx);	c->hash_method = hash_method;	c->keyfile = keyfile; 	c->macfile = macfile;	*ctx = (void *) c;	snprintf(statbuf, sizeof(statbuf), "om_peo: method: "	    "%d\nkeyfile: %s\nmacfile: %s\n", hash_method, keyfile,	    macfile);	*status = strdup(statbuf);	return (1);}intom_peo_close(struct filed *f, void *ctx){	struct om_peo_ctx *c;	c = (struct om_peo_ctx *) ctx;	dprintf(MSYSLOG_INFORMATIVE, "om_peo_close\n");	if (c->keyfile != default_keyfile)		free(c->keyfile);	if (c->macfile != NULL)		free(c->macfile);	return (0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美在线观看| 午夜精品久久久久久不卡8050| 青青草国产精品97视觉盛宴| 欧美一区二区三区在线电影| 日本不卡免费在线视频| 久久久久久一二三区| 91在线国内视频| 激情综合五月婷婷| 欧美激情在线免费观看| 欧美日韩一区二区不卡| 国产在线播放一区| 亚洲资源中文字幕| 国产色91在线| 日韩欧美一级特黄在线播放| 一本到一区二区三区| 国产精品一二一区| 日本aⅴ精品一区二区三区 | 日本不卡中文字幕| 亚洲精品视频自拍| 中文字幕的久久| 久久精品一区二区三区不卡牛牛| 欧美色大人视频| 日本高清免费不卡视频| 国产激情一区二区三区| 日韩高清电影一区| 日韩精品国产精品| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲免费成人av| 亚洲欧美色图小说| 最新国产精品久久精品| 中文幕一区二区三区久久蜜桃| 91精品国产综合久久精品图片| 日本精品裸体写真集在线观看| 在线观看亚洲专区| 欧美日韩在线精品一区二区三区激情| 粗大黑人巨茎大战欧美成人| 国产91精品免费| 94-欧美-setu| 在线不卡欧美精品一区二区三区| 色综合激情五月| 欧美性大战久久久| 欧美一级片在线| 久久久久久久综合色一本| 国产精品蜜臀在线观看| 亚洲精品高清在线| 麻豆成人91精品二区三区| 国产成人av电影在线| 欧美亚洲日本国产| 久久免费看少妇高潮| 一区二区三区中文字幕| 国产1区2区3区精品美女| 色94色欧美sute亚洲线路一ni| 久久精品国产一区二区三 | 免费成人小视频| 欧美国产精品中文字幕| 久久老女人爱爱| 精品国产一区二区精华| 欧美国产精品一区| 欧美va在线播放| 中文字幕一区二区视频| 免费在线成人网| 成人国产精品免费网站| 在线精品视频小说1| 亚洲国产精品精华液ab| 精品亚洲免费视频| 日本大香伊一区二区三区| 久久精品一级爱片| 美女精品一区二区| 日韩亚洲欧美综合| 天堂在线一区二区| 欧美区视频在线观看| 综合精品久久久| 99麻豆久久久国产精品免费优播| 精品91自产拍在线观看一区| 免费人成黄页网站在线一区二区| 色综合激情久久| 午夜国产精品一区| 欧美一区二区三区免费| 国产精品77777| 久久综合久久综合九色| 精品一区二区三区久久久| 欧美草草影院在线视频| 国产成人亚洲精品狼色在线| 中文字幕精品一区二区精品绿巨人 | 亚洲女爱视频在线| 欧美日韩一区二区三区高清| 蜜臀av性久久久久蜜臀aⅴ| 久久人人超碰精品| 91蜜桃在线免费视频| 日韩精品色哟哟| 国产精品私人自拍| 欧美理论电影在线| 成人免费视频网站在线观看| 亚洲综合男人的天堂| 日韩视频在线永久播放| 99国产精品久久久久久久久久| 亚洲在线视频免费观看| 久久久久久久精| 欧美日韩你懂得| 色综合久久99| 高清日韩电视剧大全免费| 日本人妖一区二区| 日韩一区在线看| 国产三级欧美三级| 欧美不卡视频一区| 欧美日韩一区精品| 91丝袜高跟美女视频| 国产+成+人+亚洲欧洲自线| 蜜乳av一区二区| 日本成人超碰在线观看| 亚洲国产综合人成综合网站| 国产精品进线69影院| 国产日韩欧美a| 日本一区二区三区国色天香 | 色婷婷一区二区| aaa亚洲精品一二三区| 白白色 亚洲乱淫| www.99精品| 色综合久久久久| 91成人看片片| 欧美精品日韩综合在线| 51久久夜色精品国产麻豆| 欧美裸体bbwbbwbbw| 91麻豆精品国产91久久久使用方法 | 国产一区二区不卡在线| 日韩极品在线观看| 亚洲国产中文字幕| 国产精品国产三级国产aⅴ入口| 91污在线观看| 国产一区久久久| 欧美绝品在线观看成人午夜影视 | 国产亚洲欧美日韩在线一区| 韩国精品久久久| 天堂影院一区二区| 午夜精品福利一区二区三区蜜桃| 亚洲成人动漫一区| 天堂在线亚洲视频| 久久99精品久久只有精品| 日本sm残虐另类| 国产裸体歌舞团一区二区| 狠狠狠色丁香婷婷综合久久五月| 国产综合久久久久久鬼色| 精品亚洲成a人| 91美女片黄在线观看91美女| 在线亚洲免费视频| 欧美成人午夜电影| 国产亚洲成av人在线观看导航| 亚洲日本欧美天堂| 日韩av成人高清| 91小视频在线| 国产亚洲1区2区3区| 亚洲美女淫视频| 国产成人啪午夜精品网站男同| 国产91精品久久久久久久网曝门| 欧美中文字幕一区| 国产精品盗摄一区二区三区| 久久久亚洲精品石原莉奈| 亚洲综合色视频| 成人午夜av影视| 日韩精品在线一区| 亚洲国产成人av| 色婷婷亚洲综合| 国产精品人人做人人爽人人添| 婷婷中文字幕综合| 91久久久免费一区二区| 136国产福利精品导航| 国产传媒一区在线| 欧美tickle裸体挠脚心vk| 日韩av中文在线观看| 成人激情综合网站| 欧美激情综合网| 日韩高清在线一区| 欧美精品一区二区三区久久久| 日日夜夜一区二区| 欧美成人激情免费网| 久久99国产精品免费| 日韩欧美第一区| 国产一区在线观看视频| 精品捆绑美女sm三区| 成人中文字幕合集| 中文字幕+乱码+中文字幕一区| 懂色av中文字幕一区二区三区 | 成人精品国产免费网站| 日韩一区国产二区欧美三区| 久久99精品国产.久久久久久| 久久天天做天天爱综合色| 成人免费视频播放| 日韩精品视频网站| 欧美精品一区二区蜜臀亚洲| 成人美女视频在线看| 免费在线观看日韩欧美| 国产精品久久久久影院亚瑟| 欧美色区777第一页| 亚洲免费观看高清完整版在线观看| 91.成人天堂一区| 91一区二区在线观看| 成人精品视频一区二区三区尤物| 亚洲国产色一区| 亚洲同性同志一二三专区| 亚洲国产精品成人综合|