mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-21 14:47:03 +01:00
common/iobuf.c: Refactor code to not need the desc field.
* common/iobuf.h (struct iobuf_struct): Remove field desc. * common/iobuf.c (iobuf_desc): New function. When a filter's description is needed, use this instead of the filter's desc field. -- Signed-off-by: Neal H. Walfield <neal@g10code.com>.
This commit is contained in:
parent
12fc56bcb5
commit
679acc671e
@ -1069,6 +1069,20 @@ block_filter (void *opaque, int control, iobuf_t chain, byte * buffer,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static const char *
|
||||
iobuf_desc (iobuf_t a)
|
||||
{
|
||||
size_t dummy_len = 0;
|
||||
const char *desc = "?";
|
||||
|
||||
if (! a || ! a->filter)
|
||||
return desc;
|
||||
|
||||
a->filter (a->filter_ov, IOBUFCTRL_DESC, NULL,
|
||||
(byte *) & desc, &dummy_len);
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
static void
|
||||
print_chain (iobuf_t a)
|
||||
@ -1077,15 +1091,9 @@ print_chain (iobuf_t a)
|
||||
return;
|
||||
for (; a; a = a->chain)
|
||||
{
|
||||
size_t dummy_len = 0;
|
||||
const char *desc = "[none]";
|
||||
|
||||
if (a->filter)
|
||||
a->filter (a->filter_ov, IOBUFCTRL_DESC, NULL,
|
||||
(byte *) & desc, &dummy_len);
|
||||
|
||||
log_debug ("iobuf chain: %d.%d '%s' filter_eof=%d start=%d len=%d\n",
|
||||
a->no, a->subno, desc?desc:"?", a->filter_eof,
|
||||
a->no, a->subno, iobuf_desc (a), a->filter_eof,
|
||||
(int) a->d.start, (int) a->d.len);
|
||||
}
|
||||
}
|
||||
@ -1136,8 +1144,9 @@ iobuf_close (iobuf_t a)
|
||||
log_error ("iobuf_flush failed on close: %s\n", gpg_strerror (rc));
|
||||
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: close '%s'\n", a->no, a->subno,
|
||||
a->desc?a->desc:"?");
|
||||
log_debug ("iobuf-%d.%d: close '%s'\n",
|
||||
a->no, a->subno, iobuf_desc (a));
|
||||
|
||||
if (a->filter && (rc = a->filter (a->filter_ov, IOBUFCTRL_FREE,
|
||||
a->chain, NULL, &dummy_len)))
|
||||
log_error ("IOBUFCTRL_FREE failed on close: %s\n", gpg_strerror (rc));
|
||||
@ -1322,7 +1331,6 @@ iobuf_open (const char *fname)
|
||||
a->real_fname = xstrdup (fname);
|
||||
a->filter = file_filter;
|
||||
a->filter_ov = fcx;
|
||||
file_filter (fcx, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &len);
|
||||
file_filter (fcx, IOBUFCTRL_INIT, NULL, NULL, &len);
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: open '%s' fd=%d\n",
|
||||
@ -1351,7 +1359,6 @@ do_iobuf_fdopen (int fd, const char *mode, int keep_open)
|
||||
sprintf (fcx->fname, "[fd %d]", fd);
|
||||
a->filter = file_filter;
|
||||
a->filter_ov = fcx;
|
||||
file_filter (fcx, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &len);
|
||||
file_filter (fcx, IOBUFCTRL_INIT, NULL, NULL, &len);
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: fdopen%s '%s'\n",
|
||||
@ -1392,7 +1399,6 @@ iobuf_esopen (estream_t estream, const char *mode, int keep_open)
|
||||
sprintf (fcx->fname, "[fd %p]", estream);
|
||||
a->filter = file_es_filter;
|
||||
a->filter_ov = fcx;
|
||||
file_es_filter (fcx, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &len);
|
||||
file_es_filter (fcx, IOBUFCTRL_INIT, NULL, NULL, &len);
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: esopen%s '%s'\n",
|
||||
@ -1417,7 +1423,6 @@ iobuf_sockopen (int fd, const char *mode)
|
||||
sprintf (scx->fname, "[sock %d]", fd);
|
||||
a->filter = sock_filter;
|
||||
a->filter_ov = scx;
|
||||
sock_filter (scx, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &len);
|
||||
sock_filter (scx, IOBUFCTRL_INIT, NULL, NULL, &len);
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: sockopen '%s'\n", a->no, a->subno, scx->fname);
|
||||
@ -1461,11 +1466,10 @@ iobuf_create (const char *fname, int mode700)
|
||||
a->real_fname = xstrdup (fname);
|
||||
a->filter = file_filter;
|
||||
a->filter_ov = fcx;
|
||||
file_filter (fcx, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &len);
|
||||
file_filter (fcx, IOBUFCTRL_INIT, NULL, NULL, &len);
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: create '%s'\n", a->no, a->subno,
|
||||
a->desc?a->desc:"?");
|
||||
log_debug ("iobuf-%d.%d: create '%s'\n",
|
||||
a->no, a->subno, iobuf_desc (a));
|
||||
|
||||
return a;
|
||||
}
|
||||
@ -1490,11 +1494,10 @@ iobuf_openrw (const char *fname)
|
||||
a->real_fname = xstrdup (fname);
|
||||
a->filter = file_filter;
|
||||
a->filter_ov = fcx;
|
||||
file_filter (fcx, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &len);
|
||||
file_filter (fcx, IOBUFCTRL_INIT, NULL, NULL, &len);
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: openrw '%s'\n", a->no, a->subno,
|
||||
a->desc?a->desc:"?");
|
||||
log_debug ("iobuf-%d.%d: openrw '%s'\n",
|
||||
a->no, a->subno, iobuf_desc (a));
|
||||
|
||||
return a;
|
||||
}
|
||||
@ -1510,8 +1513,7 @@ iobuf_ioctl (iobuf_t a, iobuf_ioctl_t cmd, int intval, void *ptrval)
|
||||
anymore. */
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: ioctl '%s' keep_open=%d\n",
|
||||
a ? a->no : -1, a ? a->subno : -1,
|
||||
a && a->desc ? a->desc : "?",
|
||||
a ? a->no : -1, a ? a->subno : -1, iobuf_desc (a),
|
||||
intval);
|
||||
for (; a; a = a->chain)
|
||||
if (!a->chain && a->filter == file_filter)
|
||||
@ -1545,8 +1547,7 @@ iobuf_ioctl (iobuf_t a, iobuf_ioctl_t cmd, int intval, void *ptrval)
|
||||
{
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: ioctl '%s' no_cache=%d\n",
|
||||
a ? a->no : -1, a ? a->subno : -1,
|
||||
a && a->desc? a->desc : "?",
|
||||
a ? a->no : -1, a ? a->subno : -1, iobuf_desc (a),
|
||||
intval);
|
||||
for (; a; a = a->chain)
|
||||
if (!a->chain && a->filter == file_filter)
|
||||
@ -1661,12 +1662,11 @@ iobuf_push_filter2 (iobuf_t a,
|
||||
a->filter_ov_owner = rel_ov;
|
||||
|
||||
a->subno = b->subno + 1;
|
||||
f (ov, IOBUFCTRL_DESC, NULL, (byte *) & a->desc, &dummy_len);
|
||||
|
||||
if (DBG_IOBUF)
|
||||
{
|
||||
log_debug ("iobuf-%d.%d: push '%s'\n", a->no, a->subno,
|
||||
a->desc?a->desc:"?");
|
||||
log_debug ("iobuf-%d.%d: push '%s'\n",
|
||||
a->no, a->subno, iobuf_desc (a));
|
||||
print_chain (a);
|
||||
}
|
||||
|
||||
@ -1690,8 +1690,8 @@ pop_filter (iobuf_t a, int (*f) (void *opaque, int control,
|
||||
int rc = 0;
|
||||
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: pop '%s'\n", a->no, a->subno,
|
||||
a->desc?a->desc:"?");
|
||||
log_debug ("iobuf-%d.%d: pop '%s'\n",
|
||||
a->no, a->subno, iobuf_desc (a));
|
||||
if (!a->filter)
|
||||
{ /* this is simple */
|
||||
b = a->chain;
|
||||
@ -1778,7 +1778,7 @@ underflow (iobuf_t a)
|
||||
iobuf_t b = a->chain;
|
||||
if (DBG_IOBUF)
|
||||
log_debug ("iobuf-%d.%d: pop '%s' in underflow\n",
|
||||
a->no, a->subno, a->desc?a->desc:"?");
|
||||
a->no, a->subno, iobuf_desc (a));
|
||||
xfree (a->d.buf);
|
||||
xfree (a->real_fname);
|
||||
memcpy (a, b, sizeof *a);
|
||||
@ -1828,7 +1828,6 @@ underflow (iobuf_t a)
|
||||
a->filter_ov = NULL;
|
||||
}
|
||||
a->filter = NULL;
|
||||
a->desc = NULL;
|
||||
a->filter_ov = NULL;
|
||||
a->filter_eof = 1;
|
||||
if (!len && a->chain)
|
||||
|
@ -99,7 +99,6 @@ struct iobuf_struct
|
||||
iobuf_t chain; /* Next iobuf used for i/o if any
|
||||
(passed to filter) */
|
||||
int no, subno;
|
||||
const char *desc;
|
||||
};
|
||||
|
||||
#ifndef EXTERN_UNLESS_MAIN_MODULE
|
||||
|
Loading…
x
Reference in New Issue
Block a user