Mercurial > hg
annotate mcabber/src/jabglue.h @ 1461:8fa24a6d1a93
Improve Remote Controlling Clients
The XEP recommends adding the node to the IQ response.
Some clients seem not to understand the answer when it is omitted.
Problem reported by Rhaamo and js (thanks to js for spotting the
node issue!).
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 12 Apr 2008 13:35:03 +0200 |
parents | f89844a0448a |
children | 68580b6be895 |
rev | line source |
---|---|
29 | 1 #ifndef __JABGLUE_H__ |
2 #define __JABGLUE_H__ 1 | |
3 | |
159 | 4 #include <glib.h> |
5 | |
572
afc2bd38b15c
Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents:
568
diff
changeset
|
6 #include "roster.h" |
29 | 7 #include "../libjabber/jabber.h" |
8 | |
237 | 9 #if HAVE_CONFIG_H |
10 # include <config.h> | |
11 #endif | |
12 | |
13 #if ! HAVE_DECL_STRPTIME | |
14 extern char *strptime (); | |
15 #endif | |
16 | |
29 | 17 extern jconn jc; |
1014
99c5278bf6b8
Keep the status and status messages when we're disconnected
Mikael Berthe <mikael@lilotux.net>
parents:
1009
diff
changeset
|
18 extern guint AutoConnection; |
29 | 19 |
46 | 20 extern char imstatus2char[]; |
277
4d7040cff8ee
Remove busy/occupied status, which does not really exist
Mikael Berthe <mikael@lilotux.net>
parents:
272
diff
changeset
|
21 // Status chars: '_', 'o', 'i', 'f', 'd', 'n', 'a' |
46 | 22 |
37 | 23 enum agtype { |
693 | 24 unknown, |
25 groupchat, | |
26 transport, | |
27 search | |
28 }; | |
29 | |
30 enum iqreq_type { | |
31 iqreq_none, | |
32 iqreq_version, | |
1003
c8b1a52b2fd6
Initial VCard retrieval support
Mikael Berthe <mikael@lilotux.net>
parents:
990
diff
changeset
|
33 iqreq_time, |
1015 | 34 iqreq_last, |
1003
c8b1a52b2fd6
Initial VCard retrieval support
Mikael Berthe <mikael@lilotux.net>
parents:
990
diff
changeset
|
35 iqreq_vcard |
37 | 36 }; |
37 | |
1019
9d5f6e0ea7b3
XEP-0145: display note dates
Mikael Berthe <mikael@lilotux.net>
parents:
1016
diff
changeset
|
38 struct annotation { |
9d5f6e0ea7b3
XEP-0145: display note dates
Mikael Berthe <mikael@lilotux.net>
parents:
1016
diff
changeset
|
39 time_t cdate; |
9d5f6e0ea7b3
XEP-0145: display note dates
Mikael Berthe <mikael@lilotux.net>
parents:
1016
diff
changeset
|
40 time_t mdate; |
1022
4c8d7b558e83
Annotations listing (/roster note in the status buffer)
Mikael Berthe <mikael@lilotux.net>
parents:
1019
diff
changeset
|
41 gchar *jid; |
1019
9d5f6e0ea7b3
XEP-0145: display note dates
Mikael Berthe <mikael@lilotux.net>
parents:
1016
diff
changeset
|
42 gchar *text; |
9d5f6e0ea7b3
XEP-0145: display note dates
Mikael Berthe <mikael@lilotux.net>
parents:
1016
diff
changeset
|
43 }; |
9d5f6e0ea7b3
XEP-0145: display note dates
Mikael Berthe <mikael@lilotux.net>
parents:
1016
diff
changeset
|
44 |
1391
e20ab87c4c4c
The command /room ban can be used with a nickname
Mikael Berthe <mikael@lilotux.net>
parents:
1379
diff
changeset
|
45 char *jidtodisp(const char *fjid); |
298
35cda94e570d
Add /connect and /disconnect commands
Mikael Berthe <mikael@lilotux.net>
parents:
294
diff
changeset
|
46 char *compose_jid(const char *username, const char *servername, |
35cda94e570d
Add /connect and /disconnect commands
Mikael Berthe <mikael@lilotux.net>
parents:
294
diff
changeset
|
47 const char *resource); |
1058 | 48 jconn jb_connect(const char *fjid, const char *server, unsigned int port, |
403
17aa60c6dc63
Allow a different server name than the jid domain name
Mikael Berthe <mikael@lilotux.net>
parents:
300
diff
changeset
|
49 int ssl, const char *pass); |
1413 | 50 unsigned char jb_getonline(void); |
29 | 51 void jb_disconnect(void); |
952 | 52 void jb_main(void); |
1058 | 53 void jb_subscr_send_auth(const char *bjid); |
54 void jb_subscr_cancel_auth(const char *bjid); | |
55 void jb_subscr_request_auth(const char *bjid); | |
56 void jb_subscr_request_cancel(const char *bjid); | |
57 void jb_addbuddy(const char *bjid, const char *name, const char *group); | |
58 void jb_delbuddy(const char *bjid); | |
59 void jb_updatebuddy(const char *bjid, const char *name, const char *group); | |
1413 | 60 enum imstatus jb_getstatus(void); |
61 const char *jb_getstatusmsg(void); | |
1050
ea71d31a2607
PGP: Do not sign presence messages to chatrooms
Mikael Berthe <mikael@lilotux.net>
parents:
1023
diff
changeset
|
62 void jb_setstatus(enum imstatus st, const char *recipient, const char *msg, |
ea71d31a2607
PGP: Do not sign presence messages to chatrooms
Mikael Berthe <mikael@lilotux.net>
parents:
1023
diff
changeset
|
63 int do_not_sign); |
1413 | 64 void jb_setprevstatus(void); |
1058 | 65 void jb_send_msg(const char *fjid, const char *text, int type, |
1305
9bc68473f8a3
-n and -f flags to message-sending commands
Michal 'vorner' Vaner <vorner@ucw.cz>
parents:
1197
diff
changeset
|
66 const char *subject, const char *id, gint *encrypted, |
9bc68473f8a3
-n and -f flags to message-sending commands
Michal 'vorner' Vaner <vorner@ucw.cz>
parents:
1197
diff
changeset
|
67 const char *type_overwrite); |
436 | 68 void jb_send_raw(const char *str); |
990
35e7913affb7
Send events/chatstates notifications (JEP-22/JEP-85)
Mikael Berthe <mikael@lilotux.net>
parents:
988
diff
changeset
|
69 void jb_send_chatstate(gpointer buddy, guint chatstate); |
952 | 70 void jb_keepalive(void); |
1413 | 71 void jb_reset_keepalive(void); |
112 | 72 void jb_set_keepalive_delay(unsigned int delay); |
900
b41684465283
MUC: join password-protected room
Mikael Berthe <mikael@lilotux.net>
parents:
834
diff
changeset
|
73 void jb_room_join(const char *room, const char *nickname, const char *passwd); |
449 | 74 void jb_room_unlock(const char *room); |
599 | 75 void jb_room_destroy(const char *room, const char *venue, const char *reason); |
1058 | 76 void jb_room_invite(const char *room, const char *fjid, const char *reason); |
77 int jb_room_setattrib(const char *roomid, const char *fjid, const char *nick, | |
584 | 78 struct role_affil ra, const char *reason); |
689
281aab5aef50
Introduce jb_iqs_display_list() helper function for debugging
Mikael Berthe <mikael@lilotux.net>
parents:
617
diff
changeset
|
79 void jb_iqs_display_list(void); |
1058 | 80 void jb_request(const char *fjid, enum iqreq_type reqtype); |
1363
32077249de77
Warn if a MUC room without bookmark is renamed
Mikael Berthe <mikael@lilotux.net>
parents:
1305
diff
changeset
|
81 guint jb_is_bookmarked(const char *bjid); |
1395
d431cd75eb53
Use bookmarked nickname when manually joining a room
Mikael Berthe <mikael@lilotux.net>
parents:
1391
diff
changeset
|
82 const char *jb_get_bookmark_nick(const char *bjid); |
1163
2913310a7be6
Make /roster bookmark in the status buffer show all bookmarks
Mikael Berthe <mikael@lilotux.net>
parents:
1058
diff
changeset
|
83 GSList *jb_get_all_storage_bookmarks(void); |
1009 | 84 void jb_set_storage_bookmark(const char *roomid, const char *name, |
85 const char *nick, const char *passwd, | |
1379
74b7621537d7
MUC: Store room settings (print_status, auto_whois) in private storage
Mikael Berthe <mikael@lilotux.net>
parents:
1363
diff
changeset
|
86 int autojoin, enum room_printstatus pstatus, |
74b7621537d7
MUC: Store room settings (print_status, auto_whois) in private storage
Mikael Berthe <mikael@lilotux.net>
parents:
1363
diff
changeset
|
87 enum room_autowhois awhois); |
1023 | 88 struct annotation *jb_get_storage_rosternotes(const char *barejid, int silent); |
1022
4c8d7b558e83
Annotations listing (/roster note in the status buffer)
Mikael Berthe <mikael@lilotux.net>
parents:
1019
diff
changeset
|
89 GSList *jb_get_all_storage_rosternotes(void); |
1016 | 90 void jb_set_storage_rosternotes(const char *barejid, const char *note); |
29 | 91 |
92 #endif /* __JABGLUE_H__ */ | |
576 | 93 |
580 | 94 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */ |