19 #define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG))
21 #define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG))
22 #define VSF_SET(_vsflags, _FLAG) \
23 (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG))
24 #define VSF_CLR(_vsflags, _FLAG) \
25 (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG))
29 #define QVA_ISSET(_qvaflags, _FLAG) ((_qvaflags) & (VERIFY_##_FLAG))
31 #define VSF_ISSET(_vsflags, _FLAG) ((_vsflags) & (RPMVSF_##_FLAG))
32 #define VSF_SET(_vsflags, _FLAG) (_vsflags) |= (RPMVSF_##_FLAG)
33 #define VSF_CLR(_vsflags, _FLAG) (_vsflags) &= ~(RPMVSF_##_FLAG)
37 int main(
int argc,
char **argv)
46 if (argc == 1 || (argc == 2 && !strcmp(argv[1],
"-")))
47 fdi =
fdDup(STDIN_FILENO);
49 int ut =
urlPath(argv[1], NULL);
51 fprintf(stderr,
"%s: %s: HTTP/HTTPS transport is non-functional.\n",
55 fdi =
Fopen(argv[1],
"r");
59 fprintf(stderr,
"%s: %s: %s\n", argv[0],
60 (argc == 1 ?
"<stdin>" : argv[1]),
Fstrerror(fdi));
63 fdo =
fdDup(STDOUT_FILENO);
70 #if defined(SUPPORT_NOSIGNATURES)
104 fprintf(stderr,
_(
"argument is not an RPM package\n"));
109 fprintf(stderr,
_(
"error reading header from package\n"));
115 {
HE_t he = memset(
alloca(
sizeof(*he)), 0,
sizeof(*he));
116 const char * payload_compressor = NULL;
122 payload_compressor = (xx ? he->
p.
str :
"gzip");
124 rpmio_flags = t =
alloca(
sizeof(
"r.gzdio"));
126 if (!strcmp(payload_compressor,
"gzip"))
128 if (!strcmp(payload_compressor,
"bzip2"))
130 if (!strcmp(payload_compressor,
"lzma"))
132 if (!strcmp(payload_compressor,
"xz"))
137 gzdi =
Fdopen(fdi, rpmio_flags);
139 fprintf(stderr,
_(
"cannot re-open payload: %s\n"),
Fstrerror(gzdi));
int ufdCopy(FD_t sfd, FD_t tfd)
const char bson_timestamp_t * ts
FD_t Fopen(const char *path, const char *_fmode)
fopen(3) clone.
static rpmVSFlags vsflags
#define VSF_SET(_vsflags, _FLAG)
const char * Fstrerror(FD_t fd)
strerror(3) clone.
int main(int argc, char **argv)
rpmRC rpmReadPackageFile(rpmts ts, FD_t fd, const char *fn, Header *hdrp)
Return package header from file handle, verifying digests/signatures.
The FD_t File Handle data structure.
pgpVSFlags rpmVSFlags
Bit(s) to control digest and signature verification.
int Fclose(FD_t fd)
fclose(3) clone.
enum rpmRC_e rpmRC
RPM return codes.
int Ferror(FD_t fd)
ferror(3) clone.
urltype urlPath(const char *url, const char **pathp)
Return path component of URL.
rpmts rpmtsFree(rpmts ts)
Destroy transaction set, closing the database as well.
rpmts rpmtsCreate(void)
Create an empty transaction set.
Methods to handle package elements.
rpmVSFlags rpmtsSetVSFlags(rpmts ts, rpmVSFlags vsflags)
Set verify signatures flag(s).
char * stpcpy(char *dest, const char *src)
struct rpmts_s * rpmts
The RPM Transaction Set.
static void * _free(const void *p)
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
Structures and prototypes used for an "rpmts" transaction set.
FD_t Fdopen(FD_t ofd, const char *fmode)
#define VSF_CLR(_vsflags, _FLAG)