diff --git a/Makefile.am b/Makefile.am index 529124a9..29ccad96 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,7 +7,8 @@ profanity_SOURCES = src/command.c src/contact.c src/history.c src/jabber.h \ src/prof_history.c src/ui.h src/common.h src/ contact_list.h src/jabber.c \ src/main.c src/profanity.h src/prof_history.h src/chat_log.c \ src/chat_log.h src/tinyurl.c src/tinyurl.h src/chat_session.c \ - src/chat_session.h src/release.c src/release.h + src/chat_session.h src/release.c src/release.h src/room_chat.c \ + src/room_chat.h TESTS = tests/testsuite check_PROGRAMS = tests/testsuite diff --git a/src/jabber.c b/src/jabber.c index 2df36417..f6f2b6c7 100644 --- a/src/jabber.c +++ b/src/jabber.c @@ -32,6 +32,7 @@ #include "log.h" #include "preferences.h" #include "profanity.h" +#include "room_chat.h" #define PING_INTERVAL 120000 // 2 minutes @@ -292,6 +293,8 @@ jabber_join(const char * const room_jid, const char * const nick) xmpp_stanza_set_attribute(presence, "to", to->str); xmpp_send(jabber_conn.conn, presence); xmpp_stanza_release(presence); + + room_join(room_join, nick); } void diff --git a/src/room_chat.c b/src/room_chat.c new file mode 100644 index 00000000..4655bf04 --- /dev/null +++ b/src/room_chat.c @@ -0,0 +1,44 @@ +/* + * room_chat.c + * + * Copyright (C) 2012 James Booth + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +#include +#include + +#include + +typedef struct _muc_room_t { + char *jid; + char *nick; +} muc_room; + +GSList *rooms; + +void +room_join(const char * const jid, const char * const nick) +{ + muc_room *new_room = malloc(sizeof(muc_room)); + new_room->jid = strdup(jid); + new_room->nick = strdup(nick); + + rooms = g_slist_append(rooms, new_room); +} + diff --git a/src/room_chat.h b/src/room_chat.h new file mode 100644 index 00000000..52be0a2b --- /dev/null +++ b/src/room_chat.h @@ -0,0 +1,23 @@ +/* + * room_chat.h + * + * Copyright (C) 2012 James Booth + * + * This file is part of Profanity. + * + * Profanity is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Profanity is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Profanity. If not, see . + * + */ + +void room_join(const char * const jid, const char * const nick);