void RpmTransaction::close() { if (!m_initialized) return; rpmdbClose(m_db); m_initialized = 0; }
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; }
static void db_unref(rpm_db_t* db){ db->ref_count--; if (!db->ref_count){ rpmdbClose(db->db); free(db); } }
void End_HR_SWInst(void) { SWI_t *swi = &_myswi; /* XXX static for now */ #ifdef HAVE_LIBRPM rpmdbClose(swi->swi_rpmdb); /* or only on finishing ? */ swi->swi_rpmdb = NULL; #else if (swi->swi_dp != NULL) closedir(swi->swi_dp); swi->swi_dp = NULL; #endif }
int rpmtsCloseDB(rpmts ts) { int rc = 0; if (ts->rdb != NULL) { (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBGET), rpmdbOp(ts->rdb, RPMDB_OP_DBGET)); (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBPUT), rpmdbOp(ts->rdb, RPMDB_OP_DBPUT)); (void) rpmswAdd(rpmtsOp(ts, RPMTS_OP_DBDEL), rpmdbOp(ts->rdb, RPMDB_OP_DBDEL)); rc = rpmdbClose(ts->rdb); ts->rdb = NULL; } return rc; }