libgaim/protocols/silc/silcgaim.h

branch
cpw.khc.msnp14
changeset 20472
6a6d2ef151e6
parent 12970
c2f3b4dcf711
parent 15234
25f4aabfdcaf
child 20471
1966704b3e42
equal deleted inserted replaced
13912:463b4fa9f067 20472:6a6d2ef151e6
1 /*
2
3 silcgaim.h
4
5 Author: Pekka Riikonen <priikone@silcnet.org>
6
7 Copyright (C) 2004 Pekka Riikonen
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 SILCGAIM_H
21 #define SILCGAIM_H
22
23 /* Gaim 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
38 /* Default public and private key file names */
39 #define SILCGAIM_PUBLIC_KEY_NAME "public_key.pub"
40 #define SILCGAIM_PRIVATE_KEY_NAME "private_key.prv"
41
42 /* Default settings for creating key pair */
43 #define SILCGAIM_DEF_PKCS "rsa"
44 #define SILCGAIM_DEF_PKCS_LEN 2048
45
46 #define SILCGAIM_PRVGRP 0x001fffff
47
48 /* Status IDs */
49 #define SILCGAIM_STATUS_ID_OFFLINE "offline"
50 #define SILCGAIM_STATUS_ID_AVAILABLE "available"
51 #define SILCGAIM_STATUS_ID_HYPER "hyper"
52 #define SILCGAIM_STATUS_ID_AWAY "away"
53 #define SILCGAIM_STATUS_ID_BUSY "busy"
54 #define SILCGAIM_STATUS_ID_INDISPOSED "indisposed"
55 #define SILCGAIM_STATUS_ID_PAGE "page"
56
57 typedef struct {
58 unsigned long id;
59 const char *channel;
60 unsigned long chid;
61 const char *parentch;
62 SilcChannelPrivateKey key;
63 } *SilcGaimPrvgrp;
64
65 /* The SILC Gaim plugin context */
66 typedef struct SilcGaimStruct {
67 SilcClient client;
68 SilcClientConnection conn;
69
70 guint scheduler;
71 GaimConnection *gc;
72 GaimAccount *account;
73 unsigned long channel_ids;
74 GList *grps;
75
76 char *motd;
77 GaimRoomlist *roomlist;
78 #ifdef HAVE_SILCMIME_H
79 SilcMimeAssembler mimeass;
80 #endif
81 unsigned int detaching : 1;
82 unsigned int resuming : 1;
83 unsigned int roomlist_canceled : 1;
84 unsigned int chpk : 1;
85 } *SilcGaim;
86
87
88 gboolean silcgaim_check_silc_dir(GaimConnection *gc);
89 void silcgaim_chat_join_done(SilcClient client,
90 SilcClientConnection conn,
91 SilcClientEntry *clients,
92 SilcUInt32 clients_count,
93 void *context);
94 const char *silcgaim_silcdir(void);
95 const char *silcgaim_session_file(const char *account);
96 void silcgaim_verify_public_key(SilcClient client, SilcClientConnection conn,
97 const char *name, SilcSocketType conn_type,
98 unsigned char *pk, SilcUInt32 pk_len,
99 SilcSKEPKType pk_type,
100 SilcVerifyPublicKey completion, void *context);
101 GList *silcgaim_buddy_menu(GaimBuddy *buddy);
102 void silcgaim_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group);
103 void silcgaim_send_buddylist(GaimConnection *gc);
104 void silcgaim_remove_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group);
105 void silcgaim_buddy_keyagr_request(SilcClient client,
106 SilcClientConnection conn,
107 SilcClientEntry client_entry,
108 const char *hostname, SilcUInt16 port);
109 void silcgaim_idle_set(GaimConnection *gc, int idle);
110 void silcgaim_tooltip_text(GaimBuddy *b, GaimNotifyUserInfo *user_info, gboolean full);
111 char *silcgaim_status_text(GaimBuddy *b);
112 gboolean silcgaim_ip_is_private(const char *ip);
113 void silcgaim_ftp_send_file(GaimConnection *gc, const char *name, const char *file);
114 GaimXfer *silcgaim_ftp_new_xfer(GaimConnection *gc, const char *name);
115 void silcgaim_ftp_request(SilcClient client, SilcClientConnection conn,
116 SilcClientEntry client_entry, SilcUInt32 session_id,
117 const char *hostname, SilcUInt16 port);
118 void silcgaim_show_public_key(SilcGaim sg,
119 const char *name, SilcPublicKey public_key,
120 GCallback callback, void *context);
121 void silcgaim_get_info(GaimConnection *gc, const char *who);
122 SilcAttributePayload
123 silcgaim_get_attr(SilcDList attrs, SilcAttribute attribute);
124 void silcgaim_get_umode_string(SilcUInt32 mode, char *buf,
125 SilcUInt32 buf_size);
126 void silcgaim_get_chmode_string(SilcUInt32 mode, char *buf,
127 SilcUInt32 buf_size);
128 void silcgaim_get_chumode_string(SilcUInt32 mode, char *buf,
129 SilcUInt32 buf_size);
130 GList *silcgaim_chat_info(GaimConnection *gc);
131 GHashTable *silcgaim_chat_info_defaults(GaimConnection *gc, const char *chat_name);
132 GList *silcgaim_chat_menu(GaimChat *);
133 void silcgaim_chat_join(GaimConnection *gc, GHashTable *data);
134 char *silcgaim_get_chat_name(GHashTable *data);
135 void silcgaim_chat_invite(GaimConnection *gc, int id, const char *msg,
136 const char *name);
137 void silcgaim_chat_leave(GaimConnection *gc, int id);
138 int silcgaim_chat_send(GaimConnection *gc, int id, const char *msg, GaimMessageFlags flags);
139 void silcgaim_chat_set_topic(GaimConnection *gc, int id, const char *topic);
140 GaimRoomlist *silcgaim_roomlist_get_list(GaimConnection *gc);
141 void silcgaim_roomlist_cancel(GaimRoomlist *list);
142 void silcgaim_chat_chauth_show(SilcGaim sg, SilcChannelEntry channel,
143 SilcBuffer channel_pubkeys);
144 void silcgaim_parse_attrs(SilcDList attrs, char **moodstr, char **statusstr,
145 char **contactstr, char **langstr, char **devicestr,
146 char **tzstr, char **geostr);
147 #ifdef SILC_ATTRIBUTE_USER_ICON
148 void silcgaim_buddy_set_icon(GaimConnection *gc, const char *iconfile);
149 #endif
150 #ifdef HAVE_SILCMIME_H
151 char *silcgaim_file2mime(const char *filename);
152 SilcDList silcgaim_image_message(const char *msg, SilcUInt32 *mflags);
153 #endif
154
155 #ifdef _WIN32
156 typedef int uid_t;
157
158 struct passwd {
159 char *pw_name; /* user name */
160 char *pw_passwd; /* user password */
161 int pw_uid; /* user id */
162 int pw_gid; /* group id */
163 char *pw_gecos; /* real name */
164 char *pw_dir; /* home directory */
165 char *pw_shell; /* shell program */
166 };
167
168 struct passwd *getpwuid(int uid);
169 int getuid(void);
170 int geteuid(void);
171 #endif
172
173 #endif /* SILCGAIM_H */

mercurial