代码清理
This commit is contained in:
@@ -3,7 +3,7 @@ package orm
|
||||
import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"os"
|
||||
"proxy-server/server/pkg/env"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"gorm.io/driver/postgres"
|
||||
@@ -14,16 +14,9 @@ import (
|
||||
var DB *gorm.DB
|
||||
|
||||
func Init() {
|
||||
Host := os.Getenv("DB_HOST")
|
||||
Port := os.Getenv("DB_PORT")
|
||||
Database := os.Getenv("DB_DATABASE")
|
||||
Username := os.Getenv("DB_USERNAME")
|
||||
Password := os.Getenv("DB_PASSWORD")
|
||||
Timezone := os.Getenv("DB_TIMEZONE")
|
||||
|
||||
dsn := fmt.Sprintf(
|
||||
"host=%s port=%s user=%s password=%s dbname=%s sslmode=disable TimeZone=%s",
|
||||
Host, Port, Username, Password, Database, Timezone,
|
||||
"host=%s port=%d user=%s password=%s dbname=%s sslmode=disable TimeZone=%s",
|
||||
env.DbHost, env.DbPort, env.DbUsername, env.DbPassword, env.DbDatabase, env.DbTimezone,
|
||||
)
|
||||
|
||||
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
|
||||
|
||||
@@ -34,7 +34,7 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
unrecognizedAddrType = fmt.Errorf("Unrecognized address type")
|
||||
unrecognizedAddrType = fmt.Errorf("unrecognized address type")
|
||||
)
|
||||
|
||||
// AddressRewriter is used to rewrite a destination transparently
|
||||
@@ -156,9 +156,9 @@ func (server *Server) parseTarget(reader io.Reader, writer io.Writer) (*AddrSpec
|
||||
if err != nil {
|
||||
err := sendReply(writer, hostUnreachable, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to send reply: %v", err)
|
||||
return nil, fmt.Errorf("failed to send reply: %v", err)
|
||||
}
|
||||
return nil, fmt.Errorf("Failed to resolve destination '%v': %v", dest.FQDN, err)
|
||||
return nil, fmt.Errorf("failed to resolve destination '%v': %v", dest.FQDN, err)
|
||||
}
|
||||
dest.IP = addr
|
||||
|
||||
@@ -308,16 +308,16 @@ func (server *Server) handleBind(ctx context.Context, conn net.Conn, req *Reques
|
||||
// Check if this is allowed
|
||||
if ctx_, ok := server.config.Rules.Allow(ctx, req); !ok {
|
||||
if err := sendReply(conn, ruleFailure, nil); err != nil {
|
||||
return fmt.Errorf("Failed to send reply: %v", err)
|
||||
return fmt.Errorf("failed to send reply: %v", err)
|
||||
}
|
||||
return fmt.Errorf("Bind to %v blocked by rules", req.DestAddr)
|
||||
return fmt.Errorf("bind to %v blocked by rules", req.DestAddr)
|
||||
} else {
|
||||
ctx = ctx_
|
||||
}
|
||||
|
||||
// TODO: Support bind
|
||||
if err := sendReply(conn, commandNotSupported, nil); err != nil {
|
||||
return fmt.Errorf("Failed to send reply: %v", err)
|
||||
return fmt.Errorf("failed to send reply: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -326,16 +326,16 @@ func (server *Server) handleAssociate(ctx context.Context, conn net.Conn, req *R
|
||||
// Check if this is allowed
|
||||
if ctx_, ok := server.config.Rules.Allow(ctx, req); !ok {
|
||||
if err := sendReply(conn, ruleFailure, nil); err != nil {
|
||||
return fmt.Errorf("Failed to send reply: %v", err)
|
||||
return fmt.Errorf("failed to send reply: %v", err)
|
||||
}
|
||||
return fmt.Errorf("Associate to %v blocked by rules", req.DestAddr)
|
||||
return fmt.Errorf("associate to %v blocked by rules", req.DestAddr)
|
||||
} else {
|
||||
ctx = ctx_
|
||||
}
|
||||
|
||||
// TODO: Support associate
|
||||
if err := sendReply(conn, commandNotSupported, nil); err != nil {
|
||||
return fmt.Errorf("Failed to send reply: %v", err)
|
||||
return fmt.Errorf("failed to send reply: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ func (server *Server) Run() error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer closeListener(listener)
|
||||
defer utils.Close(listener)
|
||||
|
||||
slog.Info("代理服务已启动,正在监听端口 " + addr)
|
||||
|
||||
@@ -126,7 +126,7 @@ func (server *Server) serve(conn net.Conn) error {
|
||||
slog.Debug("开始认证流程")
|
||||
authContext, err := server.authenticate(reader, conn)
|
||||
if err != nil {
|
||||
conn.Close()
|
||||
utils.Close(conn)
|
||||
slog.Error("认证失败", err)
|
||||
return err
|
||||
} else {
|
||||
@@ -179,21 +179,3 @@ func checkVersion(reader io.Reader) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// closeListener 关闭监听并处理可能的错误
|
||||
func closeListener(listener net.Listener) {
|
||||
err := listener.Close()
|
||||
if err != nil {
|
||||
slog.Info("结束监听端口")
|
||||
}
|
||||
}
|
||||
|
||||
// closeConnection 关闭连接并处理可能的错误
|
||||
func closeConnection(conn net.Conn) {
|
||||
err := conn.Close()
|
||||
if err != nil {
|
||||
slog.Error("连接异常关闭", err)
|
||||
} else {
|
||||
slog.Info("已关闭来自" + conn.RemoteAddr().String() + "的连接")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user