Mercurial > pidgin
annotate libpurple/protocols/silc/silcpurple.h @ 25538:27e6ab4ff554
This should fix a sporadic crash? The behavior before was clearly wrong--
there's no need to check that body != NULL twice. This behavior should
be better... but this probably shouldn't be a g_return(), since we don't
control the data sent to us by the server it shouldn't be considered a
programming error if they fail to send us the "Completed" key
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 26 Feb 2009 08:14:24 +0000 |
parents | 6b02dba5bf41 |
children | 1cdae196aac8 |
rev | line source |
---|---|
15822 | 1 /* |
2 | |
3 silcpurple.h | |
4 | |
5 Author: Pekka Riikonen <priikone@silcnet.org> | |
6 | |
17568
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
7 Copyright (C) 2004 - 2007 Pekka Riikonen |
15822 | 8 |
9 This program is free software; you can redistribute it and/or modify | |
10 it under the terms of the GNU General Public License as published by | |
11 the Free Software Foundation; version 2 of the License. | |
12 | |
13 This program is distributed in the hope that it will be useful, | |
14 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 GNU General Public License for more details. | |
17 | |
18 */ | |
19 | |
20 #ifndef SILCPURPLE_H | |
21 #define SILCPURPLE_H | |
22 | |
23 /* Purple includes */ | |
24 #include "internal.h" | |
25 #include "account.h" | |
26 #include "accountopt.h" | |
27 #include "cmds.h" | |
28 #include "conversation.h" | |
29 #include "debug.h" | |
30 #include "ft.h" | |
31 #include "notify.h" | |
32 #include "prpl.h" | |
33 #include "request.h" | |
34 #include "roomlist.h" | |
35 #include "server.h" | |
36 #include "util.h" | |
37 | |
21044
6b02dba5bf41
Patch from Pekka Riikone to fix various SILC issues.
Ethan Blanton <elb@pidgin.im>
parents:
17573
diff
changeset
|
38 #undef SILC_VERSION |
6b02dba5bf41
Patch from Pekka Riikone to fix various SILC issues.
Ethan Blanton <elb@pidgin.im>
parents:
17573
diff
changeset
|
39 #define SILC_VERSION(a, b, c) (((a) << 24) + ((b) << 16) + ((c) << 8)) |
6b02dba5bf41
Patch from Pekka Riikone to fix various SILC issues.
Ethan Blanton <elb@pidgin.im>
parents:
17573
diff
changeset
|
40 |
15822 | 41 /* Default public and private key file names */ |
42 #define SILCPURPLE_PUBLIC_KEY_NAME "public_key.pub" | |
43 #define SILCPURPLE_PRIVATE_KEY_NAME "private_key.prv" | |
44 | |
45 /* Default settings for creating key pair */ | |
46 #define SILCPURPLE_DEF_PKCS "rsa" | |
47 #define SILCPURPLE_DEF_PKCS_LEN 2048 | |
48 | |
49 #define SILCPURPLE_PRVGRP 0x001fffff | |
50 | |
51 /* Status IDs */ | |
52 #define SILCPURPLE_STATUS_ID_OFFLINE "offline" | |
53 #define SILCPURPLE_STATUS_ID_AVAILABLE "available" | |
54 #define SILCPURPLE_STATUS_ID_HYPER "hyper" | |
55 #define SILCPURPLE_STATUS_ID_AWAY "away" | |
56 #define SILCPURPLE_STATUS_ID_BUSY "busy" | |
57 #define SILCPURPLE_STATUS_ID_INDISPOSED "indisposed" | |
58 #define SILCPURPLE_STATUS_ID_PAGE "page" | |
59 | |
60 typedef struct { | |
61 unsigned long id; | |
62 const char *channel; | |
63 unsigned long chid; | |
64 const char *parentch; | |
65 SilcChannelPrivateKey key; | |
66 } *SilcPurplePrvgrp; | |
67 | |
68 /* The SILC Purple plugin context */ | |
69 typedef struct SilcPurpleStruct { | |
70 SilcClient client; | |
71 SilcClientConnection conn; | |
17568
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
72 SilcPublicKey public_key; |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
73 SilcPrivateKey private_key; |
21044
6b02dba5bf41
Patch from Pekka Riikone to fix various SILC issues.
Ethan Blanton <elb@pidgin.im>
parents:
17573
diff
changeset
|
74 SilcHash sha1hash; |
15822 | 75 |
21044
6b02dba5bf41
Patch from Pekka Riikone to fix various SILC issues.
Ethan Blanton <elb@pidgin.im>
parents:
17573
diff
changeset
|
76 SilcDList tasks; |
15822 | 77 guint scheduler; |
78 PurpleConnection *gc; | |
79 PurpleAccount *account; | |
80 unsigned long channel_ids; | |
81 GList *grps; | |
82 | |
83 char *motd; | |
84 PurpleRoomlist *roomlist; | |
85 SilcMimeAssembler mimeass; | |
86 unsigned int detaching : 1; | |
87 unsigned int resuming : 1; | |
88 unsigned int roomlist_canceled : 1; | |
89 unsigned int chpk : 1; | |
90 } *SilcPurple; | |
91 | |
92 | |
17568
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
93 void silc_say(SilcClient client, SilcClientConnection conn, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
94 SilcClientMessageType type, char *msg, ...); |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
95 SilcBool silcpurple_command_reply(SilcClient client, SilcClientConnection conn, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
96 SilcCommand command, SilcStatus status, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
97 SilcStatus error, void *context, va_list ap); |
15822 | 98 gboolean silcpurple_check_silc_dir(PurpleConnection *gc); |
99 const char *silcpurple_silcdir(void); | |
100 const char *silcpurple_session_file(const char *account); | |
101 void silcpurple_verify_public_key(SilcClient client, SilcClientConnection conn, | |
17568
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
102 const char *name, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
103 SilcConnectionType conn_type, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
104 SilcPublicKey public_key, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
105 SilcVerifyPublicKey completion, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
106 void *context); |
15822 | 107 GList *silcpurple_buddy_menu(PurpleBuddy *buddy); |
108 void silcpurple_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group); | |
109 void silcpurple_send_buddylist(PurpleConnection *gc); | |
110 void silcpurple_remove_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group); | |
111 void silcpurple_buddy_keyagr_request(SilcClient client, | |
17568
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
112 SilcClientConnection conn, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
113 SilcClientEntry client_entry, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
114 const char *hostname, SilcUInt16 port, |
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
115 SilcUInt16 protocol); |
15822 | 116 void silcpurple_idle_set(PurpleConnection *gc, int idle); |
117 void silcpurple_tooltip_text(PurpleBuddy *b, PurpleNotifyUserInfo *user_info, gboolean full); | |
118 char *silcpurple_status_text(PurpleBuddy *b); | |
119 gboolean silcpurple_ip_is_private(const char *ip); | |
120 void silcpurple_ftp_send_file(PurpleConnection *gc, const char *name, const char *file); | |
121 PurpleXfer *silcpurple_ftp_new_xfer(PurpleConnection *gc, const char *name); | |
122 void silcpurple_ftp_request(SilcClient client, SilcClientConnection conn, | |
123 SilcClientEntry client_entry, SilcUInt32 session_id, | |
124 const char *hostname, SilcUInt16 port); | |
125 void silcpurple_show_public_key(SilcPurple sg, | |
126 const char *name, SilcPublicKey public_key, | |
127 GCallback callback, void *context); | |
128 void silcpurple_get_info(PurpleConnection *gc, const char *who); | |
129 SilcAttributePayload | |
130 silcpurple_get_attr(SilcDList attrs, SilcAttribute attribute); | |
131 void silcpurple_get_umode_string(SilcUInt32 mode, char *buf, | |
132 SilcUInt32 buf_size); | |
133 void silcpurple_get_chmode_string(SilcUInt32 mode, char *buf, | |
134 SilcUInt32 buf_size); | |
135 void silcpurple_get_chumode_string(SilcUInt32 mode, char *buf, | |
136 SilcUInt32 buf_size); | |
137 GList *silcpurple_chat_info(PurpleConnection *gc); | |
138 GHashTable *silcpurple_chat_info_defaults(PurpleConnection *gc, const char *chat_name); | |
139 GList *silcpurple_chat_menu(PurpleChat *); | |
140 void silcpurple_chat_join(PurpleConnection *gc, GHashTable *data); | |
141 char *silcpurple_get_chat_name(GHashTable *data); | |
142 void silcpurple_chat_invite(PurpleConnection *gc, int id, const char *msg, | |
143 const char *name); | |
144 void silcpurple_chat_leave(PurpleConnection *gc, int id); | |
145 int silcpurple_chat_send(PurpleConnection *gc, int id, const char *msg, PurpleMessageFlags flags); | |
146 void silcpurple_chat_set_topic(PurpleConnection *gc, int id, const char *topic); | |
147 PurpleRoomlist *silcpurple_roomlist_get_list(PurpleConnection *gc); | |
148 void silcpurple_roomlist_cancel(PurpleRoomlist *list); | |
149 void silcpurple_chat_chauth_show(SilcPurple sg, SilcChannelEntry channel, | |
17568
980a104267da
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <stu@nosnilmot.com>
parents:
16485
diff
changeset
|
150 SilcDList channel_pubkeys); |
15822 | 151 void silcpurple_parse_attrs(SilcDList attrs, char **moodstr, char **statusstr, |
152 char **contactstr, char **langstr, char **devicestr, | |
153 char **tzstr, char **geostr); | |
16485
6c3b44ac71f3
Update SILC for imgstore changes.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
15822
diff
changeset
|
154 void silcpurple_buddy_set_icon(PurpleConnection *gc, PurpleStoredImage *img); |
15822 | 155 char *silcpurple_file2mime(const char *filename); |
156 SilcDList silcpurple_image_message(const char *msg, SilcUInt32 *mflags); | |
157 | |
158 #ifdef _WIN32 | |
159 typedef int uid_t; | |
160 | |
161 struct passwd { | |
162 char *pw_name; /* user name */ | |
163 char *pw_passwd; /* user password */ | |
164 int pw_uid; /* user id */ | |
165 int pw_gid; /* group id */ | |
166 char *pw_gecos; /* real name */ | |
167 char *pw_dir; /* home directory */ | |
168 char *pw_shell; /* shell program */ | |
169 }; | |
170 | |
171 struct passwd *getpwuid(int uid); | |
172 int getuid(void); | |
173 int geteuid(void); | |
174 #endif | |
175 | |
176 #endif /* SILCPURPLE_H */ |