52 return mbuf->data_end -
mbuf->read_pos;
124 mbuf->no_write =
false;
125 mbuf->own_data =
true;
141 mbuf->no_write =
true;
142 mbuf->own_data =
false;
154 mbuf->no_write =
true;
166 mbuf->no_write =
true;
167 mbuf->own_data =
false;
232 pf->op->free(
pf->priv);
252 if (
pf->buflen &&
len >
pf->buflen)
255 pf->buf,
pf->buflen);
270 if (res <= 0 || res ==
len)
311 px_debug(
"pullf_read_fixed: need=%d got=%d",
len, res);
376 mp->block_size = res;
380 if (
mp->block_size > 0)
398 mp->op->free(
mp->priv);
447 if (
mp->block_size <= 0)
480 if (
len >
mp->block_size)
486 len -=
mp->block_size;
505 if (
mp->block_size > 0)
514 res =
mp->op->flush(
mp->next,
mp->priv);
536 return res < 0 ? res : 0;
#define palloc_object(type)
#define palloc0_object(type)
static int pull_from_mbuf(void *arg, PullFilter *src, int len, uint8 **data_p, uint8 *buf, int buflen)
int pullf_read_fixed(PullFilter *src, int len, uint8 *dst)
int pullf_create(PullFilter **pf_p, const PullFilterOps *op, void *init_arg, PullFilter *src)
int pushf_write(PushFilter *mp, const uint8 *data, int len)
int mbuf_avail(MBuf *mbuf)
int pushf_create(PushFilter **mp_p, const PushFilterOps *op, void *init_arg, PushFilter *next)
int pullf_read_max(PullFilter *pf, int len, uint8 **data_p, uint8 *tmpbuf)
int mbuf_free(MBuf *mbuf)
int pullf_create_mbuf_reader(PullFilter **mp_p, MBuf *src)
int mbuf_append(MBuf *dst, const uint8 *buf, int len)
int pullf_read(PullFilter *pf, int len, uint8 **data_p)
int pushf_create_mbuf_writer(PushFilter **res, MBuf *dst)
static void prepare_room(MBuf *mbuf, int block_len)
static const struct PullFilterOps mbuf_reader
MBuf * mbuf_create_from_data(uint8 *data, int len)
int mbuf_steal_data(MBuf *mbuf, uint8 **data_p)
MBuf * mbuf_create(int len)
void pushf_free_all(PushFilter *mp)
int pushf_flush(PushFilter *mp)
static const struct PushFilterOps mbuf_filter
static int wrap_process(PushFilter *mp, const uint8 *data, int len)
static int push_into_mbuf(PushFilter *next, void *arg, const uint8 *data, int len)
int mbuf_size(MBuf *mbuf)
int mbuf_grab(MBuf *mbuf, int len, uint8 **data_p)
void pushf_free(PushFilter *mp)
void pullf_free(PullFilter *pf)
void * repalloc(void *pointer, Size size)
void pfree(void *pointer)
static char buf[DEFAULT_XLOG_SEG_SIZE]
void px_debug(const char *fmt,...)
void px_memset(void *ptr, int c, size_t len)
#define PXE_PGP_CORRUPT_DATA
int(* init)(void **priv_p, void *init_arg, PullFilter *src)
int(* init)(PushFilter *next, void *init_arg, void **priv_p)
int(* push)(PushFilter *next, void *priv, const uint8 *src, int len)
static StringInfoData tmpbuf