mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-06-04 01:14:36 -04:00
Support Proxy protocol (#12527)
This PR adds functionality to allow Gitea to sit behind an HAProxy and HAProxy protocolled connections directly. Fix #7508 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
0b4c166e8a
commit
943753f560
15 changed files with 787 additions and 74 deletions
45
modules/proxyprotocol/errors.go
Normal file
45
modules/proxyprotocol/errors.go
Normal file
|
@ -0,0 +1,45 @@
|
|||
// Copyright 2020 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package proxyprotocol
|
||||
|
||||
import "fmt"
|
||||
|
||||
// ErrBadHeader is an error demonstrating a bad proxy header
|
||||
type ErrBadHeader struct {
|
||||
Header []byte
|
||||
}
|
||||
|
||||
func (e *ErrBadHeader) Error() string {
|
||||
return fmt.Sprintf("Unexpected proxy header: %v", e.Header)
|
||||
}
|
||||
|
||||
// ErrBadAddressType is an error demonstrating a bad proxy header with bad Address type
|
||||
type ErrBadAddressType struct {
|
||||
Address string
|
||||
}
|
||||
|
||||
func (e *ErrBadAddressType) Error() string {
|
||||
return fmt.Sprintf("Unexpected proxy header address type: %s", e.Address)
|
||||
}
|
||||
|
||||
// ErrBadRemote is an error demonstrating a bad proxy header with bad Remote
|
||||
type ErrBadRemote struct {
|
||||
IP string
|
||||
Port string
|
||||
}
|
||||
|
||||
func (e *ErrBadRemote) Error() string {
|
||||
return fmt.Sprintf("Unexpected proxy header remote IP and port: %s %s", e.IP, e.Port)
|
||||
}
|
||||
|
||||
// ErrBadLocal is an error demonstrating a bad proxy header with bad Local
|
||||
type ErrBadLocal struct {
|
||||
IP string
|
||||
Port string
|
||||
}
|
||||
|
||||
func (e *ErrBadLocal) Error() string {
|
||||
return fmt.Sprintf("Unexpected proxy header local IP and port: %s %s", e.IP, e.Port)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue