annotate mcabber/src/main.c @ 147:7571de4aed73

[/trunk] Changeset 159 by mikael * Fix a bug in buddylist_build() * We now lock the current buddy even not when being in chat mode. For example, if we're writing to s.o. and he leaves just before we press enter, we won't write to the wrong buddy... If the current_buddy is a group, we lock it too. * Remove MCABBER_TESTUNIT ifdef in roster.h (test program isn't up-to-date anymore...)
author mikael
date Fri, 29 Apr 2005 19:56:28 +0000
parents 250f872c722f
children 9f74832eb4f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
1 #include <stdio.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
2 #include <stdlib.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
3 #include <unistd.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
4 #include <string.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
5 #include <signal.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
6 #include <termios.h>
28
0cd8025eebee [/trunk] Changeset 44 by mikael
mikael
parents: 27
diff changeset
7 #include <getopt.h>
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
8
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 77
diff changeset
9 #include "jabglue.h"
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
10 #include "screen.h"
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
11 #include "parsecfg.h"
102
2b4cc6bc5bf2 [/trunk] Changeset 116 by mikael
mikael
parents: 96
diff changeset
12 #include "roster.h"
96
8b2703ccc4be [/trunk] Changeset 110 by mikael
mikael
parents: 88
diff changeset
13 #include "commands.h"
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents: 112
diff changeset
14 #include "histolog.h"
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 77
diff changeset
15 #include "utils.h"
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
16 #include "harddefines.h"
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
17
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
18
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
19 void sig_handler(int signum)
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
20 {
112
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
21 if (signum == SIGTERM) {
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 77
diff changeset
22 // bud_TerminateBuddies();
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
23 scr_TerminateCurses();
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
24 jb_disconnect();
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
25 printf("Killed by SIGTERM\nBye!\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
26 exit(EXIT_SUCCESS);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
27 }
112
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
28 ut_WriteLog("Caught signal: %d\n", signum);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
29 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
30
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
31 ssize_t my_getpass (char **passstr, size_t *n)
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
32 {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
33 struct termios orig, new;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
34 int nread;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
35
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
36 /* Turn echoing off and fail if we can't. */
28
0cd8025eebee [/trunk] Changeset 44 by mikael
mikael
parents: 27
diff changeset
37 if (tcgetattr(fileno(stdin), &orig) != 0)
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
38 return -1;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
39 new = orig;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
40 new.c_lflag &= ~ECHO;
28
0cd8025eebee [/trunk] Changeset 44 by mikael
mikael
parents: 27
diff changeset
41 if (tcsetattr(fileno(stdin), TCSAFLUSH, &new) != 0)
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
42 return -1;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
43
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
44 /* Read the password. */
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
45 nread = getline(passstr, n, stdin);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
46
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
47 /* Restore terminal. */
28
0cd8025eebee [/trunk] Changeset 44 by mikael
mikael
parents: 27
diff changeset
48 (void) tcsetattr(fileno(stdin), TCSAFLUSH, &orig);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
49
27
77e6bd2ccde6 [/trunk] Changeset 43 by mikael
mikael
parents: 26
diff changeset
50 return (ssize_t)nread;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
51 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
52
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
53 char *compose_jid(const char *username, const char *servername,
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
54 const char *resource)
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
55 {
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
56 char *jid = malloc(strlen(username)+strlen(servername)+strlen(resource)+3);
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
57 strcpy(jid, username);
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
58 strcat(jid, "@");
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
59 strcat(jid, servername);
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
60 strcat(jid, "/");
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
61 strcat(jid, resource);
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
62 return jid;
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
63 }
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
64
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
65 void credits(void)
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
66 {
53
5690d6c2e48c [/trunk] Changeset 69 by mikael
mikael
parents: 36
diff changeset
67 printf(MCABBER_VERSION "\n");
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
68 printf(EMAIL "\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
69 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
70
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
71 int main(int argc, char **argv)
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
72 {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
73 char configFile[4096];
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
74 char *username, *password, *resource;
88
3c51989b0982 [/trunk] Changeset 102 by mikael
mikael
parents: 87
diff changeset
75 char *servername, *portstring;
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
76 char *jid;
88
3c51989b0982 [/trunk] Changeset 102 by mikael
mikael
parents: 87
diff changeset
77 char *optstring;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
78 int key;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
79 unsigned int port;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
80 unsigned int ping;
70
5b1249ce812d [/trunk] Changeset 84 by mikael
mikael
parents: 53
diff changeset
81 int ssl;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
82 int ret = 0;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
83
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
84 credits();
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
85
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
86 /* SET THIS >0 TO ENABLE LOG */
138
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 135
diff changeset
87 ut_InitDebug(0, NULL);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
88
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
89 ut_WriteLog("Setting signals handlers...\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
90 signal(SIGTERM, sig_handler);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
91 signal(SIGALRM, sig_handler);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
92
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
93 sprintf(configFile, "%s/.mcabberrc", getenv("HOME"));
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
94
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 70
diff changeset
95 /* Parse command line options */
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
96 while (1) {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
97 int c = getopt(argc, argv, "hf:");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
98 if (c == -1) {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
99 break;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
100 } else
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
101 switch (c) {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
102 case 'h':
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
103 printf("Usage: %s [-f mcabberrc_file]\n\n", argv[0]);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
104 printf("Thanks to AjMacias for cabber!\n\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
105 return 0;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
106 case 'f':
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
107 strncpy(configFile, optarg, 1024);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
108 break;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
109 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
110 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
111
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
112 ut_WriteLog("Setting config file: %s\n", configFile);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
113
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
114
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
115 /* Parsing config file... */
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
116 ut_WriteLog("Parsing config file...\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
117 cfg_file(configFile);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
118
138
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 135
diff changeset
119 optstring = cfg_read("debug");
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 135
diff changeset
120 if (optstring)
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 135
diff changeset
121 ut_InitDebug(1, optstring);
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 135
diff changeset
122
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
123 servername = cfg_read("server");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
124 username = cfg_read("username");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
125 password = cfg_read("password");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
126 resource = cfg_read("resource");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
127
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
128 if (!servername) {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
129 printf("Server name has not been specified in the config file!\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
130 return -1;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
131 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
132 if (!username) {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
133 printf("User name has not been specified in the config file!\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
134 return -1;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
135 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
136 if (!password) {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
137 char *p;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
138 size_t passsize = 64;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
139 printf("Please enter password: ");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
140 my_getpass(&password, &passsize);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
141 printf("\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
142 for (p = password; *p; p++);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
143 for ( ; p > password ; p--)
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
144 if (*p == '\n' || *p == '\r') *p = 0;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
145 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
146
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
147 /* Initialize N-Curses */
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
148 ut_WriteLog("Initializing N-Curses...\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
149 scr_InitCurses();
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
150
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents: 28
diff changeset
151 ut_WriteLog("Drawing main window...\n");
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents: 28
diff changeset
152 scr_DrawMainWindow();
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents: 28
diff changeset
153
113
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents: 112
diff changeset
154 optstring = cfg_read("logging");
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents: 112
diff changeset
155 if (optstring && (atoi(optstring) > 0))
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents: 112
diff changeset
156 hlog_enable(TRUE, cfg_read("logging_dir"));
8ac67e951eab [/trunk] Changeset 127 by mikael
mikael
parents: 112
diff changeset
157
70
5b1249ce812d [/trunk] Changeset 84 by mikael
mikael
parents: 53
diff changeset
158 ssl = 0;
88
3c51989b0982 [/trunk] Changeset 102 by mikael
mikael
parents: 87
diff changeset
159 optstring = cfg_read("ssl");
3c51989b0982 [/trunk] Changeset 102 by mikael
mikael
parents: 87
diff changeset
160 if (optstring && (atoi(optstring) > 0))
70
5b1249ce812d [/trunk] Changeset 84 by mikael
mikael
parents: 53
diff changeset
161 ssl = 1;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
162 portstring = cfg_read("port");
70
5b1249ce812d [/trunk] Changeset 84 by mikael
mikael
parents: 53
diff changeset
163 port = (portstring != NULL) ? (unsigned int) atoi(portstring) : 0;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
164
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
165 /* Connect to server */
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
166 ut_WriteLog("Connecting to server: %s:%d\n", servername, port);
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents: 28
diff changeset
167 scr_LogPrint("Connecting to server: %s:%d", servername, port);
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
168
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
169 jid = compose_jid(username, servername, resource);
70
5b1249ce812d [/trunk] Changeset 84 by mikael
mikael
parents: 53
diff changeset
170 jc = jb_connect(jid, port, ssl, password);
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
171 free(jid);
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents: 28
diff changeset
172 if (!jc) {
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
173 ut_WriteLog("\terror!!!\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
174 fprintf(stderr, "Error connecting to (%s)\n", servername);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
175 scr_TerminateCurses();
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
176 return -2;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
177 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
178
112
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
179 ping = 40;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
180 if (cfg_read("pinginterval"))
27
77e6bd2ccde6 [/trunk] Changeset 43 by mikael
mikael
parents: 26
diff changeset
181 ping = (unsigned int) atoi(cfg_read("pinginterval"));
112
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
182 jb_set_keepalive_delay(ping);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
183 ut_WriteLog("Ping interval stablished: %d secs\n", ping);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
184
88
3c51989b0982 [/trunk] Changeset 102 by mikael
mikael
parents: 87
diff changeset
185 optstring = cfg_read("hide_offline_buddies");
3c51989b0982 [/trunk] Changeset 102 by mikael
mikael
parents: 87
diff changeset
186 if (optstring && (atoi(optstring) > 0))
120
cfd3df636d5f [/trunk] Changeset 133 by mikael
mikael
parents: 113
diff changeset
187 buddylist_set_hide_offline_buddies(TRUE);
87
f600615c490d [/trunk] Changeset 101 by mikael
mikael
parents: 81
diff changeset
188
96
8b2703ccc4be [/trunk] Changeset 110 by mikael
mikael
parents: 88
diff changeset
189 /* Initialize commands system */
8b2703ccc4be [/trunk] Changeset 110 by mikael
mikael
parents: 88
diff changeset
190 cmd_init();
8b2703ccc4be [/trunk] Changeset 110 by mikael
mikael
parents: 88
diff changeset
191
112
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
192 ut_WriteLog("Entering into main loop...\n\n");
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
193 ut_WriteLog("Ready to send/receive messages...\n");
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
194
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 102
diff changeset
195 jb_reset_keepalive();
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 77
diff changeset
196 keypad(scr_GetInputWindow(), TRUE);
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
197 while (ret != 255) {
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
198 key = scr_Getch();
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
199 if (key != ERR)
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents: 28
diff changeset
200 ret = process_key(key);
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
201 jb_main();
36
8f1a5e79ca40 [/trunk] Changeset 52 by mikael
mikael
parents: 35
diff changeset
202 if (update_roster)
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 77
diff changeset
203 scr_DrawRoster();
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
204 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
205
35
a8ceaa3005fd [/trunk] Changeset 51 by mikael
mikael
parents: 30
diff changeset
206 jb_disconnect();
81
0bd578421ce9 [/trunk] Changeset 95 by mikael
mikael
parents: 77
diff changeset
207 //bud_TerminateBuddies();
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
208 scr_TerminateCurses();
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
209
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
210 printf("\n\nHave a nice day!\nBye!\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
211
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
212 return 0;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
213 }