diff options
author | Marco Trevisan (Treviño) <[email protected]> | 2023-11-07 11:51:27 +0200 |
---|---|---|
committer | Marco Trevisan (Treviño) <[email protected]> | 2023-11-30 01:16:38 +0100 |
commit | 44c364e364c1eb5ccdfad3b11f574787152adbd2 (patch) | |
tree | 9ac079f8af745a9ace3724c36d90d0027c4fa042 /transaction.go | |
parent | a85a609bbe4f52a2f19a24bcfbfcdb3c23decd45 (diff) |
ci: Use golang-ci linter
Diffstat (limited to 'transaction.go')
-rw-r--r-- | transaction.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/transaction.go b/transaction.go index 96bff63..fcba3d5 100644 --- a/transaction.go +++ b/transaction.go @@ -94,6 +94,7 @@ func cbPAMConv(s C.int, msg *C.char, c C.uintptr_t) (*C.char, C.int) { var err error v := cgo.Handle(c).Value() style := Style(s) + var handler ConversationHandler switch cb := v.(type) { case BinaryConversationHandler: if style == BinaryPrompt { @@ -102,15 +103,18 @@ func cbPAMConv(s C.int, msg *C.char, c C.uintptr_t) (*C.char, C.int) { return nil, C.PAM_CONV_ERR } return (*C.char)(C.CBytes(bytes)), C.PAM_SUCCESS - } else { - r, err = cb.RespondPAM(style, C.GoString(msg)) } + handler = cb case ConversationHandler: if style == BinaryPrompt { return nil, C.PAM_AUTHINFO_UNAVAIL } - r, err = cb.RespondPAM(style, C.GoString(msg)) + handler = cb } + if handler == nil { + return nil, C.PAM_CONV_ERR + } + r, err = handler.RespondPAM(style, C.GoString(msg)) if err != nil { return nil, C.PAM_CONV_ERR } @@ -118,6 +122,8 @@ func cbPAMConv(s C.int, msg *C.char, c C.uintptr_t) (*C.char, C.int) { } // Transaction is the application's handle for a PAM transaction. +// +//nolint:errname type Transaction struct { handle *C.pam_handle_t conv *C.struct_pam_conv @@ -195,7 +201,7 @@ func start(service, user string, handler ConversationHandler, confDir string) (* } func (t *Transaction) Error() string { - return C.GoString(C.pam_strerror(t.handle, C.int(t.status))) + return C.GoString(C.pam_strerror(t.handle, t.status)) } // Item is a an PAM information type. |