summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@ximian.com>2003-12-18 19:17:57 +0000
committerRodrigo Moya <rodrigo@src.gnome.org>2003-12-18 19:17:57 +0000
commit0318e520a9b63286c8723bcdef05890583a6d1ad (patch)
tree71d1cd57f663403d25065af325151ce36b48a782
parentea67f5a08f13a3143ec44eb8de00493422be87f1 (diff)
downloadevolution-data-server-0318e520a9b63286c8723bcdef05890583a6d1ad.tar.gz
get the BonoboObject's we create here out of the function. (main):
2003-12-18 Rodrigo Moya <rodrigo@ximian.com> * src/server.c (setup_logging, setup_interface_check): get the BonoboObject's we create here out of the function. (main): re-organize extra interfaces initialization code, and make sure we unref all objects we have created.
-rw-r--r--ChangeLog7
-rw-r--r--src/server.c36
2 files changed, 29 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 60622686a..f0267bd59 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-12-18 Rodrigo Moya <rodrigo@ximian.com>
+
+ * src/server.c (setup_logging, setup_interface_check): get the
+ BonoboObject's we create here out of the function.
+ (main): re-organize extra interfaces initialization code, and
+ make sure we unref all objects we have created.
+
2003-12-17 Hans Petter Jansson <hpj@ximian.com>
* libedataserver/e-source.c (build_absolute_uri): Implement based on
diff --git a/src/server.c b/src/server.c
index d5c005e4c..ba408fee0 100644
--- a/src/server.c
+++ b/src/server.c
@@ -70,6 +70,11 @@ static EDataCalFactory *e_data_cal_factory;
static EDataBookFactory *e_data_book_factory;
+/* The other interfaces we implement */
+
+static ServerLogging *logging_iface;
+static ServerInterfaceCheck *interface_check_iface;
+
/* Timeout interval in milliseconds for termination */
#define EXIT_TIMEOUT 5000
@@ -197,9 +202,10 @@ setup_cals (void)
static gboolean
setup_logging (void)
{
- ServerLogging *logging_iface = server_logging_new ();
int result;
+ logging_iface = server_logging_new ();
+
server_logging_register_domain (logging_iface, NULL);
server_logging_register_domain (logging_iface, "Gdk");
server_logging_register_domain (logging_iface, "Gtk");
@@ -225,9 +231,9 @@ setup_logging (void)
static gboolean
setup_interface_check (void)
{
- ServerInterfaceCheck *interface_check_iface = server_interface_check_new ();
int result;
+ interface_check_iface = server_interface_check_new ();
result = bonobo_activation_active_server_register (E_DATA_SERVER_INTERFACE_CHECK_OAF_ID,
BONOBO_OBJREF (interface_check_iface));
@@ -294,19 +300,15 @@ main (int argc, char **argv)
exit (EXIT_FAILURE);
}
- if (! setup_logging ()) {
- g_error (G_STRLOC "Cannot register DataServer::Logging object");
- exit (EXIT_FAILURE);
- }
+ if ( setup_logging ()) {
+ if ( setup_interface_check ()) {
+ g_message ("Server up and running");
- if (! setup_interface_check ()) {
- g_error (G_STRLOC "Cannot register DataServer::InterfaceCheck object");
- exit (EXIT_FAILURE);
- }
-
- g_message ("Server up and running");
-
- bonobo_main ();
+ bonobo_main ();
+ } else
+ g_error (G_STRLOC "Cannot register DataServer::InterfaceCheck object");
+ } else
+ g_error (G_STRLOC "Cannot register DataServer::Logging object");
bonobo_object_unref (BONOBO_OBJECT (e_data_cal_factory));
e_data_cal_factory = NULL;
@@ -314,6 +316,12 @@ main (int argc, char **argv)
bonobo_object_unref (BONOBO_OBJECT (e_data_book_factory));
e_data_book_factory = NULL;
+ bonobo_object_unref (BONOBO_OBJECT (logging_iface));
+ logging_iface = NULL;
+
+ bonobo_object_unref (BONOBO_OBJECT (interface_check_iface));
+ interface_check_iface = NULL;
+
gnome_vfs_shutdown ();
return 0;