]> Pileus Git - ~andy/gtk/commitdiff
Define httpGetHostname() for CUPS 1.1 and lower
authorMarek Kasik <mkasik@redhat.com>
Wed, 17 Mar 2010 09:14:24 +0000 (10:14 +0100)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Sun, 4 Apr 2010 00:59:16 +0000 (20:59 -0400)
Function httpGetHostname() is in CUPS since version 1.2, that is why we need
its equivalent for lower versions of CUPS (#610176).

modules/printbackends/cups/gtkprintbackendcups.c

index f98364aca927540d7f463422a2496d5cc54fdfab..8cb2e1a1f4bbc5c1ffac1ee81dfdc5fc673fc9e8 100644 (file)
@@ -663,6 +663,40 @@ is_address_local (const gchar *address)
     return FALSE;
 }
 
+#ifndef HAVE_CUPS_API_1_2
+/* Included from CUPS library because of backward compatibility */
+const char *
+httpGetHostname(http_t *http,
+                char   *s,
+                int    slen)
+{
+  struct hostent *host;
+
+  if (!s || slen <= 1)
+    return (NULL);
+
+  if (http)
+    {
+      if (http->hostname[0] == '/')
+        g_strlcpy (s, "localhost", slen);
+      else
+        g_strlcpy (s, http->hostname, slen);
+    }
+  else
+    {
+      if (gethostname (s, slen) < 0)
+        g_strlcpy (s, "localhost", slen);
+
+      if (!strchr (s, '.'))
+        {
+          if ((host = gethostbyname (s)) != NULL && host->h_name)
+            g_strlcpy (s, host->h_name, slen);
+        }
+    }
+  return (s);
+}
+#endif
+
 static void
 gtk_print_backend_cups_set_password (GtkPrintBackend  *backend,
                                      gchar           **auth_info_required,