12 #define _RPMDB_INTERNAL
21 #if defined(SUPPORT_FILE_ACID)
23 static int _enable_syscall_logging = 0;
25 static int _enable_scriptlet_logging = 0;
29 const uint8_t *
b,
size_t blen,
30 const uint8_t *
d,
size_t dlen, uint32_t dalgo)
33 #if defined(SUPPORT_FILE_ACID)
34 extern int logio_Creat_log
36 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
37 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
42 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
43 FNdbt.
data = (
void *)fn;
44 FNdbt.
size = strlen(fn) + 1;
45 Bdbt.
data = (
void *)b;
47 Ddbt.
data = (
void *)d;
49 rc = logio_Creat_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, mode, &Bdbt, &Ddbt, dalgo);
51 fprintf(stderr,
"<== %s(%s, 0%o, %p[%u], %p[%u], %u) rc %d\n", __FUNCTION__, fn, mode, b, (
unsigned)blen, d, (
unsigned)dlen, (
unsigned)dalgo, rc);
57 const uint8_t *
b,
size_t blen,
58 const uint8_t *
d,
size_t dlen, uint32_t dalgo)
61 #if defined(SUPPORT_FILE_ACID)
62 extern int logio_Unlink_log
64 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
65 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
70 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
71 FNdbt.
data = (
void *)fn;
72 FNdbt.
size = strlen(fn) + 1;
73 Bdbt.
data = (
void *)b;
75 Ddbt.
data = (
void *)d;
77 rc = logio_Unlink_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, mode, &Bdbt, &Ddbt, dalgo);
79 fprintf(stderr,
"<== %s(%s, 0%o, %p[%u], %p[%u], %u) rc %d\n", __FUNCTION__, fn, mode, b, (
unsigned)blen, d, (
unsigned)dlen, (
unsigned)dalgo, rc);
86 const uint8_t *
b,
size_t blen,
87 const uint8_t *
d,
size_t dlen, uint32_t dalgo)
90 #if defined(SUPPORT_FILE_ACID)
91 extern int logio_Rename_log
93 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
94 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
100 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
101 ONdbt.
data = (
void *)oldname;
102 ONdbt.
size = strlen(oldname) + 1;
103 NNdbt.
data = (
void *)newname;
104 NNdbt.
size = strlen(newname) + 1;
105 Bdbt.
data = (
void *)b;
107 Ddbt.
data = (
void *)d;
109 rc = logio_Rename_log(dbenv, _txn, &_lsn, DB_FLUSH, &ONdbt, &NNdbt, mode, &Bdbt, &Ddbt, dalgo);
111 fprintf(stderr,
"<== %s(%s, %s, 0%o, %p[%u], %p[%u], %u) rc %d\n", __FUNCTION__, oldname, newname, mode, b, (
unsigned)blen, d, (
unsigned)dlen, (
unsigned)dalgo, rc);
119 # if defined(SUPPORT_FILE_ACID)
120 extern int logio_Mkdir_log
122 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
123 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
126 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
127 DNdbt.
data = (
void *)dn;
128 DNdbt.
size = strlen(dn) + 1;
129 rc = logio_Mkdir_log(dbenv, _txn, &_lsn, DB_FLUSH, &DNdbt, mode);
131 fprintf(stderr,
"<== %s(%s, 0%o) rc %d\n", __FUNCTION__, dn, mode, rc);
139 # if defined(SUPPORT_FILE_ACID)
140 extern int logio_Rmdir_log
142 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
143 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
146 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
147 DNdbt.
data = (
void *)dn;
148 DNdbt.
size = strlen(dn) + 1;
149 rc = logio_Rmdir_log(dbenv, _txn, &_lsn, DB_FLUSH, &DNdbt, mode);
151 fprintf(stderr,
"<== %s(%s, 0%o) rc %d\n", __FUNCTION__, dn, mode, rc);
159 # if defined(SUPPORT_FILE_ACID)
160 extern int logio_Lsetfilecon_log
162 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
163 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
166 DBT CONTEXTdbt = {0};
167 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
168 FNdbt.
data = (
void *)fn;
169 FNdbt.
size = strlen(fn) + 1;
170 if (context == NULL) context =
"";
172 CONTEXTdbt.
data = (
void *)context;
174 CONTEXTdbt.
size = strlen(context) + 1;
175 rc = logio_Lsetfilecon_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, &CONTEXTdbt);
177 fprintf(stderr,
"<== %s(%s, \"%s\") rc %d\n", __FUNCTION__, fn, context, rc);
185 # if defined(SUPPORT_FILE_ACID)
186 extern int logio_Chown_log
188 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
189 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
192 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
193 FNdbt.
data = (
void *)fn;
194 FNdbt.
size = strlen(fn) + 1;
195 rc = logio_Chown_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, uid, gid);
197 fprintf(stderr,
"<== %s(%s, %u, %u) rc %d\n", __FUNCTION__, fn, (
unsigned)uid, (
unsigned)gid, rc);
205 # if defined(SUPPORT_FILE_ACID)
206 extern int logio_Lchown_log
208 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
209 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
212 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
213 FNdbt.
data = (
void *)fn;
214 FNdbt.
size = strlen(fn) + 1;
215 rc = logio_Lchown_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, uid, gid);
217 fprintf(stderr,
"<== %s(%s, %u, %u) rc %d\n", __FUNCTION__, fn, (
unsigned)uid, (
unsigned)gid, rc);
225 # if defined(SUPPORT_FILE_ACID)
226 extern int logio_Chmod_log
228 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
229 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
232 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
233 FNdbt.
data = (
void *)fn;
234 FNdbt.
size = strlen(fn) + 1;
235 rc = logio_Chmod_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, mode);
237 fprintf(stderr,
"<== %s(%s, 0%o) rc %d\n", __FUNCTION__, fn, mode, rc);
245 # if defined(SUPPORT_FILE_ACID)
246 extern int logio_Utime_log
248 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
249 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
252 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
253 FNdbt.
data = (
void *)fn;
254 FNdbt.
size = strlen(fn) + 1;
255 rc = logio_Utime_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, actime, modtime);
257 fprintf(stderr,
"<== %s(%s, 0x%x, 0x%x) rc %d\n", __FUNCTION__, fn, (
unsigned)actime, (
unsigned)modtime, rc);
265 # if defined(SUPPORT_FILE_ACID)
266 extern int logio_Symlink_log
268 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
269 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
273 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
274 LNdbt.
data = (
void *)ln;
275 LNdbt.
size = strlen(ln) + 1;
276 FNdbt.
data = (
void *)fn;
277 FNdbt.
size = strlen(fn) + 1;
278 rc = logio_Symlink_log(dbenv, _txn, &_lsn, DB_FLUSH, &LNdbt, &FNdbt);
280 fprintf(stderr,
"<== %s(%s, %s) rc %d\n", __FUNCTION__, ln, fn, rc);
288 # if defined(SUPPORT_FILE_ACID)
289 extern int logio_Link_log
291 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
292 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
296 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
297 LNdbt.
data = (
void *)ln;
298 LNdbt.
size = strlen(ln) + 1;
299 FNdbt.
data = (
void *)fn;
300 FNdbt.
size = strlen(fn) + 1;
301 rc = logio_Link_log(dbenv, _txn, &_lsn, DB_FLUSH, &LNdbt, &FNdbt);
303 fprintf(stderr,
"<== %s(%s, %s) rc %d\n", __FUNCTION__, ln, fn, rc);
311 # if defined(SUPPORT_FILE_ACID)
312 extern int logio_Mknod_log
314 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
315 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
318 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
319 FNdbt.
data = (
void *)fn;
320 FNdbt.
size = strlen(fn) + 1;
321 rc = logio_Mknod_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, mode, dev);
323 fprintf(stderr,
"<== %s(%s, 0%o, 0x%x) rc %d\n", __FUNCTION__, fn, mode, (
unsigned)dev, rc);
331 # if defined(SUPPORT_FILE_ACID)
332 extern int logio_Mkfifo_log
334 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
335 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
338 if (!(dbenv && _txn && _enable_syscall_logging))
return 0;
339 FNdbt.
data = (
void *)fn;
340 FNdbt.
size = strlen(fn) + 1;
341 rc = logio_Mkfifo_log(dbenv, _txn, &_lsn, DB_FLUSH, &FNdbt, mode);
343 fprintf(stderr,
"<== %s(%s, 0%o) rc %d\n", __FUNCTION__, fn, mode, rc);
351 # if defined(SUPPORT_FILE_ACID)
353 extern int logio_Prein_log
355 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
356 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
360 if (!(dbenv && _txn && _enable_scriptlet_logging))
return 0;
361 AVdbt.
data = (
void *)cmd;
362 AVdbt.
size = strlen(cmd) + 1;
363 BODYdbt.
data = (
void *)body;
364 BODYdbt.
size = strlen(body) + 1;
365 rc = logio_Prein_log(dbenv, _txn, &_lsn, DB_FLUSH, &AVdbt, &BODYdbt);
367 fprintf(stderr,
"<== %s(%p,%p) rc %d\n", __FUNCTION__, av, body, rc);
376 # if defined(SUPPORT_FILE_ACID)
378 extern int logio_Postin_log
380 DB_ENV * dbenv = rpmdb->db_dbenv;
381 DB_TXN * _txn = rpmdb->db_txn;
385 if (!(dbenv && _txn && _enable_scriptlet_logging))
return 0;
386 AVdbt.
data = (
void *)cmd;
387 AVdbt.
size = strlen(cmd) + 1;
388 BODYdbt.
data = (
void *)body;
389 BODYdbt.
size = strlen(body) + 1;
390 rc = logio_Postin_log(dbenv, _txn, &_lsn, DB_FLUSH, &AVdbt, &BODYdbt);
392 fprintf(stderr,
"<== %s(%p,%p) rc %d\n", __FUNCTION__, av, body, rc);
401 # if defined(SUPPORT_FILE_ACID)
403 extern int logio_Preun_log
405 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
406 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
410 if (!(dbenv && _txn && _enable_scriptlet_logging))
return 0;
411 AVdbt.
data = (
void *)cmd;
412 AVdbt.
size = strlen(cmd) + 1;
413 BODYdbt.
data = (
void *)body;
414 BODYdbt.
size = strlen(body) + 1;
415 rc = logio_Preun_log(dbenv, _txn, &_lsn, DB_FLUSH, &AVdbt, &BODYdbt);
417 fprintf(stderr,
"<== %s(%p,%p) rc %d\n", __FUNCTION__, av, body, rc);
426 # if defined(SUPPORT_FILE_ACID)
428 extern int logio_Postun_log
430 DB_ENV * dbenv = (rpmdb ? rpmdb->db_dbenv : NULL);
431 DB_TXN * _txn = (rpmdb ? rpmdb->db_txn : NULL);
435 if (!(dbenv && _txn && _enable_scriptlet_logging))
return 0;
436 AVdbt.
data = (
void *)cmd;
437 AVdbt.
size = strlen(cmd) + 1;
438 BODYdbt.
data = (
void *)body;
439 BODYdbt.
size = strlen(body) + 1;
440 rc = logio_Postun_log(dbenv, _txn, &_lsn, DB_FLUSH, &AVdbt, &BODYdbt);
442 fprintf(stderr,
"<== %s(%p,%p) rc %d\n", __FUNCTION__, av, body, rc);
const char const double d
int rpmlioRename(rpmdb rpmdb, const char *oldname, const char *newname, mode_t mode, const uint8_t *b, size_t blen, const uint8_t *d, size_t dlen, uint32_t dalgo)
const char const char * cmd
int rpmlioPrein(rpmdb rpmdb, const char **av, const char *body)
int rpmlioPreun(rpmdb rpmdb, const char **av, const char *body)
int rpmlioPostin(rpmdb rpmdb, const char **av, const char *body)
int rpmlioMkfifo(rpmdb rpmdb, const char *fn, mode_t mode)
int rpmlioLink(rpmdb rpmdb, const char *ln, const char *fn)
int rpmlioRmdir(rpmdb rpmdb, const char *dn, mode_t mode)
char * argvJoin(ARGV_t argv, char sep)
Concatenate an argv array into a string.
int rpmlioMknod(rpmdb rpmdb, const char *fn, mode_t mode, dev_t dev)
int rpmlioCreat(rpmdb rpmdb, const char *fn, mode_t mode, const uint8_t *b, size_t blen, const uint8_t *d, size_t dlen, uint32_t dalgo)
int rpmlioChown(rpmdb rpmdb, const char *fn, uid_t uid, gid_t gid)
int rpmlioUnlink(rpmdb rpmdb, const char *fn, mode_t mode, const uint8_t *b, size_t blen, const uint8_t *d, size_t dlen, uint32_t dalgo)
int rpmlioLsetfilecon(rpmdb rpmdb, const char *fn, const char *context)
struct rpmdb_s * rpmdb
Database of headers and tag value indices.
int rpmlioPostun(rpmdb rpmdb, const char **av, const char *body)
int rpmlioLchown(rpmdb rpmdb, const char *fn, uid_t uid, gid_t gid)
int rpmlioUtime(rpmdb rpmdb, const char *fn, time_t actime, time_t modtime)
int rpmlioChmod(rpmdb rpmdb, const char *fn, mode_t mode)
static void * _free(const void *p)
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
int rpmlioSymlink(rpmdb rpmdb, const char *ln, const char *fn)
Access RPM indices using Berkeley DB interface(s).
int rpmlioMkdir(rpmdb rpmdb, const char *dn, mode_t mode)