Разобрался .. если кому надо выкладываю патч--- ./sstr_io.c Fri Feb 4 10:24:55 2005
+++ ./sstr_io.c Wed Oct 25 13:08:31 2006
@@ -26,6 +26,8 @@
#include <sys/ioctl.h>
#include <unistd.h>
#include <ctype.h>
+#include <sys/types.h>
+#include <sys/stat.h>
#include "sstr.h"
#include "sstr_private.h"
@@ -61,8 +63,15 @@
int sstr_append_read(int fd, sstr * p, int cnt)
{
int i;
+ struct stat mystat;
+
if(ioctl(fd, FIONREAD, &i) == -1)
- return (-1);
+ {
+ fstat(fd,&mystat);
+ if (mystat.st_mode & S_IFREG == 0)
+ return (-1);
+ i=mystat.st_blksize;
+ };
if(i == 0)
return (0);
@@ -73,11 +82,11 @@
i = min(i, p->maxlen - p->len);
if(i == 0)
- return (-1); /*Buffer full */
+ return (-2); /*Buffer full */
i = read(fd, p->buf + p->len, i);
if(i == -1)
- return (-1);
+ return (-3);
p->len += i;
return (i);
}