示例#1
0
文件: dump.c 项目: xrg/RPM
int main(int argc, char *argv[])
{
    Header h;
    FD_t fdi;

    setprogname(argv[0]);	/* Retrofit glibc __progname */
    if (argc == 1) {
	fdi = Fopen("-", "r.ufdio");
    } else {
	fdi = Fopen(argv[1], "r.ufdio");
    }

    if (Ferror(fdi)) {
	fprintf(stderr, "cannot open %s: %s\n",
		(argc == 1 ? "<stdin>" : argv[1]), Fstrerror(fdi));
	exit(EXIT_FAILURE);
    }

    h = headerRead(fdi, HEADER_MAGIC_YES);
    if (!h) {
	fprintf(stderr, "headerRead error: %s\n", Fstrerror(fdi));
	exit(EXIT_FAILURE);
    }
    Fclose(fdi);
  
    headerDump(h, stdout, HEADER_DUMP_INLINE, rpmTagTable);
    h = headerFree(h);

    return 0;
}
示例#2
0
文件: showdb.c 项目: avokhmin/RPM5
int main( int argc, char **argv )
{
    rpmmi mi;
    Header h;
    int_32 type, count;
    char *name;
    rpmdb db;

    rpmReadConfigFiles( NULL, NULL );

    if( rpmdbOpen( "", &db, O_RDONLY, 0644 ) != 0 ) {
	fprintf( stderr, "cannot open database!\n" );
	exit(EXIT_FAILURE);
    }

    mi = rpmmiInit(db, RPMDBI_PACKAGES, NULL, 0);
    while ((h = rpmmiNext(mi)) != NULL) {

	headerGetEntry( h, RPMTAG_NAME, &type, (void**)&name, &count );
	if( strcmp(name,argv[1]) == 0 )
	    headerDump( h, stdout, HEADER_DUMP_INLINE, rpmTagTable );

	/*
	 * Note that the header reference is "owned" by the iterator,
	 * so no headerFree() is necessary.
	 */

    }
    mi = rpmmiFree(mi);

    rpmdbClose( db );

    return 0;
}
示例#3
0
文件: pkgu.c 项目: megabajt/poldek
int pkguinf_store_rpmhdr(struct pkguinf *pkgu, tn_buf *nbuf) 
{
    Header   hdr = NULL;
    void     *rawhdr;
    int      rawhdr_size;
    
    int rc;


    hdr = make_pkguinf_hdr(pkgu, NULL);
    
#ifdef HAVE_RPM_VERSION_GE_5
    rawhdr = headerUnload(hdr, &rawhdr_size);
#else
    rawhdr_size = hacked_headerSizeof(hdr);
    rawhdr = headerUnload(hdr);
#endif

#if 0    
    printf("> %ld\t%d\n", ftell(stream), hacked_headerSizeof(pkgu->_hdr));
    headerDump(pkgu->_hdr, stdout, HEADER_DUMP_INLINE, rpmTagTable);
#endif     

	n_buf_write_int16(nbuf, n_hash_size(pkgu->_ht));
    n_buf_write_int16(nbuf, rawhdr_size);

    
    rc = (n_buf_write(nbuf, rawhdr, rawhdr_size) == rawhdr_size);
    
    free(rawhdr);
    headerFree(hdr);
    
    return rc;
}