diff src/protocols/silc/silcgaim.h @ 8849:50d0f76639e7

[gaim-migrate @ 9616] Let there be SILC. committer: Tailor Script <tailor@pidgin.im>
author Ethan Blanton <elb@pidgin.im>
date Sat, 01 May 2004 19:34:44 +0000
parents
children 095731b5e4f6
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/protocols/silc/silcgaim.h	Sat May 01 19:34:44 2004 +0000
@@ -0,0 +1,131 @@
+/*
+
+  silcgaim.h
+
+  Author: Pekka Riikonen <priikone@silcnet.org>
+
+  Copyright (C) 2004 Pekka Riikonen
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; version 2 of the License.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+*/
+
+#ifndef SILCGAIM_H
+#define SILCGAIM_H
+
+/* Gaim includes */
+#include "internal.h"
+#include "account.h"
+#include "accountopt.h"
+#include "debug.h"
+#include "multi.h"
+#include "notify.h"
+#include "prpl.h"
+#include "request.h"
+#include "server.h"
+#include "util.h"
+#include "roomlist.h"
+#include "ft.h"
+
+/* Default public and private key file names */
+#define SILCGAIM_PUBLIC_KEY_NAME "public_key.pub"
+#define SILCGAIM_PRIVATE_KEY_NAME "private_key.prv"
+
+/* Default settings for creating key pair */
+#define SILCGAIM_DEF_PKCS "rsa"
+#define SILCGAIM_DEF_PKCS_LEN 2048
+
+#define SILCGAIM_PRVGRP 0x001fffff
+
+typedef struct {
+	unsigned long id;
+	const char *channel;
+	unsigned long chid;
+	const char *parentch;
+	SilcChannelPrivateKey key;
+} *SilcGaimPrvgrp;
+
+/* The SILC Gaim plugin context */
+typedef struct SilcGaimStruct {
+	SilcClient client;
+	SilcClientConnection conn;
+
+	guint scheduler;
+	GaimConnection *gc;
+	GaimAccount *account;
+	unsigned long channel_ids;
+	GList *grps;
+
+	char *motd;
+	GaimRoomlist *roomlist;
+
+	unsigned int detaching            : 1;
+	unsigned int resuming             : 1;
+	unsigned int roomlist_canceled    : 1;
+	unsigned int chpk                 : 1;
+} *SilcGaim;
+
+
+gboolean silcgaim_check_silc_dir(GaimConnection *gc);
+void silcgaim_chat_join_done(SilcClient client,
+			     SilcClientConnection conn,
+			     SilcClientEntry *clients,
+			     SilcUInt32 clients_count,
+			     void *context);
+const char *silcgaim_silcdir(void);
+const char *silcgaim_session_file(const char *account);
+void silcgaim_verify_public_key(SilcClient client, SilcClientConnection conn,
+				const char *name, SilcSocketType conn_type,
+				unsigned char *pk, SilcUInt32 pk_len,
+				SilcSKEPKType pk_type,
+				SilcVerifyPublicKey completion, void *context);
+GList *silcgaim_buddy_menu(GaimConnection *gc, const char *name);
+void silcgaim_add_buddy(GaimConnection *gc, const char *name, GaimGroup *grp);
+void silcgaim_add_buddies(GaimConnection *gc, GList *buddies);
+void silcgaim_remove_buddy(GaimConnection *gc, const char *name,
+			   const char *group);
+void silcgaim_buddy_keyagr_request(SilcClient client,
+				   SilcClientConnection conn,
+				   SilcClientEntry client_entry,
+				   const char *hostname, SilcUInt16 port);
+void silcgaim_idle_set(GaimConnection *gc, int idle);
+char *silcgaim_tooltip_text(GaimBuddy *b);
+char *silcgaim_status_text(GaimBuddy *b);
+gboolean silcgaim_ip_is_private(const char *ip);
+void silcgaim_ftp_send_file(GaimConnection *gc, const char *name);
+void silcgaim_ftp_request(SilcClient client, SilcClientConnection conn,
+			  SilcClientEntry client_entry, SilcUInt32 session_id,
+			  const char *hostname, SilcUInt16 port);
+void silcgaim_show_public_key(SilcGaim sg,
+			      const char *name, SilcPublicKey public_key,
+			      GCallback callback, void *context);
+void silcgaim_get_info(GaimConnection *gc, const char *who);
+SilcAttributePayload
+silcgaim_get_attr(SilcDList attrs, SilcAttribute attribute);
+void silcgaim_get_umode_string(SilcUInt32 mode, char *buf,
+			       SilcUInt32 buf_size);
+void silcgaim_get_chmode_string(SilcUInt32 mode, char *buf,
+				SilcUInt32 buf_size);
+void silcgaim_get_chumode_string(SilcUInt32 mode, char *buf,
+				 SilcUInt32 buf_size);
+GList *silcgaim_chat_info(GaimConnection *gc);
+GList *silcgaim_chat_menu(GaimConnection *gc, GHashTable *components);
+void silcgaim_chat_join(GaimConnection *gc, GHashTable *data);
+void silcgaim_chat_invite(GaimConnection *gc, int id, const char *msg,
+			  const char *name);
+void silcgaim_chat_leave(GaimConnection *gc, int id);
+int silcgaim_chat_send(GaimConnection *gc, int id, const char *msg);
+void silcgaim_chat_set_topic(GaimConnection *gc, int id, const char *topic);
+GaimRoomlist *silcgaim_roomlist_get_list(GaimConnection *gc);
+void silcgaim_roomlist_cancel(GaimRoomlist *list);
+void silcgaim_chat_chauth_show(SilcGaim sg, SilcChannelEntry channel,
+			       SilcBuffer channel_pubkeys);
+
+#endif /* SILCGAIM_H */