From 0778d7de80ebbd6b1b7c7d7d5676655b7706f1f4 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 29 May 2017 23:43:40 -0400 Subject: vendor: update github.com/msteinert/pam (#4216) --- vendor/github.com/msteinert/pam/callback.go | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vendor/github.com/msteinert/pam/callback.go (limited to 'vendor/github.com/msteinert/pam/callback.go') diff --git a/vendor/github.com/msteinert/pam/callback.go b/vendor/github.com/msteinert/pam/callback.go new file mode 100644 index 00000000..672a36e8 --- /dev/null +++ b/vendor/github.com/msteinert/pam/callback.go @@ -0,0 +1,39 @@ +package pam + +import "sync" + +var cb struct { + sync.Mutex + m map[int]interface{} + c int +} + +func init() { + cb.m = make(map[int]interface{}) +} + +func cbAdd(v interface{}) int { + cb.Lock() + defer cb.Unlock() + cb.c++ + cb.m[cb.c] = v + return cb.c +} + +func cbGet(c int) interface{} { + cb.Lock() + defer cb.Unlock() + if v, ok := cb.m[c]; ok { + return v + } + panic("Callback pointer not found") +} + +func cbDelete(c int) { + cb.Lock() + defer cb.Unlock() + if _, ok := cb.m[c]; !ok { + panic("Callback pointer not found") + } + delete(cb.m, c) +} -- cgit v1.2.3