parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

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

Александр Петросян (PAF) 26.05.2003 11:52

[paf@imp] ~/imprimatur-tests> uname -a ; man 2 read
FreeBSD imp.srv.design.ru 4.7-RELEASE-p7 FreeBSD 4.7-RELEASE-p7 #0: Thu Mar  6 00:23:06 MSK 2003     alx@imp.srv.design.ru:/usr/src/obj/usr/src/sys/IMPRIMATUR  i386
READ(2)                   FreeBSD System Calls ...
RETURN VALUES
     If successful, the number of bytes actually read is returned.  Upon read-
     ing end-of-file, zero is returned.  
вот parser'у вернули этот самый 0. то бишь EOF, и что ему думать?

под unix я проблем у read не встречал, только на Win32 под msie не read хотел читать больше какого-то количества байт за один read.
для msie написано так:
/// IIS refuses to read bigger chunks
const size_t READ_POST_CHUNK_SIZE=0x400*0x400; // 1M 

size_t SAPI::read_post(SAPI_Info& , char *buf, size_t max_bytes) {
…
  ssize_t chunk_size=read(…, min(READ_POST_CHUNK_SIZE, max_bytes-read_size));
так что, если есть ещё энтузиазм, предлагаю эксперименты:
1.
положите в cgi-bin .sh файлик, вызывающий parser через ktrace.
пришлите кусок из журнала [kdump], соответствующий этому read(, 48). и что там было до того тоже. попробуем понять, кто и почему не даёт считать post данные.

2.
попробуйте уменьшить READ_POST_CHUNK_SIZE до 10 байт, посмотрим.