diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-09-13 20:56:40 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-09-13 20:56:40 +0000 |
commit | a3bd30298acc9e36d0c54b6d2b3e540d15538953 (patch) | |
tree | a135fdfda91947a2ab2c58cb7646ccf35ec7030a /src | |
parent | 56d21793fc0778c741a7fa38ee2d99c18a98f3b9 (diff) |
BUILD : 1.7.11 (886) BUGS : NOTES : Redid the gcc4 fixes for the db-merger
git-svn-id: svn://svn.anope.org/anope/trunk@886 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@633 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/db-merger.c | 122 |
1 files changed, 75 insertions, 47 deletions
diff --git a/src/tools/db-merger.c b/src/tools/db-merger.c index de356f97e..b229dbd12 100644 --- a/src/tools/db-merger.c +++ b/src/tools/db-merger.c @@ -272,8 +272,10 @@ int mystricmp(const char *s1, const char *s2); int delnick(NickAlias *na, int donttouchthelist); int write_string(const char *s, dbFILE * f); int write_ptr(const void *ptr, dbFILE * f); -int read_int16(uint16 * ret, dbFILE * f); -int read_int32(uint32 * ret, dbFILE * f); +int read_int16(int16 * ret, dbFILE * f); +int read_uint16(uint16 * ret, dbFILE * f); +int read_int32(int32 * ret, dbFILE * f); +int read_uint32(uint32 * ret, dbFILE * f); int read_string(char **ret, dbFILE * f); int write_int16(uint16 val, dbFILE * f); int write_int32(uint32 val, dbFILE * f); @@ -352,11 +354,11 @@ int main(int argc, char *argv[]) READ(read_string(&nc->pass, f)); READ(read_string(&nc->email, f)); READ(read_string(&nc->greet, f)); - READ(read_int32(&nc->icq, f)); + READ(read_uint32(&nc->icq, f)); READ(read_string(&nc->url, f)); - READ(read_int32(&nc->flags, f)); - READ(read_int16(&nc->language, f)); - READ(read_int16(&nc->accesscount, f)); + READ(read_uint32(&nc->flags, f)); + READ(read_uint16(&nc->language, f)); + READ(read_uint16(&nc->accesscount, f)); if (nc->accesscount) { char **access; access = calloc(sizeof(char *) * nc->accesscount, 1); @@ -371,15 +373,15 @@ int main(int argc, char *argv[]) memos = calloc(sizeof(Memo) * nc->memos.memocount, 1); nc->memos.memos = memos; for (j = 0; j < nc->memos.memocount; j++, memos++) { - READ(read_int32(&memos->number, f)); - READ(read_int16(&memos->flags, f)); + READ(read_uint32(&memos->number, f)); + READ(read_uint16(&memos->flags, f)); READ(read_int32(&tmp32, f)); memos->time = tmp32; READ(read_buffer(memos->sender, f)); READ(read_string(&memos->text, f)); } } - READ(read_int16(&nc->channelcount, f)); + READ(read_uint16(&nc->channelcount, f)); READ(read_int16(&tmp16, f)); } /* getc_db() */ *nclast = NULL; @@ -409,7 +411,7 @@ int main(int argc, char *argv[]) na->time_registered = tmp32; READ(read_int32(&tmp32, f)); na->last_seen = tmp32; - READ(read_int16(&na->status, f)); + READ(read_uint16(&na->status, f)); READ(read_string(&s, f)); na->nc = findcore(s, 0); na->nc->aliascount++; @@ -466,11 +468,11 @@ int main(int argc, char *argv[]) nclists[index] = nc; READ(read_string(&nc->greet, f)); - READ(read_int32(&nc->icq, f)); + READ(read_uint32(&nc->icq, f)); READ(read_string(&nc->url, f)); - READ(read_int32(&nc->flags, f)); - READ(read_int16(&nc->language, f)); - READ(read_int16(&nc->accesscount, f)); + READ(read_uint32(&nc->flags, f)); + READ(read_uint16(&nc->language, f)); + READ(read_uint16(&nc->accesscount, f)); if (nc->accesscount) { char **access; access = calloc(sizeof(char *) * nc->accesscount, 1); @@ -485,15 +487,15 @@ int main(int argc, char *argv[]) memos = calloc(sizeof(Memo) * nc->memos.memocount, 1); nc->memos.memos = memos; for (j = 0; j < nc->memos.memocount; j++, memos++) { - READ(read_int32(&memos->number, f)); - READ(read_int16(&memos->flags, f)); + READ(read_uint32(&memos->number, f)); + READ(read_uint16(&memos->flags, f)); READ(read_int32(&tmp32, f)); memos->time = tmp32; READ(read_buffer(memos->sender, f)); READ(read_string(&memos->text, f)); } } - READ(read_int16(&nc->channelcount, f)); + READ(read_uint16(&nc->channelcount, f)); READ(read_int16(&tmp16, f)); } /* getc_db() */ } /* for() loop */ @@ -519,7 +521,7 @@ int main(int argc, char *argv[]) na->time_registered = tmp32; READ(read_int32(&tmp32, f)); na->last_seen = tmp32; - READ(read_int16(&na->status, f)); + READ(read_uint16(&na->status, f)); READ(read_string(&s, f)); naptr = findnick(na->nick); @@ -727,7 +729,7 @@ int main(int argc, char *argv[]) READ(read_buffer(ci->last_topic_setter, f)); READ(read_int32(&tmp32, f)); ci->last_topic_time = tmp32; - READ(read_int32(&ci->flags, f)); + READ(read_uint32(&ci->flags, f)); /* Temporary flags cleanup */ ci->flags &= ~0x80000000; READ(read_string(&ci->forbidby, f)); @@ -743,11 +745,11 @@ int main(int argc, char *argv[]) else READ(read_int16(&tmp16, f)); } - READ(read_int16(&ci->accesscount, f)); + READ(read_uint16(&ci->accesscount, f)); if (ci->accesscount) { ci->access = calloc(ci->accesscount, sizeof(ChanAccess)); for (j = 0; j < ci->accesscount; j++) { - READ(read_int16(&ci->access[j].in_use, f)); + READ(read_uint16(&ci->access[j].in_use, f)); if (ci->access[j].in_use) { READ(read_int16(&ci->access[j].level, f)); READ(read_string(&s, f)); @@ -764,11 +766,11 @@ int main(int argc, char *argv[]) } else { ci->access = NULL; } - READ(read_int16(&ci->akickcount, f)); + READ(read_uint16(&ci->akickcount, f)); if (ci->akickcount) { ci->akick = calloc(ci->akickcount, sizeof(AutoKick)); for (j = 0; j < ci->akickcount; j++) { - SAFE(read_int16(&ci->akick[j].flags, f)); + SAFE(read_uint16(&ci->akick[j].flags, f)); if (ci->akick[j].flags & 0x0001) { SAFE(read_string(&s, f)); if (ci->akick[j].flags & 0x0002) { @@ -798,9 +800,9 @@ int main(int argc, char *argv[]) } else { ci->akick = NULL; } - READ(read_int32(&ci->mlock_on, f)); - READ(read_int32(&ci->mlock_off, f)); - READ(read_int32(&ci->mlock_limit, f)); + READ(read_uint32(&ci->mlock_on, f)); + READ(read_uint32(&ci->mlock_off, f)); + READ(read_uint32(&ci->mlock_limit, f)); READ(read_string(&ci->mlock_key, f)); READ(read_string(&ci->mlock_flood, f)); READ(read_string(&ci->mlock_redirect, f)); @@ -811,8 +813,8 @@ int main(int argc, char *argv[]) memos = calloc(sizeof(Memo) * ci->memos.memocount, 1); ci->memos.memos = memos; for (j = 0; j < ci->memos.memocount; j++, memos++) { - READ(read_int32(&memos->number, f)); - READ(read_int16(&memos->flags, f)); + READ(read_uint32(&memos->number, f)); + READ(read_uint16(&memos->flags, f)); READ(read_int32(&tmp32, f)); memos->time = tmp32; READ(read_buffer(memos->sender, f)); @@ -847,14 +849,14 @@ int main(int argc, char *argv[]) READ(read_int16(&tmp16, f)); ci->repeattimes = tmp16; - READ(read_int16(&ci->bwcount, f)); + READ(read_uint16(&ci->bwcount, f)); if (ci->bwcount) { ci->badwords = calloc(ci->bwcount, sizeof(BadWord)); for (j = 0; j < ci->bwcount; j++) { - SAFE(read_int16(&ci->badwords[j].in_use, f)); + SAFE(read_uint16(&ci->badwords[j].in_use, f)); if (ci->badwords[j].in_use) { SAFE(read_string(&ci->badwords[j].word, f)); - SAFE(read_int16(&ci->badwords[j].type, f)); + SAFE(read_uint16(&ci->badwords[j].type, f)); } } } else { @@ -909,7 +911,7 @@ int main(int argc, char *argv[]) READ(read_buffer(ci->last_topic_setter, f)); READ(read_int32(&tmp32, f)); ci->last_topic_time = tmp32; - READ(read_int32(&ci->flags, f)); + READ(read_uint32(&ci->flags, f)); /* Temporary flags cleanup */ ci->flags &= ~0x80000000; READ(read_string(&ci->forbidby, f)); @@ -925,11 +927,11 @@ int main(int argc, char *argv[]) else READ(read_int16(&tmp16, f)); } - READ(read_int16(&ci->accesscount, f)); + READ(read_uint16(&ci->accesscount, f)); if (ci->accesscount) { ci->access = calloc(ci->accesscount, sizeof(ChanAccess)); for (j = 0; j < ci->accesscount; j++) { - READ(read_int16(&ci->access[j].in_use, f)); + READ(read_uint16(&ci->access[j].in_use, f)); if (ci->access[j].in_use) { READ(read_int16(&ci->access[j].level, f)); READ(read_string(&s, f)); @@ -946,11 +948,11 @@ int main(int argc, char *argv[]) } else { ci->access = NULL; } - READ(read_int16(&ci->akickcount, f)); + READ(read_uint16(&ci->akickcount, f)); if (ci->akickcount) { ci->akick = calloc(ci->akickcount, sizeof(AutoKick)); for (j = 0; j < ci->akickcount; j++) { - SAFE(read_int16(&ci->akick[j].flags, f)); + SAFE(read_uint16(&ci->akick[j].flags, f)); if (ci->akick[j].flags & 0x0001) { SAFE(read_string(&s, f)); if (ci->akick[j].flags & 0x0002) { @@ -980,9 +982,9 @@ int main(int argc, char *argv[]) } else { ci->akick = NULL; } - READ(read_int32(&ci->mlock_on, f)); - READ(read_int32(&ci->mlock_off, f)); - READ(read_int32(&ci->mlock_limit, f)); + READ(read_uint32(&ci->mlock_on, f)); + READ(read_uint32(&ci->mlock_off, f)); + READ(read_uint32(&ci->mlock_limit, f)); READ(read_string(&ci->mlock_key, f)); READ(read_string(&ci->mlock_flood, f)); READ(read_string(&ci->mlock_redirect, f)); @@ -993,8 +995,8 @@ int main(int argc, char *argv[]) memos = calloc(sizeof(Memo) * ci->memos.memocount, 1); ci->memos.memos = memos; for (j = 0; j < ci->memos.memocount; j++, memos++) { - READ(read_int32(&memos->number, f)); - READ(read_int16(&memos->flags, f)); + READ(read_uint32(&memos->number, f)); + READ(read_uint16(&memos->flags, f)); READ(read_int32(&tmp32, f)); memos->time = tmp32; READ(read_buffer(memos->sender, f)); @@ -1029,14 +1031,14 @@ int main(int argc, char *argv[]) READ(read_int16(&tmp16, f)); ci->repeattimes = tmp16; - READ(read_int16(&ci->bwcount, f)); + READ(read_uint16(&ci->bwcount, f)); if (ci->bwcount) { ci->badwords = calloc(ci->bwcount, sizeof(BadWord)); for (j = 0; j < ci->bwcount; j++) { - SAFE(read_int16(&ci->badwords[j].in_use, f)); + SAFE(read_uint16(&ci->badwords[j].in_use, f)); if (ci->badwords[j].in_use) { SAFE(read_string(&ci->badwords[j].word, f)); - SAFE(read_int16(&ci->badwords[j].type, f)); + SAFE(read_uint16(&ci->badwords[j].type, f)); } } } else { @@ -1684,7 +1686,19 @@ void close_db(dbFILE * f) free(f); } -int read_int16(uint16 * ret, dbFILE * f) +int read_int16(int16 * ret, dbFILE * f) +{ + int c1, c2; + + c1 = fgetc(f->fp); + c2 = fgetc(f->fp); + if (c1 == EOF || c2 == EOF) + return -1; + *ret = c1 << 8 | c2; + return 0; +} + +int read_uint16(uint16 * ret, dbFILE * f) { int c1, c2; @@ -1705,7 +1719,21 @@ int write_int16(uint16 val, dbFILE * f) } -int read_int32(uint32 * ret, dbFILE * f) +int read_int32(int32 * ret, dbFILE * f) +{ + int c1, c2, c3, c4; + + c1 = fgetc(f->fp); + c2 = fgetc(f->fp); + c3 = fgetc(f->fp); + c4 = fgetc(f->fp); + if (c1 == EOF || c2 == EOF || c3 == EOF || c4 == EOF) + return -1; + *ret = c1 << 24 | c2 << 16 | c3 << 8 | c4; + return 0; +} + +int read_uint32(uint32 * ret, dbFILE * f) { int c1, c2, c3, c4; @@ -1757,7 +1785,7 @@ int read_string(char **ret, dbFILE * f) char *s; uint16 len; - if (read_int16(&len, f) < 0) + if (read_uint16(&len, f) < 0) return -1; if (len == 0) { *ret = NULL; |