34 jconn jc; |
34 jconn jc; |
35 time_t LastPingTime; |
35 time_t LastPingTime; |
36 unsigned int KeepaliveDelay; |
36 unsigned int KeepaliveDelay; |
37 static int s_id = 1; // FIXME which use?? |
37 static int s_id = 1; // FIXME which use?? |
38 static int regmode, regdone; |
38 static int regmode, regdone; |
|
39 static enum imstatus mystatus = offline; |
39 unsigned char online; |
40 unsigned char online; |
40 |
41 |
41 char imstatus2char[imstatus_size] = { |
42 char imstatus2char[imstatus_size] = { |
42 '_', 'o', 'i', 'f', 'd', 'c', 'n', 'a' |
43 '_', 'o', 'i', 'f', 'd', 'c', 'n', 'a' |
43 }; |
44 }; |
201 if (now > LastPingTime + KeepaliveDelay) |
202 if (now > LastPingTime + KeepaliveDelay) |
202 jb_keepalive(); |
203 jb_keepalive(); |
203 } |
204 } |
204 } |
205 } |
205 |
206 |
206 void setjabberstatus(enum imstatus st, char *msg) |
207 inline enum imstatus jb_getstatus() |
207 { |
208 { |
208 xmlnode x = jutil_presnew(JPACKET__UNKNOWN, 0, 0); |
209 return mystatus; |
|
210 } |
|
211 |
|
212 void jb_setstatus(enum imstatus st, char *msg) |
|
213 { |
|
214 xmlnode x; |
|
215 |
|
216 if (!online) |
|
217 return; |
|
218 |
|
219 x = jutil_presnew(JPACKET__UNKNOWN, 0, 0); |
209 |
220 |
210 switch(st) { |
221 switch(st) { |
211 case away: |
222 case away: |
212 xmlnode_insert_cdata(xmlnode_insert_tag(x, "show"), "away", |
223 xmlnode_insert_cdata(xmlnode_insert_tag(x, "show"), "away", |
213 (unsigned) -1); |
224 (unsigned) -1); |
241 if (!add["prio"].empty()) |
252 if (!add["prio"].empty()) |
242 xmlnode_insert_cdata(xmlnode_insert_tag(x, "priority"), |
253 xmlnode_insert_cdata(xmlnode_insert_tag(x, "priority"), |
243 add["prio"].c_str(), (unsigned) -1); |
254 add["prio"].c_str(), (unsigned) -1); |
244 */ |
255 */ |
245 |
256 |
246 if (!msg || !*msg) { |
257 if (!msg) { |
247 msg = ""; // FIXME |
258 msg = ""; // FIXME |
248 //msg = imstatus2str(st); |
259 //msg = imstatus2str(st); |
249 } |
260 } |
250 |
261 |
251 xmlnode_insert_cdata(xmlnode_insert_tag(x, "status"), msg, |
262 xmlnode_insert_cdata(xmlnode_insert_tag(x, "status"), msg, |
252 (unsigned) -1); |
263 (unsigned) -1); |
253 |
264 |
254 jab_send(jc, x); |
265 jab_send(jc, x); |
255 xmlnode_free(x); |
266 xmlnode_free(x); |
256 |
267 |
257 //sendvisibility(); |
268 //sendvisibility(); ??? |
258 |
269 |
259 // XXX logger.putourstatus(proto, getstatus(), ourstatus = st); |
270 hk_mystatuschange(0, mystatus, st); |
|
271 mystatus = st; |
260 } |
272 } |
261 |
273 |
262 void jb_send_msg(const char *jid, const char *text) |
274 void jb_send_msg(const char *jid, const char *text) |
263 { |
275 { |
264 xmlnode x = jutil_msgnew(TMSG_CHAT, (char*)jid, 0, (char*)text); |
276 xmlnode x = jutil_msgnew(TMSG_CHAT, (char*)jid, 0, (char*)text); |
274 //flogged = TRUE; |
286 //flogged = TRUE; |
275 //ourstatus = available; |
287 //ourstatus = available; |
276 |
288 |
277 //setautostatus(jhook.manualstatus); |
289 //setautostatus(jhook.manualstatus); |
278 |
290 |
279 setjabberstatus(1, "I'm here!"); |
291 jb_setstatus(available, "I'm here!"); // XXX not always "available"... |
280 buddylist_build(); |
292 buddylist_build(); |
281 /* |
293 /* |
282 for (i = 0; i < clist.count; i++) { |
294 for (i = 0; i < clist.count; i++) { |
283 c = (icqcontact *) clist.at(i); |
295 c = (icqcontact *) clist.at(i); |
284 |
296 |