Возможно вы искали: 'Joshua & Battle of Jer...'

May 15 2025 19:34:27
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Патч для записи в squid лог блоками, а не после закачки всего файла (squid traffic log patch)

Патч для записи в squid лог блоками, а не после закачки всего файла (squid traffic log patch)

Ключевые слова: squid, traffic, log, patch, (найти похожие документы)

Date: Mon, 31 Mar 2003 12:41:14 +0600
From: "mitrohin a.s." <swp@uni-altai.ru>
Newsgroups: ftn.ru.unix.bsd
Subject: Патч для записи в squid лог блоками, а не после закачки всего файла

>> я тоже как-то пытался ковырять squid - но немного в другом направлении -
>> хотелось добиться более частых записей в лог - кусками по мере получения
>> данных ;)) и даже получилось - (squid3.5STABLE1) но ... далее надо писать
>> что-то - что будет это дело обрабатывать - то что сейчас работает -
>> обсчитывает строки лога (там через syslogd завернуто на програмку) и
>> сделано на перле не мной - ;)) я в перле нифига не понимаю и тратить время
>> на написание или переделывание того что уже работает - посчитал
>> нецелесообразным ;))) - если такой подход устроит и есть желание его
>> довести до ума напиши - сделаем diff :)

KKA> Hе поделишься местом в исходниках, в которое надо встраиваться, для того что
KKA> бы получать статистику чаще?
KKA> =)))
KKA> У нас есть, кто будет обрабатывать лог (точнее, мы встроились в районе
KKA> fprintf(), который сбрасывает данные в лог и пихаем это в БД, а параллельно
KKA> модуль идентификации проверяет квоты на исчерпание. Hо вот найти ТВОЕ
KKA> место, у моего подчиненного не получается
KKA> =)))

http://bspu.secna.ru/~swp/SQUID/patch
накладывать внутри src


вывод в fifo кусочками по мере поступления данных а не после
закачки всего файла

--- access_log.c.orig Sun Jun 16 18:25:40 2002
+++ access_log.c Mon Mar 31 11:23:03 2003
@@ -223,7 +223,11 @@
return buf;
}

+#ifdef ACLOG
+char *
+#else
static char *
+#endif
accessLogFormatName(const char *name)
{
if (NULL == name)
--- client_side.c.orig Mon Sep 23 11:04:03 2002
+++ client_side.c Mon Mar 31 14:58:13 2003
@@ -1,4 +1,3 @@
-
/*
* $Id: client_side.c,v 1.561.2.20 2002/09/23 04:04:03 wessels Exp $
*
@@ -2096,6 +2095,98 @@
kb_incr(&statCounter.client_http.kbytes_out, size);
if (isTcpHit(http->log_type))
kb_incr(&statCounter.client_http.hit_kbytes_out, size);
+
+#ifdef ACLOG
+ {
+ extern int acfd;
+ extern char *acfifo; /* XXX: for error handling */
+
+ if (acfd > -1) {
+ AccessLogEntry * al = &http->al;
+ const char *client = NULL;
+ char *user = NULL;
+ extern char *accessLogFormatName(const char *name);
+ char buf[0x4000];
+ int n;
+
+ ConnStateData *conn = http->conn;
+ request_t *request = http->request;
+ MemObject *mem = NULL;
+
+ if (http->entry)
+ mem = http->entry->mem_obj;
+ if (http->out.size || http->log_type) {
+ http->al.icp.opcode = ICP_INVALID;
+ http->al.url = http->log_uri;
+ if (mem) {
+ http->al.http.code = mem->reply->sline.status;
+ http->al.http.content_type =
+ strBuf(mem->reply->content_type);
+ }
+ http->al.cache.caddr = conn->log_addr;
+ http->al.cache.size = http->out.size;
+ http->al.cache.code = http->log_type;
+ http->al.cache.msec = tvSubMsec(http->start,
+ current_time);
+ if (request) {
+ Packer p;
+ MemBuf mb;
+ memBufDefInit(&mb);
+ packerToMemInit(&p, &mb);
+ httpHeaderPackInto(&request->header, &p);
+ http->al.http.method = request->method;
+ http->al.http.version = request->http_ver;
+ http->al.headers.request = xstrdup(mb.buf);
+ http->al.hier = request->hier;
+ if (request->auth_user_request) {
+ http->al.cache.authuser = xstrdup(
+ authenticateUserRequestUsername(
+ request->auth_user_request));
+ authenticateAuthUserRequestUnlock(
+ request->auth_user_request);
+ request->auth_user_request = NULL;
+ }
+ if (conn->rfc931[0])
+ http->al.cache.rfc931 = conn->rfc931;
+ packerClean(&p);
+ memBufClean(&mb);
+ }
+
+ if (Config.onoff.log_fqdn)
+ client = fqdncache_gethostbyaddr(
+ al->cache.caddr, FQDN_LOOKUP_IF_MISS);
+ if (client == NULL)
+ client = inet_ntoa(al->cache.caddr);
+
+ user = accessLogFormatName(al->cache.authuser ?
+ al->cache.authuser : al->cache.rfc931);
+ n = snprintf(buf, sizeof buf,
+ "%9d.%03d %6d %s %s/%03d %ld (+%ld) "
+ "%s %s %s%s/%s %sn",
+ (int) current_time.tv_sec,
+ (int) current_time.tv_usec / 1000,
+ al->cache.msec,
+ client,
+ log_tags[al->cache.code],
+ al->http.code,
+ (long int) al->cache.size,
+ size,
+ al->url,
+ user && *user ? user : dash_str,
+ al->hier.ping.timedout ? "TIMEOUT_" : "",
+ hier_strings[al->hier.code],
+ al->hier.host,
+ al->http.content_type);
+
+ /* XXX: blocking write */
+ write(acfd, buf, n > sizeof buf ? sizeof buf : n);
+
+ safe_free(user);
+ }
+ } /* if */
+ }
+#endif
+
}
#if SIZEOF_SIZE_T == 4
if (http->out.size > 0x7FFF0000) {
--- main.c.orig Mon Mar 31 14:10:38 2003
+++ main.c Mon Mar 31 15:09:48 2003
@@ -35,6 +35,11 @@

#include "squid.h"

+#ifdef ACLOG
+int acfd = -1;
+char *acfifo = NULL;
+#endif
+
/* for error reporting from xmalloc and friends */
extern void (*failure_notify) (const char *);

@@ -95,6 +100,9 @@
" -s Enable logging to syslog.n"
" -u port Specify ICP port number (default: %d), disable with 0.n"
" -v Print version.n"
+#ifdef ACLOG
+ " -x fifo Print account log to fifo. default: /dev/null :))n"
+#endif
" -z Create swap directoriesn"
" -C Do not catch fatal signals.n"
" -D Disable initial DNS tests.n"
@@ -115,7 +123,12 @@
extern char *optarg;
int c;

- while ((c = getopt(argc, argv, "CDFNRSVYXaBiggrinf:hk:m::su:vz?")) != -1) {
+ while ((c = getopt(argc, argv,
+ "CDFNRSVYXaBiggrinf:hk:m::su:v"
+#ifdef ACLOG
+ "x:"
+#endif
+ "z?")) != -1) {
switch (c) {
case 'C':
opt_catch_signals = 0;
@@ -222,6 +235,11 @@
printf("Squid Cache: Version %snconfigure options: %sn", version_string, SQUID_CONFIGURE_OPTIONS);
exit(0);
/* NOTREACHED */
+#ifdef ACLOG
+ case 'x':
+ acfifo = optarg;
+ break;
+#endif
case 'z':
opt_create_swap_dirs = 1;
break;
@@ -571,6 +589,22 @@
eventAdd("ipcache_purgelru", ipcache_purgelru, NULL, 10.0, 1);
eventAdd("fqdncache_purgelru", fqdncache_purgelru, NULL, 15.0, 1);
}
+
+#ifdef ACLOG
+ if (!configured_once && acfifo)
+ for (;;) {
+ if ((acfd = open(acfifo, O_WRONLY)) < 0) {
+ if (errno == EINTR)
+ continue;
+ if (errno == ENOENT &&
+ mkfifo(acfifo, 0644) < 0)
+ err(1, acfifo);
+ continue;
+ }
+ break;
+ }
+#endif
+
configured_once = 1;
}
437 Прочтений •  [Патч для записи в squid лог блоками, а не после закачки всего файла (squid traffic log patch)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Патч для записи в squid лог блоками... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка