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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
1 #ifndef __JABGLUE_H__
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
2 #define __JABGLUE_H__ 1
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
3
159
ba51d1737086 [/trunk] Changeset 171 by mikael
mikael
parents: 124
diff changeset
4 #include <glib.h>
ba51d1737086 [/trunk] Changeset 171 by mikael
mikael
parents: 124
diff changeset
5
572
afc2bd38b15c Implement affiliations handling, add "/room whois"
Mikael Berthe <mikael@lilotux.net>
parents: 568
diff changeset
6 #include "roster.h"
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
7 #include "../libjabber/jabber.h"
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
8
237
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
9 #if HAVE_CONFIG_H
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
10 # include <config.h>
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
11 #endif
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
12
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
13 #if ! HAVE_DECL_STRPTIME
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
14 extern char *strptime ();
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
15 #endif
c8df64f43625 [/trunk] Changeset 250 by mikael
mikael
parents: 208
diff changeset
16
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
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
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
19
46
f22e1d120606 [/trunk] Changeset 62 by mikael
mikael
parents: 41
diff changeset
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
f22e1d120606 [/trunk] Changeset 62 by mikael
mikael
parents: 41
diff changeset
22
37
1441ba37a5c1 [/trunk] Changeset 53 by mikael
mikael
parents: 35
diff changeset
23 enum agtype {
693
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
24 unknown,
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
25 groupchat,
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
26 transport,
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
27 search
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
28 };
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
29
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
30 enum iqreq_type {
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
31 iqreq_none,
e98abd3ce28c Add /request command
Mikael Berthe <mikael@lilotux.net>
parents: 689
diff changeset
32 iqreq_version,
1003
c8b1a52b2fd6 Initial VCard retrieval support
Mikael Berthe <mikael@lilotux.net>
parents: 990
diff changeset
33 iqreq_time,
1015
579299b1c9b2 Add /request last
Mikael Berthe <mikael@lilotux.net>
parents: 1014
diff changeset
34 iqreq_last,
1003
c8b1a52b2fd6 Initial VCard retrieval support
Mikael Berthe <mikael@lilotux.net>
parents: 990
diff changeset
35 iqreq_vcard
37
1441ba37a5c1 [/trunk] Changeset 53 by mikael
mikael
parents: 35
diff changeset
36 };
1441ba37a5c1 [/trunk] Changeset 53 by mikael
mikael
parents: 35
diff changeset
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
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
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
f89844a0448a Remove useless inlines
Mikael Berthe <mikael@lilotux.net>
parents: 1395
diff changeset
50 unsigned char jb_getonline(void);
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
51 void jb_disconnect(void);
952
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 900
diff changeset
52 void jb_main(void);
1058
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
53 void jb_subscr_send_auth(const char *bjid);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
54 void jb_subscr_cancel_auth(const char *bjid);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
55 void jb_subscr_request_auth(const char *bjid);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
56 void jb_subscr_request_cancel(const char *bjid);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
57 void jb_addbuddy(const char *bjid, const char *name, const char *group);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
58 void jb_delbuddy(const char *bjid);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
59 void jb_updatebuddy(const char *bjid, const char *name, const char *group);
1413
f89844a0448a Remove useless inlines
Mikael Berthe <mikael@lilotux.net>
parents: 1395
diff changeset
60 enum imstatus jb_getstatus(void);
f89844a0448a Remove useless inlines
Mikael Berthe <mikael@lilotux.net>
parents: 1395
diff changeset
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
f89844a0448a Remove useless inlines
Mikael Berthe <mikael@lilotux.net>
parents: 1395
diff changeset
64 void jb_setprevstatus(void);
1058
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
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
802da817a684 Add /rawxml command
Mikael Berthe <mikael@lilotux.net>
parents: 403
diff changeset
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
527d6f234924 Small code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 900
diff changeset
70 void jb_keepalive(void);
1413
f89844a0448a Remove useless inlines
Mikael Berthe <mikael@lilotux.net>
parents: 1395
diff changeset
71 void jb_reset_keepalive(void);
112
edb5591e2e64 [/trunk] Changeset 126 by mikael
mikael
parents: 46
diff changeset
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
e08b0c2d0e54 Add "/room unlock"
Mikael Berthe <mikael@lilotux.net>
parents: 447
diff changeset
74 void jb_room_unlock(const char *room);
599
fb67bf62f4eb Add "/room destroy"
Mikael Berthe <mikael@lilotux.net>
parents: 584
diff changeset
75 void jb_room_destroy(const char *room, const char *venue, const char *reason);
1058
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
76 void jb_room_invite(const char *room, const char *fjid, const char *reason);
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
77 int jb_room_setattrib(const char *roomid, const char *fjid, const char *nick,
584
414fbf558f1e jb_room_setattrib()
Mikael Berthe <mikael@lilotux.net>
parents: 580
diff changeset
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
c0d44a9a99bc Code cleanup
Mikael Berthe <mikael@lilotux.net>
parents: 1055
diff changeset
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
c112423ac012 Add /room bookmark
Mikael Berthe <mikael@lilotux.net>
parents: 1003
diff changeset
84 void jb_set_storage_bookmark(const char *roomid, const char *name,
c112423ac012 Add /room bookmark
Mikael Berthe <mikael@lilotux.net>
parents: 1003
diff changeset
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
94d9a3cbb211 Remove useless message
Mikael Berthe <mikael@lilotux.net>
parents: 1022
diff changeset
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
4d3c48844746 Add /roster note
Mikael Berthe <mikael@lilotux.net>
parents: 1015
diff changeset
90 void jb_set_storage_rosternotes(const char *barejid, const char *note);
29
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
91
86837ff0554c [/trunk] Changeset 45 by mikael
mikael
parents:
diff changeset
92 #endif /* __JABGLUE_H__ */
576
8b3db0b555a1 Add Vim modelines
Mikael Berthe <mikael@lilotux.net>
parents: 572
diff changeset
93
580
fed6d1e4d7a9 Fix modelines
Mikael Berthe <mikael@lilotux.net>
parents: 576
diff changeset
94 /* vim: set expandtab cindent cinoptions=>2\:2(0: For Vim users... */