Skip to content

Commit

Permalink
server calls AfterInit
Browse files Browse the repository at this point in the history
  • Loading branch information
linyows committed Oct 8, 2023
1 parent 67d29c1 commit 6d164bd
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 25 deletions.
1 change: 1 addition & 0 deletions hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
)

type Hook interface {
Name() string
AfterInit()
AfterComm(*AfterCommData)
AfterConn(*AfterConnData)
Expand Down
10 changes: 5 additions & 5 deletions hook_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type HookFile struct {
file io.Writer
}

func (h *HookFile) prefix() string {
func (h *HookFile) Name() string {
return "file"
}

Expand Down Expand Up @@ -47,23 +47,23 @@ func (h *HookFile) AfterInit() {
func (h *HookFile) AfterComm(d *AfterCommData) {
writer, err := h.writer()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

if _, err := fmt.Fprintf(writer, fileCommJson, d.OccurredAt.Format(time.RFC3339), d.ConnID, d.Direction, d.Data); err != nil {
fmt.Printf("[%s] file append error: %s\n", h.prefix(), err)
fmt.Printf("[%s] file append error: %s\n", h.Name(), err)
}
}

func (h *HookFile) AfterConn(d *AfterConnData) {
writer, err := h.writer()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

if _, err := fmt.Fprintf(writer, fileConnJson, d.OccurredAt.Format(time.RFC3339), d.ConnID, d.MailFrom, d.MailTo, d.Elapse); err != nil {
fmt.Printf("[%s] file append error: %s\n", h.prefix(), err)
fmt.Printf("[%s] file append error: %s\n", h.Name(), err)
}
}
4 changes: 2 additions & 2 deletions hook_file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ func TestHookFileConst(t *testing.T) {
}
}

func TestHookFilePrefix(t *testing.T) {
func TestHookFileName(t *testing.T) {
f := &HookFile{}
expect := "file"
got := f.prefix()
got := f.Name()
if got != expect {
t.Errorf("expected %s, got %s", expect, got)
}
Expand Down
10 changes: 5 additions & 5 deletions hook_mysql.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type HookMysql struct {
pool *sql.DB // Database connection pool.
}

func (h *HookMysql) prefix() string {
func (h *HookMysql) Name() string {
return "mysql"
}

Expand Down Expand Up @@ -44,7 +44,7 @@ func (h *HookMysql) AfterInit() {
func (h *HookMysql) AfterComm(d *AfterCommData) {
conn, err := h.conn()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

Expand All @@ -57,14 +57,14 @@ func (h *HookMysql) AfterComm(d *AfterCommData) {
d.Data,
)
if err != nil {
fmt.Printf("[%s] db exec error: %s\n", h.prefix(), err)
fmt.Printf("[%s] db exec error: %s\n", h.Name(), err)
}
}

func (h *HookMysql) AfterConn(d *AfterConnData) {
conn, err := h.conn()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

Expand All @@ -77,6 +77,6 @@ func (h *HookMysql) AfterConn(d *AfterConnData) {
d.Elapse,
)
if err != nil {
fmt.Printf("[%s] db exec error: %s\n", h.prefix(), err)
fmt.Printf("[%s] db exec error: %s\n", h.Name(), err)
}
}
4 changes: 2 additions & 2 deletions hook_mysql_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ func TestHookMysqlConst(t *testing.T) {
}
}

func TestHookMysqlPrefix(t *testing.T) {
func TestHookMysqlName(t *testing.T) {
mysql := &HookMysql{}
var expect string
var got string

expect = "mysql"
got = mysql.prefix()
got = mysql.Name()
if got != expect {
t.Errorf("expected %s, got %s", expect, got)
}
Expand Down
16 changes: 8 additions & 8 deletions hook_sqlite.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ type HookSqlite struct {
pool *sql.DB // Database connection pool.
}

func (h *HookSqlite) prefix() string {
func (h *HookSqlite) Name() string {
return "sqlite"
}

Expand All @@ -57,25 +57,25 @@ func (h *HookSqlite) conn() (*sql.DB, error) {
func (h *HookSqlite) AfterInit() {
conn, err := h.conn()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

_, err = conn.Exec(sqliteConnCreateTable)
if err != nil {
fmt.Printf("[%s] db exec error: %s\n", h.prefix(), err)
fmt.Printf("[%s] db exec error: %s\n", h.Name(), err)
}

_, err = conn.Exec(sqliteCommCreateTable)
if err != nil {
fmt.Printf("[%s] db exec error: %s\n", h.prefix(), err)
fmt.Printf("[%s] db exec error: %s\n", h.Name(), err)
}
}

func (h *HookSqlite) AfterComm(d *AfterCommData) {
conn, err := h.conn()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

Expand All @@ -88,14 +88,14 @@ func (h *HookSqlite) AfterComm(d *AfterCommData) {
d.Data,
)
if err != nil {
fmt.Printf("[%s] db exec error: %s\n", h.prefix(), err)
fmt.Printf("[%s] db exec error: %s\n", h.Name(), err)
}
}

func (h *HookSqlite) AfterConn(d *AfterConnData) {
conn, err := h.conn()
if err != nil {
fmt.Printf("[%s] %s\n", h.prefix(), err)
fmt.Printf("[%s] %s\n", h.Name(), err)
return
}

Expand All @@ -108,6 +108,6 @@ func (h *HookSqlite) AfterConn(d *AfterConnData) {
d.Elapse,
)
if err != nil {
fmt.Printf("[%s] db exec error: %s\n", h.prefix(), err)
fmt.Printf("[%s] db exec error: %s\n", h.Name(), err)
}
}
4 changes: 2 additions & 2 deletions hook_sqlite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ func TestHookSqliteConst(t *testing.T) {
}
}

func TestHookSqlitePrefix(t *testing.T) {
func TestHookSqliteName(t *testing.T) {
sqlite := &HookSqlite{}
expect := "sqlite"
got := sqlite.prefix()
got := sqlite.Name()
if got != expect {
t.Errorf("expected %s, got %s", expect, got)
}
Expand Down
1 change: 0 additions & 1 deletion plugins.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ func (p *Plugins) load() error {
continue
}

plug.AfterInit()
p.hooks = append(p.hooks, plug)
}

Expand Down
4 changes: 4 additions & 0 deletions server.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ func (s *Server) Start() error {
return err
}
s.Hooks = append(s.Hooks, pl.hooks...)
for _, hook := range s.Hooks {
s.log.Printf("use %s hook", hook.Name())
hook.AfterInit()
}

addr, err := net.ResolveTCPAddr("tcp", fmt.Sprintf("%s:%d", s.Addr, s.Port))
if err != nil {
Expand Down
Binary file modified testdata/warp.sqlite
Binary file not shown.

0 comments on commit 6d164bd

Please sign in to comment.