diff -r f78ffe7ce43d -r a8ceaa3005fd mcabber/src/main.c --- a/mcabber/src/main.c Mon Apr 04 18:00:51 2005 +0000 +++ b/mcabber/src/main.c Mon Apr 04 19:13:58 2005 +0000 @@ -11,9 +11,7 @@ #include "buddies.h" #include "parsecfg.h" #include "lang.h" -#include "server.h" #include "harddefines.h" -#include "socket.h" #include "jabglue.h" //int sock; @@ -28,8 +26,7 @@ case SIGTERM: bud_TerminateBuddies(); scr_TerminateCurses(); - // TODO srv_setpresence(sock, "unavailable"); - // TODO close(sock); + jb_disconnect(); printf("Killed by SIGTERM\nBye!\n"); exit(EXIT_SUCCESS); break; @@ -60,6 +57,18 @@ return (ssize_t)nread; } +char *compose_jid(const char *username, const char *servername, + const char *resource) +{ + char *jid = malloc(strlen(username)+strlen(servername)+strlen(resource)+3); + strcpy(jid, username); + strcat(jid, "@"); + strcat(jid, servername); + strcat(jid, "/"); + strcat(jid, resource); + return jid; +} + void credits(void) { printf(VERSION "\n"); @@ -71,7 +80,7 @@ char configFile[4096]; char *username, *password, *resource; char *servername; - //char *idsession; + char *jid; char *portstring; int key; unsigned int port; @@ -148,13 +157,16 @@ ut_WriteLog("Drawing main window...\n"); scr_DrawMainWindow(); - /* Connect to server */ portstring = cfg_read("port"); port = (portstring != NULL) ? (unsigned int) atoi(portstring) : -1U; + /* Connect to server */ ut_WriteLog("Connecting to server: %s:%d\n", servername, port); scr_LogPrint("Connecting to server: %s:%d", servername, port); - jc = jb_connect(servername, port, 0, username, password, resource); + + jid = compose_jid(username, servername, resource); + jc = jb_connect(jid, port, 0, password); + free(jid); if (!jc) { ut_WriteLog("\terror!!!\n"); fprintf(stderr, "Error connecting to (%s)\n", servername); @@ -178,70 +190,20 @@ ut_WriteLog("Entering into main loop...\n\n"); ut_WriteLog("Ready to send/receive messages...\n"); - sleep(1); - jb_main(); - sleep(1); - jb_main(); - sleep(2); - jb_disconnect(); - sleep(1); - jb_main(); - scr_TerminateCurses(); exit(0); // XXX while (ret != 255) { - int x; alarm(ping); - //x = check_io(sock, 0); - x = check_io(0, 0); // FIXME - /* - if ((x & 1) == 1) { - srv_msg *incoming = readserver(sock); - - switch (incoming->m) { - case SM_PRESENCE: - bud_SetBuddyStatus(incoming->from, incoming->connected); - break; - - case SM_MESSAGE: - scr_WriteIncomingMessage(incoming->from, incoming->body); - free(incoming->body); - free(incoming->from); - break; - - case SM_UNHANDLED: - break; - } - free(incoming); - } - if ((x & 2) == 2) { - */ - if (x) { - keypad(scr_GetInputWindow(), TRUE); - key = scr_Getch(); + keypad(scr_GetInputWindow(), TRUE); + key = scr_Getch(); + if (key != ERR) ret = process_key(key); - /* - switch (key) { - case KEY_IC: - bud_AddBuddy(sock); - break; - case KEY_DC: - bud_DeleteBuddy(sock); - break; - - case KEY_RESIZE: - endwin(); - printf("\nRedimensionado no implementado\n"); - printf("Reinicie Cabber.\n\n\n"); - exit(EXIT_FAILURE); - break; - } - */ - } + jb_main(); if (update_roster) { // scr_LogPrint("Update roster"); bud_DrawRoster(scr_GetRosterWindow()); } } + jb_disconnect(); bud_TerminateBuddies(); scr_TerminateCurses();