sockets->count = 0;
}
-struct ClientSocket* create_socket(char *host, int port, char *pass, struct UserNode *user) {
+struct ClientSocket* create_socket(char *host, int port, char *pass, char *nick, char *ident, char *realname) {
if(sockets == NULL) init_sockets();
struct ClientSocket *client = malloc(sizeof(*client));
if (!client)
client->port = port;
printf("Connect: %s:%d\n", client->host, client->port);
client->pass = (pass == NULL ? NULL : strdup(pass));
- client->user = user;
+ client->nick = strdup(nick);
+ client->ident = strdup(ident);
+ client->realname = strdup(realname);
+ client->user = NULL;
client->flags = 0;
client->bufferpos = 0;
client->traffic_in = 0;
len = sprintf(sendBuf, "PASS :%s\n", client->pass);
write_socket(client, sendBuf, len);
}
- len = sprintf(sendBuf, "USER %s 0 0 :%s\n", client->user->ident, client->user->realname);
+ len = sprintf(sendBuf, "USER %s 0 0 :%s\n", client->ident, client->realname);
write_socket(client, sendBuf, len);
- len = sprintf(sendBuf, "NICK %s\n", client->user->nick);
+ len = sprintf(sendBuf, "NICK %s\n", client->nick);
write_socket(client, sendBuf, len);
return 1;
len = sprintf(sendBuf, "PASS :%s\n", client->pass);
write_socket(client, sendBuf, len);
}
- len = sprintf(sendBuf, "USER %s 0 0 :%s\n", client->user->ident, client->user->realname);
+ len = sprintf(sendBuf, "USER %s 0 0 :%s\n", client->ident, client->realname);
write_socket(client, sendBuf, len);
- len = sprintf(sendBuf, "NICK %s\n", client->user->nick);
+ len = sprintf(sendBuf, "NICK %s\n", client->nick);
write_socket(client, sendBuf, len);
-
+
return 1;
}
char *host;
int port;
char *pass;
+ char *nick;
+ char *ident;
+ char *realname;
struct UserNode *user;
unsigned long traffic_in;
unsigned long traffic_out;
struct ClientSocket *next;
};
-struct ClientSocket* create_socket(char *host, int port, char *pass, struct UserNode *user);
+struct ClientSocket* create_socket(char *host, int port, char *pass, char *nick, char *ident, char *realname);
int connect_socket(struct ClientSocket *client);
int close_socket(struct ClientSocket *client);
int write_socket_force(struct ClientSocket *client, char* msg, int len);
}
static IRC_CMD(raw_001) {
+ client->user = addUser(argv[0]);
+ client->user->flags |= USERFLAG_ISBOT;
client->flags |= SOCKET_FLAG_READY;
event_bot_ready(client);
return 1;
}
static void start_bots() {
- struct UserNode *user;
struct ClientSocket *client;
MYSQL_RES *res, *res2;
MYSQL_ROW row;
res = mysql_use();
while ((row = mysql_fetch_row(res)) != NULL) {
- user = addUser(row[0]);
- strcpy(user->ident, row[1]);
- strcpy(user->realname, row[2]);
- user->flags |= USERFLAG_ISBOT;
- client = create_socket(row[3], atoi(row[4]), row[5], user);
+ client = create_socket(row[3], atoi(row[4]), row[5], row[0], row[1], row[2]);
client->flags |= (strcmp(row[6], "0") ? SOCKET_FLAG_PREFERRED : 0);
client->flags |= (strcmp(row[8], "0") ? SOCKET_FLAG_USE_QUEUE : 0);
client->botid = BOTID;
}
static void start_bots() {
- struct UserNode *user;
struct ClientSocket *client;
MYSQL_RES *res, *res2;
MYSQL_ROW row;
res = mysql_use();
while ((row = mysql_fetch_row(res)) != NULL) {
- user = addUser(row[0]);
- strcpy(user->ident, row[1]);
- strcpy(user->realname, row[2]);
- user->flags |= USERFLAG_ISBOT;
- client = create_socket(row[3], atoi(row[4]), row[5], user);
+ client = create_socket(row[3], atoi(row[4]), row[5], row[0], row[1], row[2]);
client->flags |= (strcmp(row[6], "0") ? SOCKET_FLAG_PREFERRED : 0);
client->flags |= (strcmp(row[8], "0") ? SOCKET_FLAG_USE_QUEUE : 0);
client->botid = BOTID;
}
static void start_bots() {
- struct UserNode *user;
struct ClientSocket *client;
MYSQL_RES *res, *res2;
MYSQL_ROW row;
res = mysql_use();
while ((row = mysql_fetch_row(res)) != NULL) {
- user = addUser(row[0]);
- strcpy(user->ident, row[1]);
- strcpy(user->realname, row[2]);
- user->flags |= USERFLAG_ISBOT;
- client = create_socket(row[3], atoi(row[4]), row[5], user);
+ client = create_socket(row[3], atoi(row[4]), row[5], row[0], row[1], row[2]);
client->flags |= (strcmp(row[6], "0") ? SOCKET_FLAG_PREFERRED : 0);
client->flags |= (strcmp(row[8], "0") ? SOCKET_FLAG_USE_QUEUE : 0);
client->botid = BOTID;