comparison libpurple/network.c @ 22875:4f6040bb6f7a

Update configure.ac to properly detect Network Manager (via NetworkManager.h instead of libnm_glib). Also, change the code so that if NetworkManager is dead, we'll assume we're connected to the network and try anyway.
author Richard Laager <rlaager@wiktel.com>
date Sat, 10 May 2008 03:32:58 +0000
parents 790c606ff8a9
children e6674df4cbf1
comparison
equal deleted inserted replaced
22874:790c606ff8a9 22875:4f6040bb6f7a
57 # define HX_SIZE_OF_IFREQ(a) _SIZEOF_ADDR_IFREQ(a) 57 # define HX_SIZE_OF_IFREQ(a) _SIZEOF_ADDR_IFREQ(a)
58 #else 58 #else
59 # define HX_SIZE_OF_IFREQ(a) sizeof(a) 59 # define HX_SIZE_OF_IFREQ(a) sizeof(a)
60 #endif 60 #endif
61 61
62 #ifdef HAVE_LIBNM 62 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
63 #include <dbus/dbus-glib.h> 63 #include <dbus/dbus-glib.h>
64 #include <NetworkManager.h> 64 #include <NetworkManager/NetworkManager.h>
65 65
66 static DBusGConnection *nm_conn = NULL; 66 static DBusGConnection *nm_conn = NULL;
67 static DBusGProxy *nm_proxy = NULL; 67 static DBusGProxy *nm_proxy = NULL;
68 static DBusGProxy *dbus_proxy = NULL; 68 static DBusGProxy *dbus_proxy = NULL;
69 69
79 PurpleNetworkListenCallback cb; 79 PurpleNetworkListenCallback cb;
80 gpointer cb_data; 80 gpointer cb_data;
81 UPnPMappingAddRemove *mapping_data; 81 UPnPMappingAddRemove *mapping_data;
82 }; 82 };
83 83
84 #ifdef HAVE_LIBNM 84 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
85 static NMState nm_get_network_state(void); 85 static NMState nm_get_network_state(void);
86 #endif 86 #endif
87 87
88 const unsigned char * 88 const unsigned char *
89 purple_network_ip_atoi(const char *ip) 89 purple_network_ip_atoi(const char *ip)
591 #endif 591 #endif
592 592
593 gboolean 593 gboolean
594 purple_network_is_available(void) 594 purple_network_is_available(void)
595 { 595 {
596 #ifdef HAVE_LIBNM 596 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
597 /* Try NetworkManager first, maybe we'll get lucky */ 597 /* Try NetworkManager first, maybe we'll get lucky */
598 if (nm_get_network_state() != NM_STATE_CONNECTED) 598 if (nm_get_network_state() != NM_STATE_CONNECTED)
599 { 599 {
600 purple_debug_warning("network", "NetworkManager not active or reports no connection\n"); 600 purple_debug_warning("network", "NetworkManager not active or reports no connection\n");
601 return FALSE; 601 return TRUE;
602 } else 602 } else
603 return TRUE; 603 return TRUE;
604 #elif defined _WIN32 604 #elif defined _WIN32
605 return (current_network_count > 0); 605 return (current_network_count > 0);
606 #endif 606 #endif
607 return TRUE; 607 return TRUE;
608 } 608 }
609 609
610 #ifdef HAVE_LIBNM 610 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
611 static void 611 static void
612 nm_update_state(NMState state) 612 nm_update_state(NMState state)
613 { 613 {
614 static NMState prev = NM_STATE_UNKNOWN; 614 static NMState prev = NM_STATE_UNKNOWN;
615 PurpleConnectionUiOps *ui_ops = purple_connections_get_ui_ops(); 615 PurpleConnectionUiOps *ui_ops = purple_connections_get_ui_ops();
693 } 693 }
694 694
695 void 695 void
696 purple_network_init(void) 696 purple_network_init(void)
697 { 697 {
698 #ifdef HAVE_LIBNM 698 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
699 GError *error = NULL; 699 GError *error = NULL;
700 #endif 700 #endif
701 #ifdef _WIN32 701 #ifdef _WIN32
702 GError *err = NULL; 702 GError *err = NULL;
703 gint cnt = wpurple_get_connected_network_count(); 703 gint cnt = wpurple_get_connected_network_count();
722 purple_prefs_add_int ("/purple/network/ports_range_end", 2048); 722 purple_prefs_add_int ("/purple/network/ports_range_end", 2048);
723 723
724 if(purple_prefs_get_bool("/purple/network/map_ports") || purple_prefs_get_bool("/purple/network/auto_ip")) 724 if(purple_prefs_get_bool("/purple/network/map_ports") || purple_prefs_get_bool("/purple/network/auto_ip"))
725 purple_upnp_discover(NULL, NULL); 725 purple_upnp_discover(NULL, NULL);
726 726
727 #ifdef HAVE_LIBNM 727 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
728 nm_conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); 728 nm_conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
729 if (!nm_conn) { 729 if (!nm_conn) {
730 purple_debug_warning("network", "Error connecting to DBus System service: %s.\n", error->message); 730 purple_debug_warning("network", "Error connecting to DBus System service: %s.\n", error->message);
731 } else { 731 } else {
732 nm_proxy = dbus_g_proxy_new_for_name(nm_conn, 732 nm_proxy = dbus_g_proxy_new_for_name(nm_conn,
755 } 755 }
756 756
757 void 757 void
758 purple_network_uninit(void) 758 purple_network_uninit(void)
759 { 759 {
760 #ifdef HAVE_LIBNM 760 #ifdef HAVE_NETWORKMANAGER_NETWORKMANAGER_H
761 if (nm_proxy) { 761 if (nm_proxy) {
762 dbus_g_proxy_disconnect_signal(nm_proxy, NM_DBUS_SIGNAL_STATE_CHANGE, G_CALLBACK(nm_state_change_cb), NULL); 762 dbus_g_proxy_disconnect_signal(nm_proxy, NM_DBUS_SIGNAL_STATE_CHANGE, G_CALLBACK(nm_state_change_cb), NULL);
763 g_object_unref(G_OBJECT(nm_proxy)); 763 g_object_unref(G_OBJECT(nm_proxy));
764 } 764 }
765 if (dbus_proxy) { 765 if (dbus_proxy) {