- added 'lastupdate' field to pmdb_t
- added a new public function alpm_db_getinfo - added a public parameter PM_PKG_DB for PM_PKG struct
This commit is contained in:
parent
a94c24c406
commit
80bae750cd
4 changed files with 34 additions and 14 deletions
|
@ -206,18 +206,22 @@ int alpm_db_unregister(PM_DB *db)
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int alpm_db_getlastupdate(PM_DB *db, char *ts)
|
void *alpm_db_getinfo(PM_DB *db, unsigned char parm)
|
||||||
{
|
{
|
||||||
/* Sanity checks */
|
void *data = NULL;
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
|
||||||
ASSERT(db != NULL && db != handle->db_local, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
ASSERT(ts != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
if(!pm_list_is_ptrin(handle->dbs_sync, db)) {
|
/* Sanity checks */
|
||||||
RET_ERR(PM_ERR_DB_NOT_FOUND, -1);
|
ASSERT(handle != NULL, return(NULL));
|
||||||
|
ASSERT(db != NULL, return(NULL));
|
||||||
|
|
||||||
|
switch(parm) {
|
||||||
|
case PM_DB_TREENAME: data = db->treename; break;
|
||||||
|
case PM_DB_LASTUPDATE: data = db->lastupdate; break;
|
||||||
|
default:
|
||||||
|
data = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(db_getlastupdate(db, ts));
|
return(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
int alpm_db_update(PM_DB *db, char *archive, char *ts)
|
int alpm_db_update(PM_DB *db, char *archive, char *ts)
|
||||||
|
@ -322,7 +326,7 @@ PM_LIST *alpm_db_getgrpcache(PM_DB *db)
|
||||||
|
|
||||||
void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
|
void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
|
||||||
{
|
{
|
||||||
void *data;
|
void *data = NULL;
|
||||||
|
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(handle != NULL, return(NULL));
|
ASSERT(handle != NULL, return(NULL));
|
||||||
|
@ -337,7 +341,7 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
|
||||||
char target[PKG_NAME_LEN+PKG_VERSION_LEN];
|
char target[PKG_NAME_LEN+PKG_VERSION_LEN];
|
||||||
|
|
||||||
snprintf(target, PKG_NAME_LEN+PKG_VERSION_LEN, "%s-%s", pkg->name, pkg->version);
|
snprintf(target, PKG_NAME_LEN+PKG_VERSION_LEN, "%s-%s", pkg->name, pkg->version);
|
||||||
db_read(pkg->data, target, INFRQ_FILES, pkg);
|
db_read(pkg->data, pkg->name, INFRQ_FILES, pkg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -374,6 +378,7 @@ void *alpm_pkg_getinfo(PM_PKG *pkg, unsigned char parm)
|
||||||
case PM_PKG_FILES: data = pkg->files; break;
|
case PM_PKG_FILES: data = pkg->files; break;
|
||||||
case PM_PKG_BACKUP: data = pkg->backup; break;
|
case PM_PKG_BACKUP: data = pkg->backup; break;
|
||||||
case PM_PKG_SCRIPLET: data = (void *)(int)pkg->scriptlet; break;
|
case PM_PKG_SCRIPLET: data = (void *)(int)pkg->scriptlet; break;
|
||||||
|
case PM_PKG_DB: data = pkg->data; break;
|
||||||
default:
|
default:
|
||||||
data = NULL;
|
data = NULL;
|
||||||
break;
|
break;
|
||||||
|
@ -418,7 +423,7 @@ int alpm_pkg_vercmp(const char *ver1, const char *ver2)
|
||||||
|
|
||||||
void *alpm_grp_getinfo(PM_GRP *grp, unsigned char parm)
|
void *alpm_grp_getinfo(PM_GRP *grp, unsigned char parm)
|
||||||
{
|
{
|
||||||
void *data;
|
void *data = NULL;
|
||||||
|
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(grp != NULL, return(NULL));
|
ASSERT(grp != NULL, return(NULL));
|
||||||
|
|
|
@ -93,11 +93,17 @@ int alpm_get_option(unsigned char parm, long *data);
|
||||||
* Databases
|
* Databases
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Info parameters */
|
||||||
|
enum {
|
||||||
|
PM_DB_TREENAME = 1,
|
||||||
|
PM_DB_LASTUPDATE
|
||||||
|
};
|
||||||
|
|
||||||
PM_DB *alpm_db_register(char *treename);
|
PM_DB *alpm_db_register(char *treename);
|
||||||
int alpm_db_unregister(PM_DB *db);
|
int alpm_db_unregister(PM_DB *db);
|
||||||
|
|
||||||
/* Sync databases */
|
void *alpm_db_getinfo(PM_DB *db, unsigned char parm);
|
||||||
int alpm_db_getlastupdate(PM_DB *db, char *ts);
|
|
||||||
int alpm_db_update(PM_DB *db, char *archive, char *ts);
|
int alpm_db_update(PM_DB *db, char *archive, char *ts);
|
||||||
|
|
||||||
PM_PKG *alpm_db_readpkg(PM_DB *db, char *name);
|
PM_PKG *alpm_db_readpkg(PM_DB *db, char *name);
|
||||||
|
@ -136,7 +142,9 @@ enum {
|
||||||
PM_PKG_FILES,
|
PM_PKG_FILES,
|
||||||
PM_PKG_BACKUP,
|
PM_PKG_BACKUP,
|
||||||
/* Sciplet */
|
/* Sciplet */
|
||||||
PM_PKG_SCRIPLET
|
PM_PKG_SCRIPLET,
|
||||||
|
/* Misc */
|
||||||
|
PM_PKG_DB
|
||||||
};
|
};
|
||||||
|
|
||||||
/* reasons -- ie, why the package was installed */
|
/* reasons -- ie, why the package was installed */
|
||||||
|
|
|
@ -60,6 +60,8 @@ pmdb_t *db_open(char *root, char *dbpath, char *treename)
|
||||||
db->pkgcache = NULL;
|
db->pkgcache = NULL;
|
||||||
db->grpcache = NULL;
|
db->grpcache = NULL;
|
||||||
|
|
||||||
|
db_getlastupdate(db, db->lastupdate);
|
||||||
|
|
||||||
return(db);
|
return(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,6 +154,9 @@ int db_setlastupdate(pmdb_t *db, char *ts)
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
|
STRNCPY(db->lastupdate, ts, DB_UPDATE_LEN);
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#define INFRQ_ALL 0xFF
|
#define INFRQ_ALL 0xFF
|
||||||
|
|
||||||
#define DB_TREENAME_LEN 128
|
#define DB_TREENAME_LEN 128
|
||||||
|
#define DB_UPDATE_LEN 16
|
||||||
|
|
||||||
/* Database */
|
/* Database */
|
||||||
typedef struct __pmdb_t {
|
typedef struct __pmdb_t {
|
||||||
|
@ -43,6 +44,7 @@ typedef struct __pmdb_t {
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
PMList *pkgcache;
|
PMList *pkgcache;
|
||||||
PMList *grpcache;
|
PMList *grpcache;
|
||||||
|
char lastupdate[DB_UPDATE_LEN];
|
||||||
} pmdb_t;
|
} pmdb_t;
|
||||||
|
|
||||||
pmdb_t *db_open(char *root, char *dbpath, char *treename);
|
pmdb_t *db_open(char *root, char *dbpath, char *treename);
|
||||||
|
|
Loading…
Add table
Reference in a new issue