db-merger.c File Reference

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <ctype.h>
#include <time.h>
#include <unistd.h>

Include dependency graph for db-merger.c:

Go to the source code of this file.

Data Structures

struct  memo_
struct  dbFILE_
struct  MemoInfo
struct  ChanAccess
struct  AutoKick
struct  nickalias_
struct  nickcore_
struct  chaninfo_
struct  botinfo_
struct  badword_
struct  hostcore_

Defines

#define NICK_DB_1   "nick1.db"
#define NICK_DB_2   "nick2.db"
#define NICK_DB_NEW   "nick.db"
#define CHAN_DB_1   "chan1.db"
#define CHAN_DB_2   "chan2.db"
#define CHAN_DB_NEW   "chan.db"
#define BOT_DB_1   "bot1.db"
#define BOT_DB_2   "bot2.db"
#define BOT_DB_NEW   "bot.db"
#define HOST_DB_1   "hosts1.db"
#define HOST_DB_2   "hosts2.db"
#define HOST_DB_NEW   "hosts.db"
#define C_LBLUE   "\033[1;34m"
#define C_NONE   "\033[m"
#define getc_db(f)   (fgetc((f)->fp))
#define HASH(nick)   ((tolower((nick)[0])&31)<<5 | (tolower((nick)[1])&31))
#define HASH2(chan)   ((chan)[1] ? ((chan)[1]&31)<<5 | ((chan)[2]&31) : 0)
#define read_buffer(buf, f)   (read_db((f),(buf),sizeof(buf)) == sizeof(buf))
#define write_buffer(buf, f)   (write_db((f),(buf),sizeof(buf)) == sizeof(buf))
#define read_db(f, buf, len)   (fread((buf),1,(len),(f)->fp))
#define write_db(f, buf, len)   (fwrite((buf),1,(len),(f)->fp))
#define read_int8(ret, f)   ((*(ret)=fgetc((f)->fp))==EOF ? -1 : 0)
#define write_int8(val, f)   (fputc((val),(f)->fp)==EOF ? -1 : 0)
#define SAFE(x)
#define READ(x)

Typedefs

typedef int16_t int16
typedef u_int16_t uint16
typedef int32_t int32
typedef u_int32_t uint32
typedef struct memo_ Memo
typedef struct dbFILE_ dbFILE
typedef struct nickalias_ NickAlias
typedef struct nickcore_ NickCore
typedef struct chaninfo_ ChannelInfo
typedef struct botinfo_ BotInfo
typedef struct badword_ BadWord
typedef struct hostcore_ HostCore

Functions

dbFILEopen_db_write (const char *service, const char *filename, int version)
dbFILEopen_db_read (const char *service, const char *filename, int version)
NickCorefindcore (const char *nick, int version)
NickAliasfindnick (const char *nick)
BotInfofindbot (char *nick)
ChannelInfocs_findchan (const char *chan)
char * strscpy (char *d, const char *s, size_t len)
int write_file_version (dbFILE *f, uint32 version)
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 (int16 *ret, dbFILE *f)
int read_int32 (int32 *ret, dbFILE *f)
int read_uint16 (uint16 *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)
int read_ptr (void **ret, dbFILE *f)
int delcore (NickCore *nc)
void alpha_insert_chan (ChannelInfo *ci)
void insert_bot (BotInfo *bi)
void close_db (dbFILE *f)
int main (int argc, char *argv[])

Variables

ChannelInfochanlists [256]
NickAliasnalists [1024]
NickCorenclists [1024]
BotInfobotlists [256]
int preferfirst = 0
int prefersecond = 0
int preferoldest = 0
int prefernewest = 0
int nonick = 0
int nochan = 0
int nobot = 0
int nohost = 0


Define Documentation

#define BOT_DB_1   "bot1.db"

Definition at line 93 of file db-merger.c.

Referenced by main().

#define BOT_DB_2   "bot2.db"

Definition at line 94 of file db-merger.c.

Referenced by main().

#define BOT_DB_NEW   "bot.db"

Definition at line 95 of file db-merger.c.

Referenced by main().

#define C_LBLUE   "\033[1;34m"

Definition at line 104 of file db-merger.c.

Referenced by main().

#define C_NONE   "\033[m"

Definition at line 105 of file db-merger.c.

Referenced by main().

#define CHAN_DB_1   "chan1.db"

Definition at line 89 of file db-merger.c.

Referenced by main().

#define CHAN_DB_2   "chan2.db"

Definition at line 90 of file db-merger.c.

Referenced by main().

#define CHAN_DB_NEW   "chan.db"

Definition at line 91 of file db-merger.c.

Referenced by main().

#define getc_db (  )     (fgetc((f)->fp))

Definition at line 111 of file db-merger.c.

#define HASH ( nick   )     ((tolower((nick)[0])&31)<<5 | (tolower((nick)[1])&31))

Definition at line 112 of file db-merger.c.

#define HASH2 ( chan   )     ((chan)[1] ? ((chan)[1]&31)<<5 | ((chan)[2]&31) : 0)

Definition at line 113 of file db-merger.c.

Referenced by new_uid().

#define HOST_DB_1   "hosts1.db"

Definition at line 97 of file db-merger.c.

Referenced by main().

#define HOST_DB_2   "hosts2.db"

Definition at line 98 of file db-merger.c.

Referenced by main().

#define HOST_DB_NEW   "hosts.db"

Definition at line 99 of file db-merger.c.

Referenced by main().

#define NICK_DB_1   "nick1.db"

Definition at line 85 of file db-merger.c.

Referenced by main().

#define NICK_DB_2   "nick2.db"

Definition at line 86 of file db-merger.c.

Referenced by main().

#define NICK_DB_NEW   "nick.db"

Definition at line 87 of file db-merger.c.

Referenced by main().

#define READ (  ) 

Value:

do { \
    if ((x) < 0) { \
            printf("Error, the database is broken, trying to continue... no guarantee.\n"); \
        exit(0); \
    } \
} while (0)

Definition at line 125 of file db-merger.c.

Referenced by main().

#define read_buffer ( buf,
 )     (read_db((f),(buf),sizeof(buf)) == sizeof(buf))

Definition at line 114 of file db-merger.c.

#define read_db ( f,
buf,
len   )     (fread((buf),1,(len),(f)->fp))

Definition at line 116 of file db-merger.c.

#define read_int8 ( ret,
 )     ((*(ret)=fgetc((f)->fp))==EOF ? -1 : 0)

Definition at line 118 of file db-merger.c.

#define SAFE (  ) 

Value:

do { \
    if ((x) < 0) { \
        printf("Error, the database is broken, trying to continue... no guarantee.\n"); \
    } \
} while (0)

Definition at line 120 of file db-merger.c.

#define write_buffer ( buf,
 )     (write_db((f),(buf),sizeof(buf)) == sizeof(buf))

Definition at line 115 of file db-merger.c.

#define write_db ( f,
buf,
len   )     (fwrite((buf),1,(len),(f)->fp))

Definition at line 117 of file db-merger.c.

#define write_int8 ( val,
 )     (fputc((val),(f)->fp)==EOF ? -1 : 0)

Definition at line 119 of file db-merger.c.


Typedef Documentation

typedef struct badword_ BadWord

Definition at line 142 of file db-merger.c.

typedef struct botinfo_ BotInfo

Definition at line 141 of file db-merger.c.

typedef struct chaninfo_ ChannelInfo

Definition at line 140 of file db-merger.c.

typedef struct dbFILE_ dbFILE

Definition at line 137 of file db-merger.c.

typedef struct hostcore_ HostCore

Definition at line 143 of file db-merger.c.

typedef int16_t int16

Definition at line 132 of file db-merger.c.

typedef int32_t int32

Definition at line 134 of file db-merger.c.

typedef struct memo_ Memo

Definition at line 136 of file db-merger.c.

typedef struct nickalias_ NickAlias

Definition at line 138 of file db-merger.c.

typedef struct nickcore_ NickCore

Definition at line 139 of file db-merger.c.

typedef u_int16_t uint16

Definition at line 133 of file db-merger.c.

typedef u_int32_t uint32

Definition at line 135 of file db-merger.c.


Function Documentation

void alpha_insert_chan ( ChannelInfo ci  ) 

Definition at line 1951 of file chanserv.c.

void close_db ( dbFILE f  ) 

Close a database file. If the file was opened for write, remove the backup we (may have) created earlier.

Parameters:
dbFile struct
Returns:
void

Definition at line 374 of file datafiles.c.

ChannelInfo* cs_findchan ( const char *  chan  ) 

Definition at line 1889 of file chanserv.c.

int delcore ( NickCore nc  ) 

int delnick ( NickAlias na,
int  donttouchthelist 
)

BotInfo* findbot ( char *  nick  ) 

NickCore * findcore ( const char *  nick,
int  version 
)

Definition at line 1859 of file db-merger.c.

References nickcore_::display, HASH, mystricmp(), nickcore_::next, and nickcore_::unused.

NickAlias* findnick ( const char *  nick  ) 

Definition at line 1214 of file nickserv.c.

References alog(), debug, HASH, nickalias_::next, nickalias_::nick, and stricmp().

void insert_bot ( BotInfo bi  ) 

Definition at line 572 of file botserv.c.

References botinfo_::next, botinfo_::nick, botinfo_::prev, stricmp(), and tolower.

int main ( int  argc,
char *  argv[] 
)

Definition at line 317 of file db-merger.c.

References chaninfo_::access, nickcore_::access, chaninfo_::accesscount, nickcore_::accesscount, AutoKick::addtime, chaninfo_::akick, chaninfo_::akickcount, nickcore_::aliascount, alpha_insert_chan(), chaninfo_::badwords, chaninfo_::bantype, chaninfo_::bi, BOT_DB_1, BOT_DB_2, BOT_DB_NEW, chaninfo_::botflags, chaninfo_::bwcount, c, C_LBLUE, C_NONE, chaninfo_::capsmin, chaninfo_::capspercent, CHAN_DB_1, CHAN_DB_2, CHAN_DB_NEW, botinfo_::chancount, nickcore_::channelcount, nickcore_::channelmax, close_db(), botinfo_::created, hostcore_::creator, AutoKick::creator, cs_findchan(), delcore(), delnick(), chaninfo_::desc, nickcore_::display, chaninfo_::email, nickcore_::email, chaninfo_::entry_message, findbot(), findcore(), findnick(), botinfo_::flags, AutoKick::flags, chaninfo_::flags, memo_::flags, nickcore_::flags, chaninfo_::floodlines, chaninfo_::floodsecs, chaninfo_::forbidby, chaninfo_::forbidreason, chaninfo_::founder, chaninfo_::founderpass, getc_db, nickcore_::greet, HASH, botinfo_::host, HOST_DB_1, HOST_DB_2, HOST_DB_NEW, nickcore_::icq, badword_::in_use, ChanAccess::in_use, insert_bot(), nickcore_::language, hostcore_::last, nickalias_::last_quit, nickalias_::last_realname, ChanAccess::last_seen, nickalias_::last_seen, chaninfo_::last_topic, chaninfo_::last_topic_setter, chaninfo_::last_topic_time, chaninfo_::last_used, nickalias_::last_usermask, ChanAccess::level, chaninfo_::levels, AutoKick::mask, MemoInfo::memocount, MemoInfo::memomax, chaninfo_::memos, MemoInfo::memos, nickcore_::memos, chaninfo_::mlock_flood, chaninfo_::mlock_key, chaninfo_::mlock_limit, chaninfo_::mlock_off, chaninfo_::mlock_on, chaninfo_::mlock_redirect, mystricmp(), chaninfo_::name, AutoKick::nc, ChanAccess::nc, nickalias_::nc, hostcore_::next, botinfo_::next, chaninfo_::next, nickalias_::next, nickcore_::next, hostcore_::nick, botinfo_::nick, nickalias_::nick, NICK_DB_1, NICK_DB_2, NICK_DB_NEW, nobot, nochan, nohost, nonick, memo_::number, open_db_read(), open_db_write(), nickcore_::pass, preferfirst, prefernewest, preferoldest, prefersecond, botinfo_::prev, chaninfo_::prev, nickalias_::prev, nickcore_::prev, READ, read_buffer, read_int16(), read_int32(), read_string(), read_uint16(), read_uint32(), botinfo_::real, AutoKick::reason, chaninfo_::repeattimes, SAFE, memo_::sender, nickalias_::status, strdup(), chaninfo_::successor, memo_::text, hostcore_::time, memo_::time, chaninfo_::time_registered, nickalias_::time_registered, tolower, chaninfo_::ttb, badword_::type, AutoKick::u, nickcore_::unused, chaninfo_::url, nickcore_::url, botinfo_::user, hostcore_::vHost, hostcore_::vIdent, badword_::word, write_buffer, write_int16(), write_int32(), write_int8, and write_string().

int mystricmp ( const char *  s1,
const char *  s2 
)

Definition at line 1912 of file db-merger.c.

References c, and tolower.

Referenced by alpha_insert_chan(), cs_findchan(), findbot(), findcore(), findnick(), insert_bot(), and main().

dbFILE * open_db_read ( const char *  service,
const char *  filename,
int  version 
)

Definition at line 1648 of file db-merger.c.

References dbFILE_::filename, dbFILE_::fp, dbFILE_::mode, and strscpy().

dbFILE * open_db_write ( const char *  service,
const char *  filename,
int  version 
)

int read_int16 ( int16 ret,
dbFILE f 
)

Definition at line 1727 of file db-merger.c.

References dbFILE_::fp.

int read_int32 ( int32 ret,
dbFILE f 
)

Definition at line 1760 of file db-merger.c.

References dbFILE_::fp.

int read_ptr ( void **  ret,
dbFILE f 
)

Read Pointer

Parameters:
ret pointer to read
dbFile struct
Returns:
-1 on error, 0 otherwise.

Definition at line 490 of file datafiles.c.

int read_string ( char **  ret,
dbFILE f 
)

Read String

Parameters:
ret string
dbFile struct
Returns:
-1 on error, 0 otherwise.

Definition at line 526 of file datafiles.c.

int read_uint16 ( uint16 ret,
dbFILE f 
)

Definition at line 1739 of file db-merger.c.

References dbFILE_::fp.

Referenced by main(), and read_string().

int read_uint32 ( uint32 ret,
dbFILE f 
)

Definition at line 1774 of file db-merger.c.

References dbFILE_::fp.

Referenced by main().

char* strscpy ( char *  d,
const char *  s,
size_t  len 
)

strscpy: Copy at most len-1 characters from a string to a buffer, and add a null terminator after the last character copied.

Parameters:
d Buffer to copy into
s Data to copy int
len Length of data
Returns:
updated buffer

Definition at line 92 of file misc.c.

int write_file_version ( dbFILE f,
uint32  version 
)

Write the current version number to the file.

Parameters:
f dbFile Struct Member
Returns:
0 on error, 1 on success.

Definition at line 63 of file datafiles.c.

int write_int16 ( uint16  val,
dbFILE f 
)

Write a 16bit integer

Parameters:
ret 16bit integer to write
dbFile struct
Returns:
-1 on error, 0 otherwise.

Definition at line 427 of file datafiles.c.

int write_int32 ( uint32  val,
dbFILE f 
)

Write a unsigned 32bit integer

Parameters:
ret unsigned 32bit integer to write
dbFile struct
Returns:
-1 on error, 0 otherwise.

Definition at line 468 of file datafiles.c.

int write_ptr ( const void *  ptr,
dbFILE f 
)

Write Pointer

Parameters:
ret pointer to write
dbFile struct
Returns:
-1 on error, 0 otherwise.

Definition at line 510 of file datafiles.c.

int write_string ( const char *  s,
dbFILE f 
)

Write String

Parameters:
ret string
dbFile struct
Returns:
-1 on error, 0 otherwise.

Definition at line 555 of file datafiles.c.


Variable Documentation

Definition at line 312 of file db-merger.c.

Definition at line 309 of file db-merger.c.

Definition at line 310 of file db-merger.c.

NickCore* nclists[1024]

Definition at line 311 of file db-merger.c.

int nobot = 0

Definition at line 315 of file db-merger.c.

Referenced by main().

int nochan = 0

Definition at line 315 of file db-merger.c.

Referenced by main().

int nohost = 0

Definition at line 315 of file db-merger.c.

Referenced by main().

int nonick = 0

Definition at line 315 of file db-merger.c.

Referenced by main().

int preferfirst = 0

Definition at line 314 of file db-merger.c.

Referenced by main().

int prefernewest = 0

Definition at line 314 of file db-merger.c.

Referenced by main().

int preferoldest = 0

Definition at line 314 of file db-merger.c.

Referenced by main().

int prefersecond = 0

Definition at line 314 of file db-merger.c.

Referenced by main().


Generated on Sun Oct 5 09:07:11 2008 for Anope by  doxygen 1.5.7.1