irssi/src/perl/common/Server.xs
Timo Sirainen 6774b4b30f Added reference counting to server record. At least now we don't accidentally
use a destroyed server record when some /command disconnects the server
(shouldn't happen really) or when irc_send_cmd() fails sending data to server
and disconnects the server (I don't know if this ever happens, but if it does,
it very well could have caused crashes)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2243 dbcabf3a-b0e7-0310-adc4-f8d773084564
2001-12-14 01:54:12 +00:00

103 lines
1.7 KiB
Text

#include "module.h"
MODULE = Irssi::Server PACKAGE = Irssi
PROTOTYPES: ENABLE
void
servers()
PREINIT:
GSList *tmp;
PPCODE:
for (tmp = servers; tmp != NULL; tmp = tmp->next) {
XPUSHs(sv_2mortal(iobject_bless((SERVER_REC *) tmp->data)));
}
void
reconnects()
PREINIT:
GSList *tmp;
PPCODE:
for (tmp = reconnects; tmp != NULL; tmp = tmp->next) {
XPUSHs(sv_2mortal(plain_bless(tmp->data, "Irssi::Reconnect")));
}
void
chatnets()
PREINIT:
GSList *tmp;
PPCODE:
for (tmp = chatnets; tmp != NULL; tmp = tmp->next) {
XPUSHs(sv_2mortal(iobject_bless((CHATNET_REC *) tmp->data)));
}
Irssi::Connect
server_create_conn(chat_type, dest, port=6667, chatnet=NULL, password=NULL, nick=NULL)
int chat_type
char *dest
int port
char *chatnet
char *password
char *nick
Irssi::Server
server_find_tag(tag)
char *tag
Irssi::Server
server_find_chatnet(chatnet)
char *chatnet
Irssi::Chatnet
chatnet_find(name)
char *name
#*******************************
MODULE = Irssi::Server PACKAGE = Irssi::Server PREFIX = server_
#*******************************
void
server_disconnect(server)
Irssi::Server server
void
server_ref(server)
Irssi::Server server
void
server_unref(server)
Irssi::Server server
int
isnickflag(server, flag)
Irssi::Server server
char flag
CODE:
RETVAL = server->isnickflag(flag);
OUTPUT:
RETVAL
int
ischannel(server, data)
Irssi::Server server
char *data
CODE:
RETVAL = server->ischannel(server, data);
OUTPUT:
RETVAL
char *
get_nick_flags(server)
Irssi::Server server
CODE:
RETVAL = (char *) server->get_nick_flags();
OUTPUT:
RETVAL
void
send_message(server, target, msg)
Irssi::Server server
char *target
char *msg
CODE:
server->send_message(server, target, msg);