mirror of
https://github.com/minio/minio.git
synced 2025-01-11 23:13:23 -05:00
Merge pull request #304 from harshavardhana/pr_out_move_from_fmt_errorf_to_errors_new
This commit is contained in:
commit
bf04d125fd
@ -17,6 +17,7 @@
|
|||||||
package minioapi
|
package minioapi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -58,28 +59,28 @@ func newRange(req *http.Request, size int64) (*httpRange, error) {
|
|||||||
// parseRange parses a Range header string as per RFC 2616.
|
// parseRange parses a Range header string as per RFC 2616.
|
||||||
func (r *httpRange) parseRange(s string) error {
|
func (r *httpRange) parseRange(s string) error {
|
||||||
if s == "" {
|
if s == "" {
|
||||||
return fmt.Errorf("header not present")
|
return errors.New("header not present")
|
||||||
}
|
}
|
||||||
if !strings.HasPrefix(s, b) {
|
if !strings.HasPrefix(s, b) {
|
||||||
return fmt.Errorf("invalid range")
|
return errors.New("invalid range")
|
||||||
}
|
}
|
||||||
|
|
||||||
ras := strings.Split(s[len(b):], ",")
|
ras := strings.Split(s[len(b):], ",")
|
||||||
if len(ras) == 0 {
|
if len(ras) == 0 {
|
||||||
return fmt.Errorf("invalid request")
|
return errors.New("invalid request")
|
||||||
}
|
}
|
||||||
// Just pick the first one and ignore the rest, we only support one range per object
|
// Just pick the first one and ignore the rest, we only support one range per object
|
||||||
if len(ras) > 1 {
|
if len(ras) > 1 {
|
||||||
return fmt.Errorf("multiple ranges specified")
|
return errors.New("multiple ranges specified")
|
||||||
}
|
}
|
||||||
|
|
||||||
ra := strings.TrimSpace(ras[0])
|
ra := strings.TrimSpace(ras[0])
|
||||||
if ra == "" {
|
if ra == "" {
|
||||||
return fmt.Errorf("invalid range")
|
return errors.New("invalid range")
|
||||||
}
|
}
|
||||||
i := strings.Index(ra, "-")
|
i := strings.Index(ra, "-")
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
return fmt.Errorf("invalid range")
|
return errors.New("invalid range")
|
||||||
}
|
}
|
||||||
start, end := strings.TrimSpace(ra[:i]), strings.TrimSpace(ra[i+1:])
|
start, end := strings.TrimSpace(ra[:i]), strings.TrimSpace(ra[i+1:])
|
||||||
if start == "" {
|
if start == "" {
|
||||||
@ -87,7 +88,7 @@ func (r *httpRange) parseRange(s string) error {
|
|||||||
// range start relative to the end of the file.
|
// range start relative to the end of the file.
|
||||||
i, err := strconv.ParseInt(end, 10, 64)
|
i, err := strconv.ParseInt(end, 10, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("invalid range")
|
return errors.New("invalid range")
|
||||||
}
|
}
|
||||||
if i > r.size {
|
if i > r.size {
|
||||||
i = r.size
|
i = r.size
|
||||||
@ -97,7 +98,7 @@ func (r *httpRange) parseRange(s string) error {
|
|||||||
} else {
|
} else {
|
||||||
i, err := strconv.ParseInt(start, 10, 64)
|
i, err := strconv.ParseInt(start, 10, 64)
|
||||||
if err != nil || i > r.size || i < 0 {
|
if err != nil || i > r.size || i < 0 {
|
||||||
return fmt.Errorf("invalid range")
|
return errors.New("invalid range")
|
||||||
}
|
}
|
||||||
r.start = i
|
r.start = i
|
||||||
if end == "" {
|
if end == "" {
|
||||||
@ -106,7 +107,7 @@ func (r *httpRange) parseRange(s string) error {
|
|||||||
} else {
|
} else {
|
||||||
i, err := strconv.ParseInt(end, 10, 64)
|
i, err := strconv.ParseInt(end, 10, 64)
|
||||||
if err != nil || r.start > i {
|
if err != nil || r.start > i {
|
||||||
return fmt.Errorf("invalid range")
|
return errors.New("invalid range")
|
||||||
}
|
}
|
||||||
if i >= r.size {
|
if i >= r.size {
|
||||||
i = r.size - 1
|
i = r.size - 1
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package storage
|
package storage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -34,7 +35,7 @@ func parseDate(str string) (d Date, err error) {
|
|||||||
y, m, n int
|
y, m, n int
|
||||||
)
|
)
|
||||||
if len(str) != 10 || str[4] != '-' || str[7] != '-' {
|
if len(str) != 10 || str[4] != '-' || str[7] != '-' {
|
||||||
err = fmt.Errorf("Invalid 0000-00-000 style DATE string: " + str)
|
err = errors.New("Invalid 0000-00-000 style DATE string: " + str)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if y, err = strconv.Atoi(str[0:4]); err != nil {
|
if y, err = strconv.Atoi(str[0:4]); err != nil {
|
||||||
@ -44,14 +45,14 @@ func parseDate(str string) (d Date, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if m < 1 || m > 12 {
|
if m < 1 || m > 12 {
|
||||||
err = fmt.Errorf("Invalid 0000-00-000 style DATE string: " + str)
|
err = errors.New("Invalid 0000-00-000 style DATE string: " + str)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if n, err = strconv.Atoi(str[8:10]); err != nil {
|
if n, err = strconv.Atoi(str[8:10]); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if n < 1 || n > 31 {
|
if n < 1 || n > 31 {
|
||||||
err = fmt.Errorf("Invalid 0000-00-000 style DATE string: " + str)
|
err = errors.New("Invalid 0000-00-000 style DATE string: " + str)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
d.Year = int16(y)
|
d.Year = int16(y)
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"crypto/hmac"
|
"crypto/hmac"
|
||||||
"crypto/sha1"
|
"crypto/sha1"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
@ -55,7 +56,7 @@ func ValidateRequest(user config.User, req *http.Request) (bool, error) {
|
|||||||
// Verify if date headers are set, if not reject the request
|
// Verify if date headers are set, if not reject the request
|
||||||
if req.Header.Get("x-amz-date") == "" {
|
if req.Header.Get("x-amz-date") == "" {
|
||||||
if req.Header.Get("Date") == "" {
|
if req.Header.Get("Date") == "" {
|
||||||
return false, fmt.Errorf("Date should be set")
|
return false, errors.New("Date should be set")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
hm := hmac.New(sha1.New, []byte(user.SecretKey))
|
hm := hmac.New(sha1.New, []byte(user.SecretKey))
|
||||||
@ -73,7 +74,7 @@ func ValidateRequest(user config.User, req *http.Request) (bool, error) {
|
|||||||
// fmt.Println("Header calculated: ", authHeader.String())
|
// fmt.Println("Header calculated: ", authHeader.String())
|
||||||
// fmt.Printf("%q : %x", ss, ss)
|
// fmt.Printf("%q : %x", ss, ss)
|
||||||
if req.Header.Get("Authorization") != authHeader.String() {
|
if req.Header.Get("Authorization") != authHeader.String() {
|
||||||
return false, fmt.Errorf("Authorization header mismatch")
|
return false, errors.New("Authorization header mismatch")
|
||||||
}
|
}
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,13 @@
|
|||||||
package x509
|
package x509
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"math/big"
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"crypto/elliptic"
|
"crypto/elliptic"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
@ -24,11 +31,6 @@ import (
|
|||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"crypto/x509/pkix"
|
"crypto/x509/pkix"
|
||||||
"encoding/pem"
|
"encoding/pem"
|
||||||
"fmt"
|
|
||||||
"math/big"
|
|
||||||
"net"
|
|
||||||
"os"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Certificates - based on http://golang.org/src/crypto/tls/generate_cert.go
|
// Certificates - based on http://golang.org/src/crypto/tls/generate_cert.go
|
||||||
@ -91,11 +93,11 @@ func (tls *Certificates) GenerateCertificates(params Params) error {
|
|||||||
case "P521":
|
case "P521":
|
||||||
priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader)
|
priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader)
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("Unrecognized elliptic curve: %q", params.EcdsaCurve)
|
return errors.New("Unrecognized elliptic curve: %q", params.EcdsaCurve)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to generate private key: %s", err)
|
return errors.New("failed to generate private key: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var notBefore time.Time
|
var notBefore time.Time
|
||||||
@ -104,7 +106,7 @@ func (tls *Certificates) GenerateCertificates(params Params) error {
|
|||||||
} else {
|
} else {
|
||||||
notBefore, err = time.Parse("Jan 2 15:04:05 2006", params.ValidFrom)
|
notBefore, err = time.Parse("Jan 2 15:04:05 2006", params.ValidFrom)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to parse creation date: %s", err)
|
return errors.New("Failed to parse creation date: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
notAfter := notBefore.Add(time.Duration(params.ValidFor))
|
notAfter := notBefore.Add(time.Duration(params.ValidFor))
|
||||||
@ -112,7 +114,7 @@ func (tls *Certificates) GenerateCertificates(params Params) error {
|
|||||||
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
|
serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128)
|
||||||
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
|
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to generate serial number: %s", err)
|
return errors.New("failed to generate serial number: %s", err)
|
||||||
}
|
}
|
||||||
orgName := pkix.Name{
|
orgName := pkix.Name{
|
||||||
Organization: []string{"Minio"},
|
Organization: []string{"Minio"},
|
||||||
@ -140,7 +142,7 @@ func (tls *Certificates) GenerateCertificates(params Params) error {
|
|||||||
|
|
||||||
derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv)
|
derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Failed to create certificate: %s", err)
|
return errors.New("Failed to create certificate: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
tls.CertPemBlock = pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
|
tls.CertPemBlock = pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
|
||||||
|
Loading…
Reference in New Issue
Block a user