/** \file create.c The create mode of adu. */
#include <dirent.h> /* readdir() */
+#include "format.h"
#include "adu.h"
#include "gcc-compat.h"
#include "cmdline.h"
static int write_uid_list(void)
{
char *buf, *p, *filename;
- uint32_t count = 0;
- struct user_info *ui;
size_t size = num_uids * sizeof(uint32_t);
int ret;
}
while ((entry = readdir(dir))) {
mode_t m;
- struct stat s;
+ struct stat64 s;
uint32_t uid;
uint64_t size;
struct user_info *ui;
continue;
if (!strcmp(entry->d_name, ".."))
continue;
- if (lstat(entry->d_name, &s) == -1) {
- WARNING_LOG("lstat error for %s/%s\n", dirname,
- entry->d_name);
+ if (lstat64(entry->d_name, &s) == -1) {
+ WARNING_LOG("lstat64 error for %s/%s (%s)\n",
+ dirname, entry->d_name, strerror(errno));
continue;
}
m = s.st_mode;
dir_size += size;
dir_files++;
uid = s.st_uid;
- ret = search_uid(uid, CREATE_USER_TABLE | OPEN_USER_TABLE, &ui);
+ ret = search_uid(uid, NULL, CREATE_USER_TABLE | OPEN_USER_TABLE, &ui);
if (ret < 0)
goto out;
ui->bytes += size;
return ret;
}
-int com_create()
+int com_create(void)
{
uint64_t zero = 0ULL;
int ret;