Added databases
This commit is contained in:
parent
5682f871c1
commit
2d590e6bac
@ -137,6 +137,15 @@ void dump_ncslist(void)
|
||||
*/
|
||||
void send_all(char *msg)
|
||||
{
|
||||
ncs_list *tnsl;
|
||||
|
||||
sprintf(csbuf, "%s\r\n", msg);
|
||||
|
||||
for (tnsl = ncsl; tnsl; tnsl = tnsl->next) {
|
||||
if (tnsl->state == NCS_CONNECT) {
|
||||
send_msg(tnsl->socket, tnsl->servaddr_in, tnsl->server, csbuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -500,6 +509,8 @@ void command_squit(char *hostname, char *parameters)
|
||||
tnsl->gotserver = FALSE;
|
||||
tnsl->token = 0;
|
||||
changed = TRUE;
|
||||
} else {
|
||||
Syslog('r', "IBC: disconnect server %s: message is not for us, but update database");
|
||||
}
|
||||
}
|
||||
|
||||
@ -602,7 +613,9 @@ void receiver(struct servent *se)
|
||||
sprintf(csbuf, "461 %s: Not enough parameters\r\n", command);
|
||||
send_msg(tnsl->socket, tnsl->servaddr_in, tnsl->server, csbuf);
|
||||
} else {
|
||||
sprintf(csbuf, "SQUIT %s %s", hostname, parameters);
|
||||
command_squit(hostname, parameters);
|
||||
send_all(csbuf);
|
||||
}
|
||||
} else if (atoi(command)) {
|
||||
Syslog('r', "IBC: Got error %d", atoi(command));
|
||||
|
@ -28,6 +28,49 @@ typedef struct _ncs_list {
|
||||
} ncs_list;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Database with servers
|
||||
*/
|
||||
typedef struct _srv_list {
|
||||
struct _srv_list *next;
|
||||
char server[64]; /* FQDN of the server */
|
||||
time_t connected; /* Connection time */
|
||||
int users; /* Users in chat */
|
||||
} srv_list;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Database with users
|
||||
*/
|
||||
typedef struct _usr_list {
|
||||
struct _usr_list *next;
|
||||
char server[64]; /* FQDN of users server */
|
||||
char nick[9]; /* Users nick */
|
||||
char realname[36]; /* Users real name */
|
||||
char channel[21]; /* Users channel */
|
||||
time_t connected; /* Users connect time */
|
||||
unsigned chanop : 1; /* User is a chanop */
|
||||
} usr_list;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Database with channels
|
||||
*/
|
||||
typedef struct _chn_list {
|
||||
struct _chn_list *next;
|
||||
char server[64]; /* Originating server */
|
||||
char name[21]; /* Channel name */
|
||||
char topic[55]; /* Channel topic */
|
||||
char owner[9]; /* Channel owner */
|
||||
time_t created; /* Channel created */
|
||||
int users; /* Users in channel */
|
||||
} chn_list;
|
||||
|
||||
|
||||
|
||||
void send_all(char *);
|
||||
void *ibc_thread(void *);
|
||||
|
||||
|
Reference in New Issue
Block a user