- wprintf("<script type=\"text/javascript\"> "
- " function HandleSslp(sslg_xmlresponse) { "
- " sslg_response = sslg_xmlresponse.responseText.substr(0, 1); "
- " if (sslg_response == 'Y') { "
- " window.open('static/instant_messenger.html', 'CTDL_MESSENGER', "
- " 'width=700,height=400'); "
- " } "
- " } "
- " function CheckPager() { "
- " new Ajax.Request('sslg', { method: 'get', onSuccess: HandleSslp } ); "
- " } "
- " new PeriodicalExecuter(CheckPager, 30); "
- "</script>\n"
- );
-}
-
-
-
-/*
- * Support function for chat -- make sure the chat socket is connected
- * and in chat mode.
- */
-int setup_chat_socket(void) {
- char buf[SIZ];
- int i;
- int good_chatmode = 0;
-
- if (WC->chat_sock < 0) {
-
- if (!strcasecmp(ctdlhost, "uds")) {
- /* unix domain socket */
- sprintf(buf, "%s/citadel.socket", ctdlport);
- WC->chat_sock = uds_connectsock(buf);
- }
- else {
- /* tcp socket */
- WC->chat_sock = tcp_connectsock(ctdlhost, ctdlport);
- }
-
- if (WC->chat_sock < 0) {
- return(errno);
- }
-
- /* Temporarily swap the serv and chat sockets during chat talk */
- i = WC->serv_sock;
- WC->serv_sock = WC->chat_sock;
- WC->chat_sock = i;
-
- serv_getln(buf, sizeof buf);
- if (buf[0] == '2') {
- serv_printf("USER %s", WC->wc_username);
- serv_getln(buf, sizeof buf);
- if (buf[0] == '3') {
- serv_printf("PASS %s", WC->wc_password);
- serv_getln(buf, sizeof buf);
- if (buf[0] == '2') {
- serv_printf("GOTO %s", WC->wc_roomname);
- serv_getln(buf, sizeof buf);
- if (buf[0] == '2') {
- serv_puts("CHAT");
- serv_getln(buf, sizeof buf);
- if (buf[0] == '8') {
- good_chatmode = 1;
- }
- }
- }
- }
- }
-
- /* Unswap the sockets. */
- i = WC->serv_sock;
- WC->serv_sock = WC->chat_sock;
- WC->chat_sock = i;
-
- if (!good_chatmode) close(WC->serv_sock);
-
- }
- return(0);