Tue, 16 Oct 2012 11:43:13 +0200
Handle redirects
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
1 | /** |
| 15884 | 2 | * @file core.c Purple Core API |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
3 | * @ingroup core |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | /* purple |
| 2416 | 7 | * |
| 15884 | 8 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 | * source distribution. | |
| 2416 | 11 | * |
| 12 | * This program is free software; you can redistribute it and/or modify | |
| 13 | * it under the terms of the GNU General Public License as published by | |
| 14 | * the Free Software Foundation; either version 2 of the License, or | |
| 15 | * (at your option) any later version. | |
| 16 | * | |
| 17 | * This program is distributed in the hope that it will be useful, | |
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | * GNU General Public License for more details. | |
| 21 | * | |
| 22 | * You should have received a copy of the GNU General Public License | |
| 23 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19675
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 2416 | 25 | */ |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
26 | #include "internal.h" |
|
10684
0325b164a7eb
[gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents:
10504
diff
changeset
|
27 | #include "cipher.h" |
|
18477
47243c0d52c6
- Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents:
18303
diff
changeset
|
28 | #include "certificate.h" |
|
23555
82dab41b4163
cmd-added and cmd-removed signals to emit when commands are registered/unregistered.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23345
diff
changeset
|
29 | #include "cmds.h" |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
30 | #include "connection.h" |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
31 | #include "conversation.h" |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
32 | #include "core.h" |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
33 | #include "debug.h" |
|
14300
68a0aa63f3b8
[gaim-migrate @ 16920]
Mark Doliner <markdoliner@pidgin.im>
parents:
14286
diff
changeset
|
34 | #include "dnsquery.h" |
|
11281
a5cda37a16be
[gaim-migrate @ 13478]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11256
diff
changeset
|
35 | #include "ft.h" |
|
33439
178eb69a3f11
Handle redirects
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
31590
diff
changeset
|
36 | #include "http.h" |
|
12272
4eee92ead973
[gaim-migrate @ 14574]
Mark Doliner <markdoliner@pidgin.im>
parents:
12129
diff
changeset
|
37 | #include "idle.h" |
|
16437
7ff7c3405ea2
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents:
16409
diff
changeset
|
38 | #include "imgstore.h" |
| 8231 | 39 | #include "network.h" |
| 12129 | 40 | #include "notify.h" |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
41 | #include "plugin.h" |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
42 | #include "pounce.h" |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
43 | #include "prefs.h" |
|
6371
e92b66ee5518
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
6266
diff
changeset
|
44 | #include "privacy.h" |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
45 | #include "proxy.h" |
|
10418
7b632343a29c
[gaim-migrate @ 11669]
Mark Doliner <markdoliner@pidgin.im>
parents:
10322
diff
changeset
|
46 | #include "savedstatuses.h" |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
47 | #include "signals.h" |
|
22443
7b8772af6bb7
Apply the custom smiley patches from #1187, from Jorge VillaseƱo (Masca) and
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21503
diff
changeset
|
48 | #include "smiley.h" |
|
14300
68a0aa63f3b8
[gaim-migrate @ 16920]
Mark Doliner <markdoliner@pidgin.im>
parents:
14286
diff
changeset
|
49 | #include "sound.h" |
|
24378
cb0bf512e61d
renamed sound-loader.[ch] to sound-theme-loader.[ch]
Gary Kramlich <grim@reaperworld.com>
parents:
23962
diff
changeset
|
50 | #include "sound-theme-loader.h" |
|
6701
7e2db9273748
[gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents:
6612
diff
changeset
|
51 | #include "sslconn.h" |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9649
diff
changeset
|
52 | #include "status.h" |
|
11424
b0f8535daa74
[gaim-migrate @ 13661]
Thomas Butter <tbutter@users.sourceforge.net>
parents:
11281
diff
changeset
|
53 | #include "stun.h" |
|
25884
c00e14c20165
* Alphabetize files in a few Makefile.am files
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
54 | #include "theme-manager.h" |
|
16409
8c153c6febdd
The core portion of the migration code. This is implemented as I described
Richard Laager <rlaager@pidgin.im>
parents:
16124
diff
changeset
|
55 | #include "util.h" |
| 2416 | 56 | |
|
11171
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
57 | #ifdef HAVE_DBUS |
|
22582
838faa931042
Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
21503
diff
changeset
|
58 | # ifndef DBUS_API_SUBJECT_TO_CHANGE |
|
838faa931042
Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
21503
diff
changeset
|
59 | # define DBUS_API_SUBJECT_TO_CHANGE |
|
838faa931042
Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
21503
diff
changeset
|
60 | # endif |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
61 | # include <dbus/dbus.h> |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
62 | # include "dbus-purple.h" |
|
11171
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
63 | # include "dbus-server.h" |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
64 | # include "dbus-bindings.h" |
|
11171
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
65 | #endif |
|
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
66 | |
| 15884 | 67 | struct PurpleCore |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
68 | { |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
69 | char *ui; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
70 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
71 | void *reserved; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
72 | }; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
73 | |
| 15884 | 74 | static PurpleCoreUiOps *_ops = NULL; |
| 75 | static PurpleCore *_core = NULL; | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
76 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
77 | STATIC_PROTO_INIT |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
78 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
79 | gboolean |
| 15884 | 80 | purple_core_init(const char *ui) |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
81 | { |
| 15884 | 82 | PurpleCoreUiOps *ops; |
| 83 | PurpleCore *core; | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
84 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
85 | g_return_val_if_fail(ui != NULL, FALSE); |
| 15884 | 86 | g_return_val_if_fail(purple_get_core() == NULL, FALSE); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
87 | |
|
16124
8e5e3e9ada60
Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
88 | #ifdef ENABLE_NLS |
|
8e5e3e9ada60
Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
89 | bindtextdomain(PACKAGE, LOCALEDIR); |
|
8e5e3e9ada60
Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
90 | #endif |
|
14286
9ff15ceacd34
[gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
91 | #ifdef _WIN32 |
| 15884 | 92 | wpurple_init(); |
|
14286
9ff15ceacd34
[gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
93 | #endif |
|
9ff15ceacd34
[gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
94 | |
|
23138
ca068248eb99
Initialize the glib type system early in purple_core_init() too so UIs
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22873
diff
changeset
|
95 | g_type_init(); |
|
ca068248eb99
Initialize the glib type system early in purple_core_init() too so UIs
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22873
diff
changeset
|
96 | |
| 15884 | 97 | _core = core = g_new0(PurpleCore, 1); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
98 | core->ui = g_strdup(ui); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
99 | core->reserved = NULL; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
100 | |
| 15884 | 101 | ops = purple_core_get_ui_ops(); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
102 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
103 | /* The signals subsystem is important and should be first. */ |
| 15884 | 104 | purple_signals_init(); |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
105 | |
|
21238
cd326828c870
Add and call a purple_util_uninit() to free user_dir and customer_home_dir
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
106 | purple_util_init(); |
|
cd326828c870
Add and call a purple_util_uninit() to free user_dir and customer_home_dir
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
107 | |
| 15884 | 108 | purple_signal_register(core, "uri-handler", |
| 109 | purple_marshal_BOOLEAN__POINTER_POINTER_POINTER, | |
| 110 | purple_value_new(PURPLE_TYPE_BOOLEAN), 3, | |
| 111 | purple_value_new(PURPLE_TYPE_STRING), /* Protocol */ | |
| 112 | purple_value_new(PURPLE_TYPE_STRING), /* Command */ | |
| 113 | purple_value_new(PURPLE_TYPE_BOXED, "GHashTable *")); /* Parameters */ | |
|
15678
7434ef155a3a
Core support for external protocol URIs. The actual handling of the URIs will be in the prpls and other plugins. This commit only includes the win32 method of actually passing in a URI - the dbus implementation still needs to be written.
Daniel Atallah <datallah@pidgin.im>
parents:
15435
diff
changeset
|
114 | |
| 15884 | 115 | purple_signal_register(core, "quitting", purple_marshal_VOID, NULL, 0); |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
116 | |
|
10087
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9944
diff
changeset
|
117 | /* The prefs subsystem needs to be initialized before static protocols |
|
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9944
diff
changeset
|
118 | * for protocol prefs to work. */ |
| 15884 | 119 | purple_prefs_init(); |
|
10087
e5b80a38939d
[gaim-migrate @ 11098]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
9944
diff
changeset
|
120 | |
| 15884 | 121 | purple_debug_init(); |
|
10448
4415ffba12e9
[gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
122 | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9649
diff
changeset
|
123 | if (ops != NULL) |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9649
diff
changeset
|
124 | { |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
125 | if (ops->ui_prefs_init != NULL) |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
126 | ops->ui_prefs_init(); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
127 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
128 | if (ops->debug_ui_init != NULL) |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
129 | ops->debug_ui_init(); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
130 | } |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
131 | |
|
11171
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
132 | #ifdef HAVE_DBUS |
| 15884 | 133 | purple_dbus_init(); |
|
11171
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
134 | #endif |
|
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11033
diff
changeset
|
135 | |
|
16660
05ee74f25b2a
Part of the patch in ticket #383:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16608
diff
changeset
|
136 | purple_ciphers_init(); |
|
23847
a4260c372f4c
Initialize the commands subsystem before the plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23555
diff
changeset
|
137 | purple_cmds_init(); |
|
16660
05ee74f25b2a
Part of the patch in ticket #383:
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16608
diff
changeset
|
138 | |
| 11033 | 139 | /* Since plugins get probed so early we should probably initialize their |
| 140 | * subsystem right away too. | |
| 141 | */ | |
| 15884 | 142 | purple_plugins_init(); |
|
25339
1ccd84242080
disapproval of revision '72679a30e1cb464d1dc7c74b14b848c3a51538ca'
Daniel Atallah <datallah@pidgin.im>
parents:
25338
diff
changeset
|
143 | |
|
23345
aae374ed980c
If plugins are enabled and some protocols or plugins are also being compiled
Evan Schoenberg <evands@pidgin.im>
parents:
23339
diff
changeset
|
144 | /* Initialize all static protocols. */ |
|
aae374ed980c
If plugins are enabled and some protocols or plugins are also being compiled
Evan Schoenberg <evands@pidgin.im>
parents:
23339
diff
changeset
|
145 | static_proto_init(); |
|
aae374ed980c
If plugins are enabled and some protocols or plugins are also being compiled
Evan Schoenberg <evands@pidgin.im>
parents:
23339
diff
changeset
|
146 | |
| 15884 | 147 | purple_plugins_probe(G_MODULE_SUFFIX); |
| 11033 | 148 | |
|
23655
704a67a69ce0
Changed the theme_manager_init function to do less, makes it cleaner and faster (won't have to build
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23647
diff
changeset
|
149 | purple_theme_manager_init(); |
|
25884
c00e14c20165
* Alphabetize files in a few Makefile.am files
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
150 | |
|
16437
7ff7c3405ea2
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents:
16409
diff
changeset
|
151 | /* The buddy icon code uses the imgstore, so init it early. */ |
|
7ff7c3405ea2
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents:
16409
diff
changeset
|
152 | purple_imgstore_init(); |
|
7ff7c3405ea2
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents:
16409
diff
changeset
|
153 | |
|
21292
076fbf488504
Connect to connection-error in account.c so that the account error is actually
Will Thompson <resiak@pidgin.im>
parents:
21238
diff
changeset
|
154 | /* Accounts use status, buddy icons and connection signals, so |
|
076fbf488504
Connect to connection-error in account.c so that the account error is actually
Will Thompson <resiak@pidgin.im>
parents:
21238
diff
changeset
|
155 | * initialize these before accounts |
|
076fbf488504
Connect to connection-error in account.c so that the account error is actually
Will Thompson <resiak@pidgin.im>
parents:
21238
diff
changeset
|
156 | */ |
| 15884 | 157 | purple_status_init(); |
| 158 | purple_buddy_icons_init(); | |
|
21292
076fbf488504
Connect to connection-error in account.c so that the account error is actually
Will Thompson <resiak@pidgin.im>
parents:
21238
diff
changeset
|
159 | purple_connections_init(); |
|
13481
6a4badb9f8e4
[gaim-migrate @ 15856]
Evan Schoenberg <evands@pidgin.im>
parents:
13294
diff
changeset
|
160 | |
| 15884 | 161 | purple_accounts_init(); |
| 162 | purple_savedstatuses_init(); | |
| 163 | purple_notify_init(); | |
|
18477
47243c0d52c6
- Certificate system now has init and uninit like other systems
William Ehlhardt <williamehlhardt@gmail.com>
parents:
18303
diff
changeset
|
164 | purple_certificate_init(); |
| 15884 | 165 | purple_conversations_init(); |
| 166 | purple_blist_init(); | |
| 167 | purple_log_init(); | |
| 168 | purple_network_init(); | |
| 169 | purple_privacy_init(); | |
| 170 | purple_pounces_init(); | |
| 171 | purple_proxy_init(); | |
| 172 | purple_dnsquery_init(); | |
| 173 | purple_sound_init(); | |
| 174 | purple_ssl_init(); | |
| 175 | purple_stun_init(); | |
| 176 | purple_xfers_init(); | |
| 177 | purple_idle_init(); | |
|
33439
178eb69a3f11
Handle redirects
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
31590
diff
changeset
|
178 | purple_http_init(); |
|
22443
7b8772af6bb7
Apply the custom smiley patches from #1187, from Jorge VillaseƱo (Masca) and
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21503
diff
changeset
|
179 | purple_smileys_init(); |
|
15116
037b787407ba
[gaim-migrate @ 17838]
Mark Doliner <markdoliner@pidgin.im>
parents:
14300
diff
changeset
|
180 | /* |
|
037b787407ba
[gaim-migrate @ 17838]
Mark Doliner <markdoliner@pidgin.im>
parents:
14300
diff
changeset
|
181 | * Call this early on to try to auto-detect our IP address and |
|
037b787407ba
[gaim-migrate @ 17838]
Mark Doliner <markdoliner@pidgin.im>
parents:
14300
diff
changeset
|
182 | * hopefully save some time later. |
|
037b787407ba
[gaim-migrate @ 17838]
Mark Doliner <markdoliner@pidgin.im>
parents:
14300
diff
changeset
|
183 | */ |
|
19675
3c1669c529a1
Move purple_prefs_load() to purple_prefs_init() - there's been a TODO for this for a long time. I have no idea why this wasn't done sooner; it seems to work just fine and fixes some bugs where stuff isn't loaded before being used. Fixes #1848 (and I'm sure others). Yell at me if this breaks anything.
Daniel Atallah <datallah@pidgin.im>
parents:
19341
diff
changeset
|
184 | purple_network_get_my_ip(-1); |
|
13181
2a22fe4717ed
[gaim-migrate @ 15543]
Daniel Atallah <datallah@pidgin.im>
parents:
13130
diff
changeset
|
185 | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
186 | if (ops != NULL && ops->ui_init != NULL) |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
187 | ops->ui_init(); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
188 | |
|
25862
57228df2541f
Fix the issue with the themes not showing up in the list.
Paul Aurich <darkrain42@pidgin.im>
parents:
25859
diff
changeset
|
189 | /* The UI may have registered some theme types, so refresh them */ |
|
57228df2541f
Fix the issue with the themes not showing up in the list.
Paul Aurich <darkrain42@pidgin.im>
parents:
25859
diff
changeset
|
190 | purple_theme_manager_refresh(); |
|
57228df2541f
Fix the issue with the themes not showing up in the list.
Paul Aurich <darkrain42@pidgin.im>
parents:
25859
diff
changeset
|
191 | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
192 | return TRUE; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
193 | } |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
194 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
195 | void |
| 15884 | 196 | purple_core_quit(void) |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
197 | { |
| 15884 | 198 | PurpleCoreUiOps *ops; |
| 199 | PurpleCore *core = purple_get_core(); | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
200 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
201 | g_return_if_fail(core != NULL); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
202 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
203 | /* The self destruct sequence has been initiated */ |
| 15884 | 204 | purple_signal_emit(purple_get_core(), "quitting"); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
205 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
206 | /* Transmission ends */ |
| 15884 | 207 | purple_connections_disconnect_all(); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
208 | |
|
25467
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
209 | /* |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
210 | * Certificates must be destroyed before the SSL plugins, because |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
211 | * PurpleCertificates contain pointers to PurpleCertificateSchemes, |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
212 | * and the PurpleCertificateSchemes will be unregistered when the |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
213 | * SSL plugin is uninit. |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
214 | */ |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
215 | purple_certificate_uninit(); |
|
9631ed4f4527
Fix a crash on exit with a patch from im.pidgin.next.minor.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25449
diff
changeset
|
216 | |
|
25446
4d2288e37f38
Reorder (and document) purple_core_quit() so that the prefs_uninit() fixes can
Paul Aurich <darkrain42@pidgin.im>
parents:
25338
diff
changeset
|
217 | /* The SSL plugins must be uninit before they're unloaded */ |
|
4d2288e37f38
Reorder (and document) purple_core_quit() so that the prefs_uninit() fixes can
Paul Aurich <darkrain42@pidgin.im>
parents:
25338
diff
changeset
|
218 | purple_ssl_uninit(); |
|
4d2288e37f38
Reorder (and document) purple_core_quit() so that the prefs_uninit() fixes can
Paul Aurich <darkrain42@pidgin.im>
parents:
25338
diff
changeset
|
219 | |
|
26751
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
220 | /* Unload all non-loader, non-prpl plugins before shutting down |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
221 | * subsystems. */ |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
222 | purple_debug_info("main", "Unloading normal plugins\n"); |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
223 | purple_plugins_unload(PURPLE_PLUGIN_STANDARD); |
|
25446
4d2288e37f38
Reorder (and document) purple_core_quit() so that the prefs_uninit() fixes can
Paul Aurich <darkrain42@pidgin.im>
parents:
25338
diff
changeset
|
224 | |
| 8235 | 225 | /* Save .xml files, remove signals, etc. */ |
|
22443
7b8772af6bb7
Apply the custom smiley patches from #1187, from Jorge VillaseƱo (Masca) and
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21503
diff
changeset
|
226 | purple_smileys_uninit(); |
|
33439
178eb69a3f11
Handle redirects
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
31590
diff
changeset
|
227 | purple_http_uninit(); |
| 15884 | 228 | purple_idle_uninit(); |
| 229 | purple_pounces_uninit(); | |
| 230 | purple_blist_uninit(); | |
| 231 | purple_ciphers_uninit(); | |
| 232 | purple_notify_uninit(); | |
| 233 | purple_conversations_uninit(); | |
| 234 | purple_connections_uninit(); | |
| 235 | purple_buddy_icons_uninit(); | |
| 236 | purple_savedstatuses_uninit(); | |
| 237 | purple_status_uninit(); | |
|
26896
fd3f89b3af4e
don't uninit accounts until savedstatus and status are uninited, this was
Ka-Hing Cheung <khc@pidgin.im>
parents:
26751
diff
changeset
|
238 | purple_accounts_uninit(); |
|
23339
ccda14e05414
Revert f8871b9c186682ffab8d6b6aa32260788caf0653 to fix a TODO about calling
Richard Laager <rlaager@pidgin.im>
parents:
23302
diff
changeset
|
239 | purple_sound_uninit(); |
|
23645
6901039a86fb
Fixed purple sound loader class init function (bug on startup) and added shell sound theme selector
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23345
diff
changeset
|
240 | purple_theme_manager_uninit(); |
| 15884 | 241 | purple_xfers_uninit(); |
| 242 | purple_proxy_uninit(); | |
| 243 | purple_dnsquery_uninit(); | |
|
16437
7ff7c3405ea2
Rework the buddy icon subsystem to use the imgstore subsystem, and modify the
Richard Laager <rlaager@pidgin.im>
parents:
16409
diff
changeset
|
244 | purple_imgstore_uninit(); |
|
25326
c4f4b222dbac
Adjust the NLA code to prevent hang on exit for Windows XP and Windows Vista.
Paul Aurich <darkrain42@pidgin.im>
parents:
24389
diff
changeset
|
245 | purple_network_uninit(); |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
246 | |
|
26751
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
247 | /* Everything after unloading all plugins must not fail if prpls aren't |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
248 | * around */ |
|
25713
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
249 | purple_debug_info("main", "Unloading all plugins\n"); |
|
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
250 | purple_plugins_destroy_all(); |
|
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
251 | |
|
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
252 | ops = purple_core_get_ui_ops(); |
|
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
253 | if (ops != NULL && ops->quit != NULL) |
|
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
254 | ops->quit(); |
|
9dc831db9cce
Alternate, API-safe fix for #8774 (crash on exit)
Ethan Blanton <elb@pidgin.im>
parents:
25712
diff
changeset
|
255 | |
|
26751
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
256 | /* Everything after prefs_uninit must not try to read any prefs */ |
|
25446
4d2288e37f38
Reorder (and document) purple_core_quit() so that the prefs_uninit() fixes can
Paul Aurich <darkrain42@pidgin.im>
parents:
25338
diff
changeset
|
257 | purple_prefs_uninit(); |
| 15884 | 258 | purple_plugins_uninit(); |
|
14017
db3f1bdc95c6
[gaim-migrate @ 16503]
Mark Doliner <markdoliner@pidgin.im>
parents:
13481
diff
changeset
|
259 | #ifdef HAVE_DBUS |
| 15884 | 260 | purple_dbus_uninit(); |
|
14017
db3f1bdc95c6
[gaim-migrate @ 16503]
Mark Doliner <markdoliner@pidgin.im>
parents:
13481
diff
changeset
|
261 | #endif |
|
21238
cd326828c870
Add and call a purple_util_uninit() to free user_dir and customer_home_dir
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
262 | |
|
23847
a4260c372f4c
Initialize the commands subsystem before the plugins.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23555
diff
changeset
|
263 | purple_cmds_uninit(); |
|
26751
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26743
diff
changeset
|
264 | /* Everything after util_uninit cannot try to write things to the confdir */ |
|
21238
cd326828c870
Add and call a purple_util_uninit() to free user_dir and customer_home_dir
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
265 | purple_util_uninit(); |
|
26743
046e611c3a2f
Call purple_log_uninit() in purple_core_uninit().
Nick Hebner <hebnern@gmail.com>
parents:
25905
diff
changeset
|
266 | purple_log_uninit(); |
|
21238
cd326828c870
Add and call a purple_util_uninit() to free user_dir and customer_home_dir
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
267 | |
|
18303
5cc245e1fcf3
Uninit the dbus system before uniniting the signals.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18267
diff
changeset
|
268 | purple_signals_uninit(); |
|
14017
db3f1bdc95c6
[gaim-migrate @ 16503]
Mark Doliner <markdoliner@pidgin.im>
parents:
13481
diff
changeset
|
269 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
14017
diff
changeset
|
270 | g_free(core->ui); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
271 | g_free(core); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
272 | |
|
14286
9ff15ceacd34
[gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
273 | #ifdef _WIN32 |
| 15884 | 274 | wpurple_cleanup(); |
|
14286
9ff15ceacd34
[gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
275 | #endif |
|
9ff15ceacd34
[gaim-migrate @ 16905]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
276 | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
277 | _core = NULL; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
278 | } |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
279 | |
|
7646
6806a6893ac0
[gaim-migrate @ 8289]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
280 | gboolean |
| 15884 | 281 | purple_core_quit_cb(gpointer unused) |
|
7646
6806a6893ac0
[gaim-migrate @ 8289]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
282 | { |
| 15884 | 283 | purple_core_quit(); |
|
7646
6806a6893ac0
[gaim-migrate @ 8289]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
284 | |
|
6806a6893ac0
[gaim-migrate @ 8289]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
285 | return FALSE; |
|
6806a6893ac0
[gaim-migrate @ 8289]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
286 | } |
|
6806a6893ac0
[gaim-migrate @ 8289]
Mark Doliner <markdoliner@pidgin.im>
parents:
7431
diff
changeset
|
287 | |
|
6612
aac6af649208
[gaim-migrate @ 7136]
Christian Hammond <chipx86@chipx86.com>
parents:
6564
diff
changeset
|
288 | const char * |
| 15884 | 289 | purple_core_get_version(void) |
|
6612
aac6af649208
[gaim-migrate @ 7136]
Christian Hammond <chipx86@chipx86.com>
parents:
6564
diff
changeset
|
290 | { |
|
aac6af649208
[gaim-migrate @ 7136]
Christian Hammond <chipx86@chipx86.com>
parents:
6564
diff
changeset
|
291 | return VERSION; |
|
aac6af649208
[gaim-migrate @ 7136]
Christian Hammond <chipx86@chipx86.com>
parents:
6564
diff
changeset
|
292 | } |
|
aac6af649208
[gaim-migrate @ 7136]
Christian Hammond <chipx86@chipx86.com>
parents:
6564
diff
changeset
|
293 | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
294 | const char * |
| 15884 | 295 | purple_core_get_ui(void) |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
296 | { |
| 15884 | 297 | PurpleCore *core = purple_get_core(); |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
298 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
299 | g_return_val_if_fail(core != NULL, NULL); |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
300 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
301 | return core->ui; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
302 | } |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
303 | |
| 15884 | 304 | PurpleCore * |
| 305 | purple_get_core(void) | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
306 | { |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
307 | return _core; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
308 | } |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
309 | |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
310 | void |
| 15884 | 311 | purple_core_set_ui_ops(PurpleCoreUiOps *ops) |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
312 | { |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
313 | _ops = ops; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
314 | } |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
315 | |
| 15884 | 316 | PurpleCoreUiOps * |
| 317 | purple_core_get_ui_ops(void) | |
|
6179
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
318 | { |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
319 | return _ops; |
|
4df73df94250
[gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents:
6168
diff
changeset
|
320 | } |
|
16409
8c153c6febdd
The core portion of the migration code. This is implemented as I described
Richard Laager <rlaager@pidgin.im>
parents:
16124
diff
changeset
|
321 | |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
322 | #ifdef HAVE_DBUS |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
323 | static char *purple_dbus_owner_user_dir(void) |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
324 | { |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
325 | DBusMessage *msg = NULL, *reply = NULL; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
326 | DBusConnection *dbus_connection = NULL; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
327 | DBusError dbus_error; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
328 | char *remote_user_dir = NULL; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
329 | |
|
17122
5ba216aa4583
Style changes + removed unnecessary NULL checks.
Gabriel Schulhof <nix@go-nix.ca>
parents:
17121
diff
changeset
|
330 | if ((dbus_connection = purple_dbus_get_connection()) == NULL) |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
331 | return NULL; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
332 | |
|
17122
5ba216aa4583
Style changes + removed unnecessary NULL checks.
Gabriel Schulhof <nix@go-nix.ca>
parents:
17121
diff
changeset
|
333 | if ((msg = dbus_message_new_method_call(DBUS_SERVICE_PURPLE, DBUS_PATH_PURPLE, DBUS_INTERFACE_PURPLE, "PurpleUserDir")) == NULL) |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
334 | return NULL; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
335 | |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
336 | dbus_error_init(&dbus_error); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
337 | reply = dbus_connection_send_with_reply_and_block(dbus_connection, msg, 5000, &dbus_error); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
338 | dbus_message_unref(msg); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
339 | dbus_error_free(&dbus_error); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
340 | |
| 17882 | 341 | if (reply) |
| 342 | { | |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
343 | dbus_error_init(&dbus_error); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
344 | dbus_message_get_args(reply, &dbus_error, DBUS_TYPE_STRING, &remote_user_dir, DBUS_TYPE_INVALID); |
|
17123
b1ef108e361b
Minor formatting tweaks for the dbus_uniq code.
Richard Laager <rlaager@pidgin.im>
parents:
17122
diff
changeset
|
345 | remote_user_dir = g_strdup(remote_user_dir); |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
346 | dbus_error_free(&dbus_error); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
347 | dbus_message_unref(reply); |
|
17122
5ba216aa4583
Style changes + removed unnecessary NULL checks.
Gabriel Schulhof <nix@go-nix.ca>
parents:
17121
diff
changeset
|
348 | } |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
349 | |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
350 | return remote_user_dir; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
351 | } |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
352 | |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
353 | #endif /* HAVE_DBUS */ |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
354 | |
| 17882 | 355 | gboolean |
| 356 | purple_core_ensure_single_instance() | |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
357 | { |
| 17882 | 358 | gboolean is_single_instance = TRUE; |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
359 | #ifdef HAVE_DBUS |
|
17122
5ba216aa4583
Style changes + removed unnecessary NULL checks.
Gabriel Schulhof <nix@go-nix.ca>
parents:
17121
diff
changeset
|
360 | /* in the future, other mechanisms might have already set this to FALSE */ |
| 17882 | 361 | if (is_single_instance) |
| 362 | { | |
| 363 | if (!purple_dbus_is_owner()) | |
| 364 | { | |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
365 | const char *user_dir = purple_user_dir(); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
366 | char *dbus_owner_user_dir = purple_dbus_owner_user_dir(); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
367 | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25855
diff
changeset
|
368 | is_single_instance = !purple_strequal(dbus_owner_user_dir, user_dir); |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
369 | g_free(dbus_owner_user_dir); |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
370 | } |
|
17122
5ba216aa4583
Style changes + removed unnecessary NULL checks.
Gabriel Schulhof <nix@go-nix.ca>
parents:
17121
diff
changeset
|
371 | } |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
372 | #endif /* HAVE_DBUS */ |
|
17123
b1ef108e361b
Minor formatting tweaks for the dbus_uniq code.
Richard Laager <rlaager@pidgin.im>
parents:
17122
diff
changeset
|
373 | |
|
17121
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
374 | return is_single_instance; |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
375 | } |
|
43d41f5ce17b
Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents:
16763
diff
changeset
|
376 | |
|
18441
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
377 | GHashTable* purple_core_get_ui_info() { |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
378 | PurpleCoreUiOps *ops = purple_core_get_ui_ops(); |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
379 | |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
380 | if(NULL == ops || NULL == ops->get_ui_info) |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
381 | return NULL; |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
382 | |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
383 | return ops->get_ui_info(); |
|
d255d04c0aa1
core support for UI info...now to do the UI piece
Nathan Walp <nwalp@pidgin.im>
parents:
18303
diff
changeset
|
384 | } |