4 Copyright (C) 2006-2009 Jonathan Zarate
9 #include "../mssl/mssl.h"
18 int web_getline(char *buffer
, int max
)
20 while (fgets(buffer
, max
, connfp
) == NULL
) {
21 if (errno
!= EINTR
) return 0;
23 // cprintf("%s", buffer);
27 void web_puts(const char *buffer
)
29 web_write(buffer
, strlen(buffer
));
32 void web_putj(const char *buffer
)
36 p
= js_string(buffer
);
43 void web_puth(const char *buffer
)
47 p
= html_string(buffer
);
54 int _web_printf(wofilter_t wof
, const char *format
, ...)
63 if ((b
= malloc(size
)) == NULL
) return 0;
65 va_start(args
, format
);
66 n
= vsnprintf(b
, size
, format
, args
);
94 if (size
> (4 * 1024)) return 0;
98 int web_write(const char *buffer
, int len
)
104 r
= fwrite(buffer
, 1, n
, connfp
);
105 if ((r
== 0) && (errno
!= EINTR
)) return -1;
112 int web_read(void *buffer
, int len
)
115 if (len
<= 0) return 0;
116 while ((r
= fread(buffer
, 1, len
, connfp
)) == 0) {
117 if (errno
!= EINTR
) return -1;
122 int web_read_x(void *buffer
, int len
)
127 n
= web_read(buffer
, len
);
128 if (n
<= 0) return len
;
129 (unsigned char *)buffer
+= n
;
141 if ((n
= web_read(buf
, (max
< sizeof(buf
)) ? max
: sizeof(buf
))) <= 0) return 0;
149 return (fflush(connfp
) == 0);
156 if ((connfp
= ssl_server_fopen(connfd
)) != NULL
) return 1;
160 if ((connfp
= fdopen(connfd
, "r+")) != NULL
) return 1;
167 if (connfp
!= NULL
) {
173 // shutdown(connfd, SHUT_RDWR);
181 // --------------------------------------------------------------------------------------------------------------------
184 static void _web_putfile(FILE *f
, wofilter_t wof
)
189 while ((nr
= fread(buf
, 1, sizeof(buf
) - 1, f
)) > 0) {
205 int web_putfile(const char *fname
, wofilter_t wof
)
209 if ((f
= fopen(fname
, "r")) != NULL
) {
210 _web_putfile(f
, wof
);
217 int web_pipecmd(const char *cmd
, wofilter_t wof
)
221 if ((f
= popen(cmd
, "r")) != NULL
) {
222 _web_putfile(f
, wof
);