Mercurial > pidgin
annotate libpurple/protocols/silc/silcpurple.h @ 22217:ad357ca94de9
We will probably eventually use purple_object_[get|set]_ui_data. Until then, this will do.
| author | Sadrul Habib Chowdhury <imadil@gmail.com> |
|---|---|
| date | Sat, 26 Jan 2008 22:33:08 +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 */ |
