glx/dri2: Paper over errors in DRI2Connect when indirect
[mesa.git] / src / glx / dri2.c
index 229840d69195fcff74f674ddefb666d5bad93b3e..b1b5013d048ca98ca8662c1ef5ecdc789eab095f 100644 (file)
@@ -190,6 +190,15 @@ DRI2Error(Display *display, xError *err, XExtCodes *codes, int *ret_code)
        err->minorCode == X_DRI2DestroyDrawable)
        return True;
 
+    /* If the server is non-local DRI2Connect will raise BadRequest.
+     * Swallow this so that DRI2Connect can signal this in its return code */
+    if (err->majorCode == codes->major_opcode &&
+        err->minorCode == X_DRI2Connect &&
+        err->errorCode == BadRequest) {
+       *ret_code = False;
+       return True;
+    }
+
     return False;
 }