Mercurial > hg
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 } |