Mercurial > pidgin
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) { |