pidgin/pidgin
Clone
Summary
Browse
Changes
Graph
Use gUPnP to determine external IP address and control URL
21 months ago, Elliott Sales de Andrade
a5499f6be930
Use gUPnP to determine external IP address and control URL
This is based on the gUPnP example, but modified to use the async API, and its context manager to automatically check all interfaces.
Testing Done:
Opened prefs and checked that external IP was detected with a UPnP-enabled router.
Reviewed at https://reviews.imfreedom.org/r/1785/
#include
<glib.h>
#include
<purple.h>
static
void
test_purplepath_home_dir
(
void
)
{
const
gchar
*
home_dir
;
#ifndef _WIN32
home_dir
=
g_get_home_dir
();
#else
home_dir
=
g_getenv
(
"APPDATA"
);
#endif
g_assert_cmpstr
(
home_dir
,
==
,
purple_home_dir
());
}
static
void
test_purplepath_cache_dir
(
void
)
{
gchar
*
cache_dir
;
cache_dir
=
g_build_filename
(
g_get_user_cache_dir
(),
"purple"
,
NULL
);
g_assert_cmpstr
(
cache_dir
,
==
,
purple_cache_dir
());
g_free
(
cache_dir
);
}
static
void
test_purplepath_config_dir
(
void
)
{
gchar
*
config_dir
;
config_dir
=
g_build_filename
(
g_get_user_config_dir
(),
"purple"
,
NULL
);
g_assert_cmpstr
(
config_dir
,
==
,
purple_config_dir
());
g_free
(
config_dir
);
}
static
void
test_purplepath_data_dir
(
void
)
{
gchar
*
data_dir
;
data_dir
=
g_build_filename
(
g_get_user_data_dir
(),
"purple"
,
NULL
);
g_assert_cmpstr
(
data_dir
,
==
,
purple_data_dir
());
g_free
(
data_dir
);
}
gint
main
(
gint
argc
,
gchar
**
argv
)
{
g_test_init
(
&
argc
,
&
argv
,
NULL
);
g_test_add_func
(
"/purplepath/homedir"
,
test_purplepath_home_dir
);
g_test_add_func
(
"/purplepath/cachedir"
,
test_purplepath_cache_dir
);
g_test_add_func
(
"/purplepath/configdir"
,
test_purplepath_config_dir
);
g_test_add_func
(
"/purplepath/datadir"
,
test_purplepath_data_dir
);
return
g_test_run
();
}