diff options
author | michael <michael@82007160-df01-0410-b94d-b575c5fd34c7> | 2012-10-31 23:11:40 +0000 |
---|---|---|
committer | michael <michael@82007160-df01-0410-b94d-b575c5fd34c7> | 2012-10-31 23:11:40 +0000 |
commit | 66b1fc152776ef824c291307dd7be93c0e2a9ad6 (patch) | |
tree | 47208b748b446d47896aa32dd14fdd199de4483b /src | |
parent | 67759eb6e3fc0c1aaa41ae8b6dee559eb428936f (diff) |
- src/conf_db.c: Cleanup get_file_version()
git-svn-id: svn://svn.ircd-hybrid.org/svnroot/ircd-hybrid/trunk@1621 82007160-df01-0410-b94d-b575c5fd34c7
Diffstat (limited to 'src')
-rw-r--r-- | src/conf_db.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/conf_db.c b/src/conf_db.c index 8092a9c..9c1a70c 100644 --- a/src/conf_db.c +++ b/src/conf_db.c @@ -41,26 +41,21 @@ * \param f dbFile Struct Member * \return int 0 if failure, 1 > is the version number */ -int +uint32_t get_file_version(struct dbFILE *f) { - FILE *fp = f->fp; - int version = fgetc(fp) << 24 | fgetc(fp) << 16 | fgetc(fp) << 8 | fgetc(fp); + uint32_t version = 0; - if (ferror(fp)) - { - ilog(LOG_TYPE_IRCD, "Error reading version number on %s", f->filename); - return 0; - } - else if (feof(fp)) + if (read_uint32(&version, f) == -1) { - ilog(LOG_TYPE_IRCD, "Error reading version number on %s: End of file detected", - f->filename); + ilog(LOG_TYPE_IRCD, "Error reading version number on %s: %s", + f->filename, strerror(errno)); return 0; } - else if (version < 1) + + if (version < 1) { - ilog(LOG_TYPE_IRCD, "Invalid version number (%d) on %s", + ilog(LOG_TYPE_IRCD, "Invalid version number (%u) on %s", version, f->filename); return 0; } |