X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Ffb-socket.c;h=0a78273f3ec124f0d1d885d8ede0d46ec33e61e5;hb=d9c55a4d021b4a317a25f14f89468d62592aae0b;hp=dce8fffde2d540ebdde0c9992cd2e64bb8b4447b;hpb=031256ad2e123eec58521f8e3eb9496c197641d2;p=libucw.git diff --git a/ucw/fb-socket.c b/ucw/fb-socket.c index dce8fffd..0a78273f 100644 --- a/ucw/fb-socket.c +++ b/ucw/fb-socket.c @@ -7,9 +7,9 @@ * of the GNU Lesser General Public License. */ -#include "ucw/lib.h" -#include "ucw/fastbuf.h" -#include "ucw/fb-socket.h" +#include +#include +#include #include #include @@ -22,7 +22,7 @@ struct fb_sock { byte buf[0]; }; -#define FB_SOCK(f) ((struct fb_sock *)(f)->is_fastbuf) +#define FB_SOCK(f) ((struct fb_sock *)(f)) static int fbs_refill(struct fastbuf *f) @@ -71,9 +71,9 @@ fbs_spout(struct fastbuf *f) .events = POLLOUT, }; - int l = f->bptr - f->buffer; - f->bptr = f->buffer; - char *buf = f->buffer; + int l = f->bptr - f->bstop; + f->bptr = f->bstop; + char *buf = f->bstop; while (l) { @@ -105,7 +105,8 @@ fbs_spout(struct fastbuf *f) static void fbs_close(struct fastbuf *f) { - close(FB_SOCK(f)->par.fd); + if (!FB_SOCK(f)->par.fd_is_shared) + close(FB_SOCK(f)->par.fd); xfree(f); }