summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgeniusdex 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
committergeniusdex 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
commita3bd30298acc9e36d0c54b6d2b3e540d15538953 (patch)
treea135fdfda91947a2ab2c58cb7646ccf35ec7030a /src
parent56d21793fc0778c741a7fa38ee2d99c18a98f3b9 (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.c122
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;