// Copyright 2019 PingCAP, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // See the License for the specific language governing permissions and // limitations under the License. package main import ( "context" "fmt" "github.com/pingcap/tidb/plugin" "github.com/pingcap/tidb/sessionctx/variable" ) // Validate implements TiDB plugin's Validate SPI. func Validate(ctx context.Context, m *plugin.Manifest) error { fmt.Println("conn_ip_example validate called") return nil } // OnInit implements TiDB plugin's OnInit SPI. func OnInit(ctx context.Context, manifest *plugin.Manifest) error { fmt.Println("conn_ip_example init called") fmt.Println("read cfg in init", manifest.SysVars["conn_ip_example_test_variable"].Value) return nil } // OnShutdown implements TiDB plugin's OnShutdown SPI. func OnShutdown(ctx context.Context, manifest *plugin.Manifest) error { fmt.Println("conn_ip_examples hutdown called") return nil } // OnGeneralEvent implements TiDB Audit plugin's OnGeneralEvent SPI. func OnGeneralEvent(ctx context.Context, sctx *variable.SessionVars, event plugin.GeneralEvent, cmd string) { fmt.Println("conn_ip_example notifiy called") fmt.Println("variable test: ", variable.GetSysVar("conn_ip_example_test_variable").Value) fmt.Printf("new connection by %s\n", ctx.Value("ip")) return }