comparison mcabber/src/main.c @ 29:86837ff0554c

[/trunk] Changeset 45 by mikael * Switch to libjabber. (Does NOT work at all yet) jabglue.c is a wrapper around the libjabber library.
author mikael
date Mon, 28 Mar 2005 20:12:48 +0000
parents 0cd8025eebee
children 4ea2df449381
comparison
equal deleted inserted replaced
28:0cd8025eebee 29:86837ff0554c
12 #include "parsecfg.h" 12 #include "parsecfg.h"
13 #include "lang.h" 13 #include "lang.h"
14 #include "server.h" 14 #include "server.h"
15 #include "harddefines.h" 15 #include "harddefines.h"
16 #include "socket.h" 16 #include "socket.h"
17 17 #include "jabglue.h"
18 int sock; 18
19 //int sock;
19 20
20 void sig_handler(int signum) 21 void sig_handler(int signum)
21 { 22 {
22 switch (signum) { 23 switch (signum) {
23 case SIGALRM: 24 case SIGALRM:
24 sk_send(sock, " "); 25 jb_keepalive();
25 break; 26 break;
26 27
27 case SIGTERM: 28 case SIGTERM:
28 bud_TerminateBuddies(); 29 bud_TerminateBuddies();
29 scr_TerminateCurses(); 30 scr_TerminateCurses();
30 srv_setpresence(sock, "unavailable"); 31 // TODO srv_setpresence(sock, "unavailable");
31 close(sock); 32 // TODO close(sock);
32 printf("Killed by SIGTERM\nBye!\n"); 33 printf("Killed by SIGTERM\nBye!\n");
33 exit(EXIT_SUCCESS); 34 exit(EXIT_SUCCESS);
34 break; 35 break;
35 36
36 } 37 }
68 int main(int argc, char **argv) 69 int main(int argc, char **argv)
69 { 70 {
70 char configFile[4096]; 71 char configFile[4096];
71 char *username, *password, *resource; 72 char *username, *password, *resource;
72 char *servername; 73 char *servername;
73 char *idsession; 74 //char *idsession;
74 char *portstring; 75 char *portstring;
75 int key; 76 int key;
76 unsigned int port; 77 unsigned int port;
77 unsigned int ping; 78 unsigned int ping;
78 int ret = 0; 79 int ret = 0;
142 143
143 /* Initialize N-Curses */ 144 /* Initialize N-Curses */
144 ut_WriteLog("Initializing N-Curses...\n"); 145 ut_WriteLog("Initializing N-Curses...\n");
145 scr_InitCurses(); 146 scr_InitCurses();
146 147
148 ut_WriteLog("Drawing main window...\n");
149 scr_DrawMainWindow();
150
147 /* Connect to server */ 151 /* Connect to server */
148 portstring = cfg_read("port"); 152 portstring = cfg_read("port");
149 port = (portstring != NULL) ? (unsigned int) atoi(portstring) : -1U; 153 port = (portstring != NULL) ? (unsigned int) atoi(portstring) : -1U;
150 154
151 ut_WriteLog("Connecting to server: %s:%d\n", servername, port); 155 ut_WriteLog("Connecting to server: %s:%d\n", servername, port);
152 if ((sock = srv_connect(servername, port)) < 0) { 156 scr_LogPrint("Connecting to server: %s:%d", servername, port);
157 jc = jb_connect(servername, port, 0, username, password, resource);
158 if (!jc) {
153 ut_WriteLog("\terror!!!\n"); 159 ut_WriteLog("\terror!!!\n");
154 fprintf(stderr, "Error connecting to (%s)\n", servername); 160 fprintf(stderr, "Error connecting to (%s)\n", servername);
155 scr_TerminateCurses(); 161 scr_TerminateCurses();
156 return -2; 162 return -2;
157 } 163 }
158 164
159 ut_WriteLog("Sending login string...\n"); 165 /*
160 if ((idsession = srv_login(sock, servername, username, password, 166 bud_InitBuddies(sock); // TODO
161 resource)) == NULL) {
162
163 ut_WriteLog("\terror!!!\n");
164 fprintf(stderr, "Error sending login string...\n");
165 scr_TerminateCurses();
166 return -3;
167 }
168 ut_WriteLog("Connected to %.48s: %s\n", servername, idsession);
169 free(idsession);
170
171 ut_WriteLog("Requesting roster...\n");
172 bud_InitBuddies(sock);
173 167
174 ut_WriteLog("Sending presence...\n"); 168 ut_WriteLog("Sending presence...\n");
175 srv_setpresence(sock, "Online!"); 169 srv_setpresence(sock, "Online!");
176 170 */
177
178 ut_WriteLog("Drawing main window...\n");
179 scr_DrawMainWindow();
180 171
181 ping = 15; 172 ping = 15;
182 if (cfg_read("pinginterval")) 173 if (cfg_read("pinginterval"))
183 ping = (unsigned int) atoi(cfg_read("pinginterval")); 174 ping = (unsigned int) atoi(cfg_read("pinginterval"));
184 175
185 ut_WriteLog("Ping interval stablished: %d secs\n", ping); 176 ut_WriteLog("Ping interval stablished: %d secs\n", ping);
186 177
187 ut_WriteLog("Entering into main loop...\n\n"); 178 ut_WriteLog("Entering into main loop...\n\n");
188 ut_WriteLog("Ready to send/receive messages...\n"); 179 ut_WriteLog("Ready to send/receive messages...\n");
189 180
181 sleep(1);
182 jb_main();
183 sleep(1);
184 jb_main();
185 sleep(2);
186 jb_disconnect();
187 sleep(1);
188 jb_main();
189 scr_TerminateCurses(); exit(0); // XXX
190 while (ret != 255) { 190 while (ret != 255) {
191 int x; 191 int x;
192 alarm(ping); 192 alarm(ping);
193 x = check_io(sock, 0); 193 //x = check_io(sock, 0);
194 x = check_io(0, 0); // FIXME
195 /*
194 if ((x & 1) == 1) { 196 if ((x & 1) == 1) {
195 srv_msg *incoming = readserver(sock); 197 srv_msg *incoming = readserver(sock);
196 198
197 switch (incoming->m) { 199 switch (incoming->m) {
198 case SM_PRESENCE: 200 case SM_PRESENCE:
209 break; 211 break;
210 } 212 }
211 free(incoming); 213 free(incoming);
212 } 214 }
213 if ((x & 2) == 2) { 215 if ((x & 2) == 2) {
216 */
217 if (x) {
214 keypad(scr_GetInputWindow(), TRUE); 218 keypad(scr_GetInputWindow(), TRUE);
215 key = scr_Getch(); 219 key = scr_Getch();
216 ret = process_key(key, sock); 220 ret = process_key(key);
217 /* 221 /*
218 switch (key) { 222 switch (key) {
219 case KEY_IC: 223 case KEY_IC:
220 bud_AddBuddy(sock); 224 bud_AddBuddy(sock);
221 break; 225 break;
239 } 243 }
240 244
241 bud_TerminateBuddies(); 245 bud_TerminateBuddies();
242 scr_TerminateCurses(); 246 scr_TerminateCurses();
243 247
244 srv_setpresence(sock, "unavailable"); 248 //srv_setpresence(sock, "unavailable");
245 249 //close(sock);
246 close(sock);
247 250
248 printf("\n\nHave a nice day!\nBye!\n"); 251 printf("\n\nHave a nice day!\nBye!\n");
249 252
250 return 0; 253 return 0;
251 } 254 }