diff src/ft.c @ 6268:084e1f6610a8

[gaim-migrate @ 6765] Changed the name of one of the new IP functions, and added a couple more to wrap around prefs and such. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 22 Jul 2003 08:12:08 +0000
parents 3565ee7a5dd3
children 0a902bd3e170
line wrap: on
line diff
--- a/src/ft.c	Tue Jul 22 08:11:44 2003 +0000
+++ b/src/ft.c	Tue Jul 22 08:12:08 2003 +0000
@@ -31,7 +31,6 @@
 GaimXfer *
 gaim_xfer_new(GaimAccount *account, GaimXferType type, const char *who)
 {
-	const char *ip;
 	GaimXfer *xfer;
 	GaimXferUiOps *ui_ops;
 
@@ -46,13 +45,7 @@
 	xfer->who     = g_strdup(who);
 	xfer->ui_ops  = gaim_get_xfer_ui_ops();
 
-	if ((ip = gaim_account_get_public_ip(account)) != NULL)
-		ip = gaim_prefs_get_string("/core/ft/public_ip");
-
-	if (ip != NULL && *ip != '\0')
-		xfer->local_ip = g_strdup(ip);
-	else
-		xfer->local_ip = gaim_xfers_get_local_ip();
+	xfer->local_ip = gaim_xfers_get_ip_for_account(account);
 
 	ui_ops = gaim_xfer_get_ui_ops(xfer);
 
@@ -709,8 +702,29 @@
 /**************************************************************************
  * File Transfer Subsystem API
  **************************************************************************/
+void
+gaim_xfers_set_local_ip(const char *ip)
+{
+	g_return_if_fail(ip != NULL);
+
+	gaim_prefs_set_string("/core/ft/public_ip", ip);
+}
+
+const char *
+gaim_xfers_get_local_ip(void)
+{
+	const char *ip;
+
+	ip = gaim_prefs_get_string("/core/ft/public_ip");
+
+	if (ip == NULL || *ip == '\0')
+		return NULL;
+
+	return ip;
+}
+
 char *
-gaim_xfers_get_local_ip(void)
+gaim_xfers_get_local_system_ip(void)
 {
 	struct hostent *host;
 	char localhost[129];
@@ -731,6 +745,19 @@
 	return g_strdup(ip);
 }
 
+char *
+gaim_xfers_get_ip_for_account(const GaimAccount *account)
+{
+	g_return_val_if_fail(account != NULL, NULL);
+
+	if (gaim_account_get_public_ip(account) != NULL)
+		return g_strdup(gaim_account_get_public_ip(account));
+	else if (gaim_xfers_get_local_ip() != NULL)
+		return g_strdup(gaim_xfers_get_local_ip());
+	else
+		return gaim_xfers_get_local_system_ip();
+}
+
 void
 gaim_xfers_init(void)
 {