diff options
Diffstat (limited to 'archival/rpm.c')
-rw-r--r-- | archival/rpm.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/archival/rpm.c b/archival/rpm.c index 7b27c0250..d399e0ea2 100644 --- a/archival/rpm.c +++ b/archival/rpm.c | |||
@@ -70,17 +70,15 @@ static void *map; | |||
70 | static rpm_index **mytags; | 70 | static rpm_index **mytags; |
71 | static int tagcount; | 71 | static int tagcount; |
72 | 72 | ||
73 | void extract_cpio_gz(int fd); | 73 | static void extract_cpio_gz(int fd); |
74 | rpm_index **rpm_gettags(int fd, int *num_tags); | 74 | static rpm_index **rpm_gettags(int fd, int *num_tags); |
75 | int bsearch_rpmtag(const void *key, const void *item); | 75 | static int bsearch_rpmtag(const void *key, const void *item); |
76 | char *rpm_getstring(int tag, int itemindex); | 76 | static char *rpm_getstring(int tag, int itemindex); |
77 | int rpm_getint(int tag, int itemindex); | 77 | static int rpm_getint(int tag, int itemindex); |
78 | int rpm_getcount(int tag); | 78 | static int rpm_getcount(int tag); |
79 | void exec_script(int progtag, int datatag, char *prefix); | 79 | static void fileaction_dobackup(char *filename, int fileref); |
80 | void fileaction_dobackup(char *filename, int fileref); | 80 | static void fileaction_setowngrp(char *filename, int fileref); |
81 | void fileaction_setowngrp(char *filename, int fileref); | 81 | static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)); |
82 | void fileaction_list(char *filename, int itemno); | ||
83 | void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)); | ||
84 | 82 | ||
85 | int rpm_main(int argc, char **argv) | 83 | int rpm_main(int argc, char **argv) |
86 | { | 84 | { |
@@ -169,7 +167,7 @@ int rpm_main(int argc, char **argv) | |||
169 | return 0; | 167 | return 0; |
170 | } | 168 | } |
171 | 169 | ||
172 | void extract_cpio_gz(int fd) { | 170 | static void extract_cpio_gz(int fd) { |
173 | archive_handle_t *archive_handle; | 171 | archive_handle_t *archive_handle; |
174 | unsigned char magic[2]; | 172 | unsigned char magic[2]; |
175 | 173 | ||
@@ -196,7 +194,7 @@ void extract_cpio_gz(int fd) { | |||
196 | } | 194 | } |
197 | 195 | ||
198 | 196 | ||
199 | rpm_index **rpm_gettags(int fd, int *num_tags) | 197 | static rpm_index **rpm_gettags(int fd, int *num_tags) |
200 | { | 198 | { |
201 | rpm_index **tags = xzalloc(200 * sizeof(struct rpmtag *)); /* We should never need mode than 200, and realloc later */ | 199 | rpm_index **tags = xzalloc(200 * sizeof(struct rpmtag *)); /* We should never need mode than 200, and realloc later */ |
202 | int pass, tagindex = 0; | 200 | int pass, tagindex = 0; |
@@ -235,14 +233,14 @@ rpm_index **rpm_gettags(int fd, int *num_tags) | |||
235 | return tags; /* All done, leave the file at the start of the gzipped cpio archive */ | 233 | return tags; /* All done, leave the file at the start of the gzipped cpio archive */ |
236 | } | 234 | } |
237 | 235 | ||
238 | int bsearch_rpmtag(const void *key, const void *item) | 236 | static int bsearch_rpmtag(const void *key, const void *item) |
239 | { | 237 | { |
240 | int *tag = (int *)key; | 238 | int *tag = (int *)key; |
241 | rpm_index **tmp = (rpm_index **) item; | 239 | rpm_index **tmp = (rpm_index **) item; |
242 | return (*tag - tmp[0]->tag); | 240 | return (*tag - tmp[0]->tag); |
243 | } | 241 | } |
244 | 242 | ||
245 | int rpm_getcount(int tag) | 243 | static int rpm_getcount(int tag) |
246 | { | 244 | { |
247 | rpm_index **found; | 245 | rpm_index **found; |
248 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); | 246 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); |
@@ -250,7 +248,7 @@ int rpm_getcount(int tag) | |||
250 | else return found[0]->count; | 248 | else return found[0]->count; |
251 | } | 249 | } |
252 | 250 | ||
253 | char *rpm_getstring(int tag, int itemindex) | 251 | static char *rpm_getstring(int tag, int itemindex) |
254 | { | 252 | { |
255 | rpm_index **found; | 253 | rpm_index **found; |
256 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); | 254 | found = bsearch(&tag, mytags, tagcount, sizeof(struct rpmtag *), bsearch_rpmtag); |
@@ -263,7 +261,7 @@ char *rpm_getstring(int tag, int itemindex) | |||
263 | } else return NULL; | 261 | } else return NULL; |
264 | } | 262 | } |
265 | 263 | ||
266 | int rpm_getint(int tag, int itemindex) | 264 | static int rpm_getint(int tag, int itemindex) |
267 | { | 265 | { |
268 | rpm_index **found; | 266 | rpm_index **found; |
269 | int n, *tmpint; | 267 | int n, *tmpint; |
@@ -284,7 +282,7 @@ int rpm_getint(int tag, int itemindex) | |||
284 | } else return -1; | 282 | } else return -1; |
285 | } | 283 | } |
286 | 284 | ||
287 | void fileaction_dobackup(char *filename, int fileref) | 285 | static void fileaction_dobackup(char *filename, int fileref) |
288 | { | 286 | { |
289 | struct stat oldfile; | 287 | struct stat oldfile; |
290 | int stat_res; | 288 | int stat_res; |
@@ -301,7 +299,7 @@ void fileaction_dobackup(char *filename, int fileref) | |||
301 | } | 299 | } |
302 | } | 300 | } |
303 | 301 | ||
304 | void fileaction_setowngrp(char *filename, int fileref) | 302 | static void fileaction_setowngrp(char *filename, int fileref) |
305 | { | 303 | { |
306 | int uid, gid; | 304 | int uid, gid; |
307 | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); | 305 | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); |
@@ -309,12 +307,7 @@ void fileaction_setowngrp(char *filename, int fileref) | |||
309 | chown (filename, uid, gid); | 307 | chown (filename, uid, gid); |
310 | } | 308 | } |
311 | 309 | ||
312 | void fileaction_list(char *filename, int ATTRIBUTE_UNUSED fileref) | 310 | static void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)) |
313 | { | ||
314 | printf("%s\n", filename); | ||
315 | } | ||
316 | |||
317 | void loop_through_files(int filetag, void (*fileaction)(char *filename, int fileref)) | ||
318 | { | 311 | { |
319 | int count = 0; | 312 | int count = 0; |
320 | while (rpm_getstring(filetag, count)) { | 313 | while (rpm_getstring(filetag, count)) { |