- sprintf(filename, "%s/%s/password_version", DATA_PATH, username);
+ snprintf(filename, FILENAME_MAX, "%s/%s/auth", blergconf.data_path, username);
+ if (access(filename, F_OK) == 0) {
+ fd = open(filename, O_RDONLY);
+ if (fd == -1)
+ return -1;
+ len = read(fd, &ah, sizeof(struct auth_header));
+ close(fd);
+
+ if (len < 0) {
+ perror("reading auth file");
+ return -1;
+ } else if (len < sizeof(struct auth_header)) {
+ fprintf(stderr, "Short read on while determining auth version for %s", username);
+ return -1;
+ }
+
+ return ah.version;
+ }
+
+ snprintf(filename, FILENAME_MAX, "%s/%s/password_version", blergconf.data_path, username);