Add a private connection shutdown method for error cases.
[free-sw/xcb/libxcb] / src / xcb_util.c
index 1ca6b43..d93353b 100644 (file)
@@ -29,6 +29,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/un.h>
+#include <netinet/in.h>
 #ifdef DNETCONN
 #include <netdnet/dnetdb.h>
 #include <netdnet/dn.h>
@@ -44,6 +45,8 @@
 #include "xcbext.h"
 #include "xcbint.h"
 
+static const int error_connection = 1;
+
 int XCBPopcount(CARD32 mask)
 {
     unsigned long y;
@@ -211,11 +214,11 @@ XCBConnection *XCBConnect(const char *displayname, int *screenp)
     XCBAuthInfo auth;
 
     if(!XCBParseDisplay(displayname, &host, &display, screenp))
-        return 0;
+        return (XCBConnection *) &error_connection;
     fd = _xcb_open(host, display);
     free(host);
     if(fd == -1)
-        return 0;
+        return (XCBConnection *) &error_connection;
 
     _xcb_get_auth_info(fd, &auth);
     c = XCBConnectToFD(fd, &auth);
@@ -230,51 +233,11 @@ XCBConnection *XCBConnectToDisplayWithAuthInfo(const char *displayname, XCBAuthI
     char *host;
 
     if(!XCBParseDisplay(displayname, &host, &display, screenp))
-        return 0;
+        return (XCBConnection *) &error_connection;
     fd = _xcb_open(host, display);
     free(host);
     if(fd == -1)
-        return 0;
+        return (XCBConnection *) &error_connection;
 
     return XCBConnectToFD(fd, auth);
 }
-
-int XCBSync(XCBConnection *c, XCBGenericError **e)
-{
-    XCBGetInputFocusRep *reply = XCBGetInputFocusReply(c, XCBGetInputFocus(c), e);
-    free(reply);
-    return reply != 0;
-}
-
-
-
-
-/* backwards compatible interfaces: remove before 1.0 release */
-XCBConnection *XCBConnectBasic()
-{
-    XCBConnection *c = XCBConnect(0, 0);
-    if(c)
-        return c;
-    perror("XCBConnect");
-    abort();
-}
-
-int XCBOpen(const char *host, const int display)
-{
-       return _xcb_open(host, display);
-}
-
-int XCBOpenTCP(const char *host, const unsigned short port)
-{
-       return _xcb_open_tcp(host, port);
-}
-
-int XCBOpenUnix(const char *file)
-{
-       return _xcb_open_unix(file);
-}
-
-int XCBGetAuthInfo(int fd, XCBAuthInfo *info)
-{
-       return _xcb_get_auth_info(fd, info);
-}