private function getServerTokens($qop = Sabre_HTTP_DigestAuth::QOP_AUTH) { $this->auth->requireLogin(); switch ($qop) { case Sabre_HTTP_DigestAuth::QOP_AUTH: $qopstr = 'auth'; break; case Sabre_HTTP_DigestAuth::QOP_AUTHINT: $qopstr = 'auth-int'; break; default: $qopstr = 'auth,auth-int'; break; } $test = preg_match('/Digest realm="' . self::REALM . '",qop="' . $qopstr . '",nonce="([0-9a-f]*)",opaque="([0-9a-f]*)"/', $this->response->headers['WWW-Authenticate'], $matches); $this->assertTrue($test == true, 'The WWW-Authenticate response didn\'t match our pattern. We received: ' . $this->response->headers['WWW-Authenticate']); $nonce = $matches[1]; $opaque = $matches[2]; // Reset our environment $this->setUp(); $this->auth->setQOP($qop); return array($nonce, $opaque); }