Fri, 09 Nov 2007 08:48:40 +0000
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
through a9f75de97d6cdf8fe8bf091b95def6c648aac82f
applied changes from a9f75de97d6cdf8fe8bf091b95def6c648aac82f
through 7c9f2e0cc4967a3eaade95d32f164349b6d1aa03
applied changes from a9f75de97d6cdf8fe8bf091b95def6c648aac82f
through fc4350a15fdd1f51b4496568afaa83355e18b714
applied changes from fc4350a15fdd1f51b4496568afaa83355e18b714
through 18ccd2ba2c1c9b7fa3dfedf72b48b3bd01c3a7c4
applied changes from a9f75de97d6cdf8fe8bf091b95def6c648aac82f
through 20236f54c97e87512b7eb716559a4bd86b73f833
applied changes from 868a040ee69c6e45b9132e7254a3f523e55385b2
through 0e154355bb3e8bdaeb793b142075b60671b37a48
applied changes from 329395b9793793f35bcf231033c1eb942513ab01
through 9d8120be512c235d76a8f6fee60cae024da8772e
| 8849 | 1 | /* |
| 2 | ||
| 15884 | 3 | silcpurple.h |
| 8849 | 4 | |
| 5 | Author: Pekka Riikonen <priikone@silcnet.org> | |
| 6 | ||
|
17675
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
7 | Copyright (C) 2004 - 2007 Pekka Riikonen |
| 8849 | 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 | ||
| 15884 | 20 | #ifndef SILCPURPLE_H |
| 21 | #define SILCPURPLE_H | |
| 8849 | 22 | |
| 15884 | 23 | /* Purple includes */ |
| 8849 | 24 | #include "internal.h" |
| 25 | #include "account.h" | |
| 26 | #include "accountopt.h" | |
|
10246
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10050
diff
changeset
|
27 | #include "cmds.h" |
|
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10050
diff
changeset
|
28 | #include "conversation.h" |
| 8849 | 29 | #include "debug.h" |
|
10246
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10050
diff
changeset
|
30 | #include "ft.h" |
| 8849 | 31 | #include "notify.h" |
| 32 | #include "prpl.h" | |
| 33 | #include "request.h" | |
|
10246
aa5bff72f94c
[gaim-migrate @ 11386]
Mark Doliner <markdoliner@pidgin.im>
parents:
10050
diff
changeset
|
34 | #include "roomlist.h" |
| 8849 | 35 | #include "server.h" |
| 36 | #include "util.h" | |
| 37 | ||
|
20289
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17680
diff
changeset
|
38 | #undef SILC_VERSION |
|
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17680
diff
changeset
|
39 | #define SILC_VERSION(a, b, c) (((a) << 24) + ((b) << 16) + ((c) << 8)) |
|
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17680
diff
changeset
|
40 | |
| 8849 | 41 | /* Default public and private key file names */ |
| 15884 | 42 | #define SILCPURPLE_PUBLIC_KEY_NAME "public_key.pub" |
| 43 | #define SILCPURPLE_PRIVATE_KEY_NAME "private_key.prv" | |
| 8849 | 44 | |
| 45 | /* Default settings for creating key pair */ | |
| 15884 | 46 | #define SILCPURPLE_DEF_PKCS "rsa" |
| 47 | #define SILCPURPLE_DEF_PKCS_LEN 2048 | |
| 8849 | 48 | |
| 15884 | 49 | #define SILCPURPLE_PRVGRP 0x001fffff |
| 8849 | 50 | |
|
10050
78e480f768f2
[gaim-migrate @ 11011]
Dave West <kat@users.sourceforge.net>
parents:
9917
diff
changeset
|
51 | /* Status IDs */ |
| 15884 | 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" | |
|
10050
78e480f768f2
[gaim-migrate @ 11011]
Dave West <kat@users.sourceforge.net>
parents:
9917
diff
changeset
|
59 | |
| 8849 | 60 | typedef struct { |
| 61 | unsigned long id; | |
| 62 | const char *channel; | |
| 63 | unsigned long chid; | |
| 64 | const char *parentch; | |
| 65 | SilcChannelPrivateKey key; | |
| 15884 | 66 | } *SilcPurplePrvgrp; |
| 8849 | 67 | |
| 15884 | 68 | /* The SILC Purple plugin context */ |
| 69 | typedef struct SilcPurpleStruct { | |
| 8849 | 70 | SilcClient client; |
| 71 | SilcClientConnection conn; | |
|
17675
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
72 | SilcPublicKey public_key; |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
73 | SilcPrivateKey private_key; |
|
20289
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17680
diff
changeset
|
74 | SilcHash sha1hash; |
| 8849 | 75 | |
|
20289
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
17680
diff
changeset
|
76 | SilcDList tasks; |
| 8849 | 77 | guint scheduler; |
| 15884 | 78 | PurpleConnection *gc; |
| 79 | PurpleAccount *account; | |
| 8849 | 80 | unsigned long channel_ids; |
| 81 | GList *grps; | |
| 82 | ||
| 83 | char *motd; | |
| 15884 | 84 | PurpleRoomlist *roomlist; |
|
12217
ea610d8ab584
[gaim-migrate @ 14519]
Pekka Riikonen <priikone@silcnet.org>
parents:
12216
diff
changeset
|
85 | SilcMimeAssembler mimeass; |
| 8849 | 86 | unsigned int detaching : 1; |
| 87 | unsigned int resuming : 1; | |
| 88 | unsigned int roomlist_canceled : 1; | |
| 89 | unsigned int chpk : 1; | |
| 15884 | 90 | } *SilcPurple; |
| 8849 | 91 | |
| 92 | ||
|
17675
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
93 | void silc_say(SilcClient client, SilcClientConnection conn, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
94 | SilcClientMessageType type, char *msg, ...); |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
95 | SilcBool silcpurple_command_reply(SilcClient client, SilcClientConnection conn, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
96 | SilcCommand command, SilcStatus status, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
97 | SilcStatus error, void *context, va_list ap); |
| 15884 | 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, | |
|
17675
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
102 | const char *name, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
103 | SilcConnectionType conn_type, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
104 | SilcPublicKey public_key, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
105 | SilcVerifyPublicKey completion, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
106 | void *context); |
| 15884 | 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, | |
|
17675
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
112 | SilcClientConnection conn, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
113 | SilcClientEntry client_entry, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
114 | const char *hostname, SilcUInt16 port, |
|
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
115 | SilcUInt16 protocol); |
| 15884 | 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, | |
| 8849 | 123 | SilcClientEntry client_entry, SilcUInt32 session_id, |
| 124 | const char *hostname, SilcUInt16 port); | |
| 15884 | 125 | void silcpurple_show_public_key(SilcPurple sg, |
| 8849 | 126 | const char *name, SilcPublicKey public_key, |
| 127 | GCallback callback, void *context); | |
| 15884 | 128 | void silcpurple_get_info(PurpleConnection *gc, const char *who); |
| 8849 | 129 | SilcAttributePayload |
| 15884 | 130 | silcpurple_get_attr(SilcDList attrs, SilcAttribute attribute); |
| 131 | void silcpurple_get_umode_string(SilcUInt32 mode, char *buf, | |
| 8849 | 132 | SilcUInt32 buf_size); |
| 15884 | 133 | void silcpurple_get_chmode_string(SilcUInt32 mode, char *buf, |
| 8849 | 134 | SilcUInt32 buf_size); |
| 15884 | 135 | void silcpurple_get_chumode_string(SilcUInt32 mode, char *buf, |
| 8849 | 136 | SilcUInt32 buf_size); |
| 15884 | 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, | |
| 8849 | 143 | const char *name); |
| 15884 | 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, | |
|
17675
e7069bf1de1a
Patch from Pekka Riikonen to update the SILC protocol plugin to work with
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
16549
diff
changeset
|
150 | SilcDList channel_pubkeys); |
| 15884 | 151 | void silcpurple_parse_attrs(SilcDList attrs, char **moodstr, char **statusstr, |
|
9488
9d6520fa53fd
[gaim-migrate @ 10313]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9466
diff
changeset
|
152 | char **contactstr, char **langstr, char **devicestr, |
|
9d6520fa53fd
[gaim-migrate @ 10313]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9466
diff
changeset
|
153 | char **tzstr, char **geostr); |
|
16549
59e5ad39510c
Update SILC for imgstore changes.
Daniel Atallah <datallah@pidgin.im>
parents:
15906
diff
changeset
|
154 | void silcpurple_buddy_set_icon(PurpleConnection *gc, PurpleStoredImage *img); |
| 15884 | 155 | char *silcpurple_file2mime(const char *filename); |
| 156 | SilcDList silcpurple_image_message(const char *msg, SilcUInt32 *mflags); | |
| 8849 | 157 | |
|
9353
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
158 | #ifdef _WIN32 |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
159 | typedef int uid_t; |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
160 | |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
161 | struct passwd { |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
162 | char *pw_name; /* user name */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
163 | char *pw_passwd; /* user password */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
164 | int pw_uid; /* user id */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
165 | int pw_gid; /* group id */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
166 | char *pw_gecos; /* real name */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
167 | char *pw_dir; /* home directory */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
168 | char *pw_shell; /* shell program */ |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
169 | }; |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
170 | |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
171 | struct passwd *getpwuid(int uid); |
|
12323
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
12217
diff
changeset
|
172 | int getuid(void); |
|
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
12217
diff
changeset
|
173 | int geteuid(void); |
|
9353
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
174 | #endif |
|
ff6546387358
[gaim-migrate @ 10161]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9288
diff
changeset
|
175 | |
| 15884 | 176 | #endif /* SILCPURPLE_H */ |