mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
65 lines
1.7 KiB
C++
65 lines
1.7 KiB
C++
// Copyright 2015 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "net/url_request/url_request_status.h"
|
|
|
|
#include "base/logging.h"
|
|
#include "net/base/net_errors.h"
|
|
|
|
namespace net {
|
|
|
|
URLRequestStatus::URLRequestStatus(Status status, int error)
|
|
: status_(status), error_(error) {
|
|
// URLRequestStatus should get folded into error. However, it is possible to
|
|
// create URLRequestStatuses with inconsistent |status_| and |error_|
|
|
// fields. As callers are cleaned up, these assertions avoid regressing any
|
|
// invariants that have been established.
|
|
//
|
|
// https://crbug.com/490311
|
|
DCHECK_GE(0, error_);
|
|
switch (status_) {
|
|
case SUCCESS:
|
|
DCHECK_EQ(OK, error_);
|
|
break;
|
|
case IO_PENDING:
|
|
// TODO(davidben): Switch all IO_PENDING status to ERR_IO_PENDING.
|
|
DCHECK(error_ == 0 || error_ == ERR_IO_PENDING);
|
|
break;
|
|
case CANCELED:
|
|
case FAILED:
|
|
DCHECK_NE(OK, error_);
|
|
DCHECK_NE(ERR_IO_PENDING, error_);
|
|
break;
|
|
}
|
|
}
|
|
|
|
URLRequestStatus URLRequestStatus::FromError(int error) {
|
|
if (error == OK) {
|
|
return URLRequestStatus(SUCCESS, OK);
|
|
} else if (error == ERR_IO_PENDING) {
|
|
return URLRequestStatus(IO_PENDING, ERR_IO_PENDING);
|
|
} else if (error == ERR_ABORTED) {
|
|
return URLRequestStatus(CANCELED, ERR_ABORTED);
|
|
} else {
|
|
return URLRequestStatus(FAILED, error);
|
|
}
|
|
}
|
|
|
|
Error URLRequestStatus::ToNetError() const {
|
|
switch (status_) {
|
|
case SUCCESS:
|
|
return OK;
|
|
case IO_PENDING:
|
|
return ERR_IO_PENDING;
|
|
case CANCELED:
|
|
return ERR_ABORTED;
|
|
case FAILED:
|
|
return static_cast<Error>(error_);
|
|
}
|
|
NOTREACHED();
|
|
return ERR_FAILED;
|
|
}
|
|
|
|
} // namespace net
|