X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Ffb-socket.c;h=0a78273f3ec124f0d1d885d8ede0d46ec33e61e5;hb=643dc4c0697865fbe124d814e736d64a456a5da2;hp=d90f7e7c18bbedfe1bfa24c00ec7091a2deab18e;hpb=a45646a634b71708f5bc4277868c60e80daaa84c;p=libucw.git diff --git a/ucw/fb-socket.c b/ucw/fb-socket.c index d90f7e7c..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); } @@ -125,7 +126,6 @@ fbsock_create(struct fbsock_params *p) f->spout = fbs_spout; f->close = fbs_close; f->can_overwrite_buffer = 1; - fb_tie(f); return f; }