Jump to content

ОШИБКА В STARGAZER при подсчете через DIVERT..фикс


Recommended Posts

при подсчете......через divert.......все почти подвисало напроч.......

 

ВОТ НЕЛЕПОСТЬ ТО.........

ВОБЩЕМ.....В divertcap.cpp(в папке freebsd исходников) ВСЕ БЫСТРО ПРАВИМ :

 

- #define BUFF_LEN 1024

 

НА

 

+ #define BUFF_LEN 30000

 

.....А ТО ПОЛУЧАЕТСЯ....ЧТО МАКСИМАЛЬНЫЙ РАЗМЕР ПАКЕТА 1024 БАЙТА...

ВО ТРАБЛ ТО......АФИГЕТ........ТОРОПИЛСЯ НАВЕРНОЕ АВТОР......РЕЛИЗ ВЫПУСТИТЬ.....=)))

 

ТАМ КСТАТИ....ЕЩЕ МНОГО НЕДОЧЕТОВ........НО ЭТ ПРОСТО ВЫНОС....=))

Link to post
Share on other sites

Отлично. Без тени сарказма - спасибо.

Так публикуй остальные недочеты! =))

В этом основной плюс opensource - в совместном улучшении качества продукта.

Я думаю, глупо не использовать этот плюс.

 

P.S. BUFF_LEN 30000 хватит? Может сделать 65535?

Link to post
Share on other sites
Guest Guest_virstud

30000 ...эт я просто в iris - е глянул......максимальный размер пакета ....когда делаешь пакет сам...

 

можно наверное и больше....но мне этого хватило...

у меня старгайзер нормально заработал..........

пакеты не теряет теперь

правда на машине 466 цел 256 оперативки.......скорость скачивания с серваке не привышает 2.5 мегабита.......надо теперь процессор побыстрее...

 

работа через диверт ......почти полностью гарантирует ...подсчет всего трафика...т.к. ..пакеты не просто считаются ....а пропускаются через программу.......

если программу сглючит.....то трафик просто не пропустит Ipfw .......

это давольно надежно........

Link to post
Share on other sites

Хотелось бы услышать мнение автора программы, по поводу этой штуки. Не то чтобы я не доверяю (я то в таких тонкостях не разбираюсь) но не скажется ли это пагубно где-нить в другом месте.

Link to post
Share on other sites
может поставить tee и как-то убивать выходящие обратно пакеты?

а причем тут tee.......с ним хуже..........

divert самое оно.....

прекрасно с ним считает...

а про tee я так скажу....

 

проббовал....

на слабой машинке пропускает пакеты......

да и на мощной тачке ..если проц нагрузишь....то наверника тож начнет терять пакеты.......т.к. старгайзер не будет контролировать скорость прохождения пакетов...

Link to post
Share on other sites

о, кстати да. Ну диверт, так диверт.

Ты, давай, рассказывай про остальные замеченные глюки =)

Я хочу 1 апреля перейти на последнюю версию с подсчетом через диверт.

Хотелось бы, чтобы в этой последней версии было как можно меньше глюков =)

Link to post
Share on other sites
о, кстати да. Ну диверт, так диверт.

Ты, давай, рассказывай про остальные замеченные глюки =)

Я хочу 1 апреля перейти на последнюю версию с подсчетом через диверт.

Хотелось бы, чтобы в этой последней версии было как можно меньше глюков =)

пака скажу только.....

что там еще стоит ограничение на минимальный пакет в 50 байт........т.е. пакеты меньше 50 байт тоже отбрасываются.........

может я не силен в сетевых глубинах.......но по ирису можно судить....что такие пакеты бывают...........и 46 видел.....и. др......

это не сильно сказывается на общем состоянии.....но вот в куске кода альтернативной проги которая тоже использует диверт я таких ограничений не заметил....:

 

if( FD_ISSET(divert, &workMask) ) {

inBytes = recvfrom ( divert, packetBuff,sizeof(packetBuff),0,

(struct sockaddr *)&packetAddr ,&addrSize);

if (inBytes == -1) {

if(errno != EINTR ) {

syslog(LOG_ERR,"Can't RECVFROM divert socket:%s",S_ERROR);

exit(1);

}

}

 

ip = (struct ip*)packetBuff;

reassert(ip->ip_src,inBytes);

 

total_bytes+=inBytes;

total_pkts++;

 

outBytes = sendto (divert,packetBuff,inBytes, 0,

(struct sockaddr *)&packetAddr, sizeof(packetAddr) );

if (outBytes == -1) {

syslog(LOG_ERR,"Can't SENDTO divert socket:%s",S_ERROR);

exit(1);

}

 

 

....вобщем.......я недопонимаю логику этого ограничения....

Link to post
Share on other sites

Есть предположение, что какой-т код был вставлен методом Ctrl+C, Ctrl+V из какой-либо документации.

Если кто-то вник в работу этого кода, то можно рассказать об этом остальным.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...