From: Tim R. <ma...@us...> - 2004-05-23 19:41:08
|
Update of /cvsroot/gaim/gaim/src/protocols/silc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31684 Modified Files: buddy.c chat.c silc.c silcgaim.h Log Message: Hmm. there's still a compile warning, but at least it compiles now. Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/silc/buddy.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -p -r1.4 -r1.5 --- buddy.c 23 May 2004 17:27:44 -0000 1.4 +++ buddy.c 23 May 2004 19:40:55 -0000 1.5 @@ -417,33 +417,27 @@ silcgaim_buddy_privkey_resolved(SilcClie } static void -silcgaim_buddy_privkey(GaimBlistNode *node, gpointer data) +silcgaim_buddy_privkey(GaimConnection *gc, const char *name) { - GaimBuddy *b; - GaimConnection *gc; - SilcGaim sg; + SilcGaim sg = gc->proto_data; char *nickname; SilcGaimPrivkey p; SilcClientEntry *clients; SilcUInt32 clients_count; - g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); - - b = (GaimBuddy *) node; - gc = gaim_account_get_connection(b->account); - sg = gc->proto_data; - - if (!silc_parse_userfqdn(b->name, &nickname, NULL)) + if (!name) + return; + if (!silc_parse_userfqdn(name, &nickname, NULL)) return; /* Find client entry */ clients = silc_client_get_clients_local(sg->client, sg->conn, - nickname, b->name, + nickname, name, &clients_count); if (!clients) { silc_client_get_clients(sg->client, sg->conn, nickname, NULL, silcgaim_buddy_privkey_resolved, - g_strdup(b->name)); + g_strdup(name)); silc_free(nickname); return; } @@ -464,6 +458,20 @@ silcgaim_buddy_privkey(GaimBlistNode *no silc_free(nickname); } +static void +silcgaim_buddy_privkey_menu(GaimBlistNode *node, gpointer data) +{ + GaimBuddy *buddy; + GaimConnection *gc; + + g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); + + buddy = (GaimBuddy *) node; + gc = gaim_account_get_connection(buddy->account); + + silcgaim_buddy_privkey(gc, buddy->name); +} + /**************************** Get Public Key *********************************/ @@ -534,36 +542,29 @@ silcgaim_buddy_getkey_resolved(SilcClien } static void -silcgaim_buddy_getkey(GaimBlistNode *node, gpointer data) +silcgaim_buddy_getkey(GaimConnection *gc, const char *name) { - GaimBuddy *b; - GaimConnection *gc; - SilcGaim sg; - SilcClient client; - SilcClientConnection; + SilcGaim sg = gc->proto_data; + SilcClient client = sg->client; + SilcClientConnection conn = sg->conn; SilcClientEntry *clients; SilcUInt32 clients_count; SilcGaimBuddyGetkey g; char *nickname; - g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); - - b = (GaimBuddy *) node; - gc = gaim_account_get_connection(b->account); - sg = gc->proto_data; - client = sg->client; - conn = sg->conn; + if (!name) + return; - if (!silc_parse_userfqdn(b->name, &nickname, NULL)) + if (!silc_parse_userfqdn(name, &nickname, NULL)) return; /* Find client entry */ - clients = silc_client_get_clients_local(client, conn, nickname, - b->name, &clients_count); + clients = silc_client_get_clients_local(client, conn, nickname, name, + &clients_count); if (!clients) { silc_client_get_clients(client, conn, nickname, NULL, silcgaim_buddy_getkey_resolved, - g_strdup(b->name)); + g_strdup(name)); silc_free(nickname); return; } @@ -585,6 +586,21 @@ silcgaim_buddy_getkey(GaimBlistNode *nod } static void +silcgaim_buddy_getkey_menu(GaimBlistNode *node, gpointer data) +{ + GaimBuddy *buddy; + GaimConnection *gc; + + g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); + + buddy = (GaimBuddy *) node; + gc = gaim_account_get_connection(buddy->account); + + silcgaim_buddy_privkey(gc, buddy->name); + +} + +static void silcgaim_buddy_showkey(GaimBlistNode *node, gpointer data) { GaimBuddy *b; @@ -599,7 +615,7 @@ silcgaim_buddy_showkey(GaimBlistNode *no gc = gaim_account_get_connection(b->account); sg = gc->proto_data; - pkfile = gaim_blist_node_get_string(buddy, "public-key"); + pkfile = gaim_blist_node_get_string(node, "public-key"); if (!silc_pkcs_load_public_key(pkfile, &public_key, SILC_PKCS_FILE_PEM) && !silc_pkcs_load_public_key(pkfile, &public_key, SILC_PKCS_FILE_BIN)) { gaim_notify_error(gc, @@ -1558,7 +1574,7 @@ char *silcgaim_tooltip_text(GaimBuddy *b } static void -silcgaim_buddy_kill(GaimBlistNode *buddy, gpointer data) +silcgaim_buddy_kill(GaimBlistNode *node, gpointer data) { GaimBuddy *b; GaimConnection *gc; @@ -1576,7 +1592,7 @@ silcgaim_buddy_kill(GaimBlistNode *buddy } static void -silcgaim_buddy_send_file(GaimBlistNode *buddy, gpointer data) +silcgaim_buddy_send_file(GaimBlistNode *node, gpointer data) { GaimBuddy *b; GaimConnection *gc; @@ -1600,44 +1616,44 @@ GList *silcgaim_buddy_menu(GaimBuddy *bu GaimBlistNodeAction *act; GList *m = NULL; - pkfile = gaim_blist_node_get_string(node, "public-key"); + pkfile = gaim_blist_node_get_string((GaimBlistNode *) buddy, "public-key"); client_entry = silc_client_get_client_by_id(sg->client, sg->conn, - b->proto_data); + buddy->proto_data); if (client_entry && client_entry->send_key) { act = gaim_blist_node_action_new(_("Reset IM Key"), - silcgaim_buddy_resetkey); + silcgaim_buddy_resetkey, NULL); m = g_list_append(m, act); } else { act = gaim_blist_node_action_new(_("IM with Key Exchange"), - silcgaim_buddy_keyagr); + silcgaim_buddy_keyagr, NULL); m = g_list_append(m, act); act = gaim_blist_node_action_new(_("IM with Password"), - silcgaim_buddy_privkey); + silcgaim_buddy_privkey_menu, NULL); m = g_list_append(m, act); } if (pkfile) { act = gaim_blist_node_action_new(_("Show Public Key"), - silcgaim_buddy_showkey); + silcgaim_buddy_showkey, NULL); m = g_list_append(m, act); } else { act = gaim_blist_node_action_new(_("Get Public Key..."), - silcgaim_buddy_getkey); + silcgaim_buddy_getkey_menu, NULL); m = g_list_append(m, act); } act = gaim_blist_node_action_new(_("Send File..."), - silcgaim_buddy_send_file); + silcgaim_buddy_send_file, NULL); m = g_list_append(m, act); if (conn && conn->local_entry->mode & SILC_UMODE_ROUTER_OPERATOR) { act = gaim_blist_node_action_new(_("Kill User"), - silcgaim_buddy_kill); + silcgaim_buddy_kill, NULL); m = g_list_append(m, act); } Index: chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/silc/chat.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -p -r1.4 -r1.5 --- chat.c 23 May 2004 17:27:44 -0000 1.4 +++ chat.c 23 May 2004 19:40:55 -0000 1.5 @@ -43,7 +43,7 @@ GList *silcgaim_chat_info(GaimConnection } static void -silcgaim_chat_getinfo(GaimBlistNode *node, gpointer data); +silcgaim_chat_getinfo(GaimConnection *gc, GHashTable *components); static void silcgaim_chat_getinfo_res(SilcClient client, @@ -72,13 +72,11 @@ silcgaim_chat_getinfo_res(SilcClient cli silcgaim_chat_getinfo(gc, components); } + static void -silcgaim_chat_getinfo(GaimBlistNode *node, gpointer data) +silcgaim_chat_getinfo(GaimConnection *gc, GHashTable *components) { - GaimChat *chat; - GaimConnection *gc; - SilcGaim sg; - + SilcGaim sg = gc->proto_data; const char *chname; char *buf, tmp[256]; GString *s; @@ -86,13 +84,10 @@ silcgaim_chat_getinfo(GaimBlistNode *nod SilcHashTableList htl; SilcChannelUser chu; - g_return_if_fail(GAIM_BLIST_NODE_IS_CHAT(node)); - - chat = (GaimChat *) node; - gc = gaim_account_get_connection(chat->account); - sg = gc->proto_data; + if (!components) + return; - chname = g_hash_table_lookup(chat->components, "channel"); + chname = g_hash_table_lookup(components, "channel"); if (!chname) return; channel = silc_client_get_channel(sg->client, sg->conn, @@ -101,7 +96,7 @@ silcgaim_chat_getinfo(GaimBlistNode *nod silc_client_get_channel_resolve(sg->client, sg->conn, (char *)chname, silcgaim_chat_getinfo_res, - chat->components); + components); return; } @@ -163,6 +158,13 @@ silcgaim_chat_getinfo(GaimBlistNode *nod } +static void +silcgaim_chat_getinfo_menu(GaimBlistNode *node, gpointer data) +{ + +} + + #if 0 /* XXX For now these are not implemented. We need better listview dialog from Gaim for these. */ /************************** Channel Invite List ******************************/ @@ -818,7 +820,7 @@ silcgaim_chat_setsecret(GaimBlistNode *n GList *silcgaim_chat_menu(GaimChat *chat) { - GHashTable components = chat->components; + GHashTable *components = chat->components; GaimConnection *gc = gaim_account_get_connection(chat->account); SilcGaim sg = gc->proto_data; SilcClientConnection conn = sg->conn; @@ -827,7 +829,7 @@ GList *silcgaim_chat_menu(GaimChat *chat SilcChannelUser chu = NULL; SilcUInt32 mode = 0; - GList *m; + GList *m = NULL; GaimBlistNodeAction *act; if (components) @@ -845,7 +847,7 @@ GList *silcgaim_chat_menu(GaimChat *chat return NULL; act = gaim_blist_node_action_new(_("Get Info"), - silcgaim_chat_getinfo, NULL); + silcgaim_chat_getinfo_menu, NULL); m = g_list_append(m, act); #if 0 /* XXX For now these are not implemented. We need better Index: silc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/silc/silc.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -p -r1.8 -r1.9 --- silc.c 23 May 2004 17:27:44 -0000 1.8 +++ silc.c 23 May 2004 19:40:55 -0000 1.9 @@ -885,11 +885,11 @@ GList *silcgaim_blist_node_menu(GaimBlis original: one for buddies and one for chats */ if(GAIM_BLIST_NODE_IS_CHAT(node)) { - return silcgaim_chat_menu((GaimChar *) node); + return silcgaim_chat_menu((GaimChat *) node); } else if(GAIM_BLIST_NODE_IS_BUDDY(node)) { return silcgaim_buddy_menu((GaimBuddy *) node); } else { - return_val_if_reached(NULL); + g_return_val_if_reached(NULL); } } Index: silcgaim.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/silc/silcgaim.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -p -r1.1 -r1.2 --- silcgaim.h 1 May 2004 19:34:44 -0000 1.1 +++ silcgaim.h 23 May 2004 19:40:55 -0000 1.2 @@ -86,7 +86,7 @@ void silcgaim_verify_public_key(SilcClie unsigned char *pk, SilcUInt32 pk_len, SilcSKEPKType pk_type, SilcVerifyPublicKey completion, void *context); -GList *silcgaim_buddy_menu(GaimConnection *gc, const char *name); +GList *silcgaim_buddy_menu(GaimBuddy *buddy); 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, @@ -116,7 +116,7 @@ void silcgaim_get_chmode_string(SilcUInt 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); +GList *silcgaim_chat_menu(GaimChat *); void silcgaim_chat_join(GaimConnection *gc, GHashTable *data); void silcgaim_chat_invite(GaimConnection *gc, int id, const char *msg, const char *name); |