Remove dead code
This commit is contained in:
@@ -50,30 +50,15 @@ func (f ConversationFunc) RespondPAM(s Style, msg string) (string, error) {
|
|||||||
return f(s, msg)
|
return f(s, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constructs a new conversation object with a given handler and a newly
|
// cbPAMConv is a wrapper for the conversation callback function.
|
||||||
// allocated pam_conv struct that uses this object as its appdata_ptr.
|
|
||||||
func newConversation(handler ConversationHandler) (*C.struct_pam_conv, int, C.int) {
|
|
||||||
c := cbAdd(handler)
|
|
||||||
conv := &C.struct_pam_conv{}
|
|
||||||
C.init_pam_conv(conv, C.long(c))
|
|
||||||
return conv, c, C.PAM_SUCCESS
|
|
||||||
}
|
|
||||||
|
|
||||||
// Go-side function for processing a single conversational message. Ultimately
|
|
||||||
// this calls the associated ConversationHandler's ResponsePAM callback with data
|
|
||||||
// coming in from a C-side call.
|
|
||||||
//export cbPAMConv
|
//export cbPAMConv
|
||||||
func cbPAMConv(s C.int, msg *C.char, c int) (*C.char, C.int) {
|
func cbPAMConv(s C.int, msg *C.char, c int) (*C.char, C.int) {
|
||||||
var r string
|
var r string
|
||||||
var err error
|
var err error = nil
|
||||||
v := cbGet(c)
|
v := cbGet(c)
|
||||||
switch cb := v.(type) {
|
switch cb := v.(type) {
|
||||||
case ConversationFunc:
|
|
||||||
r, err = cb(Style(s), C.GoString(msg))
|
|
||||||
case ConversationHandler:
|
case ConversationHandler:
|
||||||
r, err = cb.RespondPAM(Style(s), C.GoString(msg))
|
r, err = cb.RespondPAM(Style(s), C.GoString(msg))
|
||||||
default:
|
|
||||||
return nil, C.PAM_CONV_ERR
|
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, C.PAM_CONV_ERR
|
return nil, C.PAM_CONV_ERR
|
||||||
@@ -89,7 +74,8 @@ type Transaction struct {
|
|||||||
c int
|
c int
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finalize a PAM transaction.
|
// transactionFinalizer cleans up the PAM handle and deletes the callback
|
||||||
|
// function.
|
||||||
func transactionFinalizer(t *Transaction) {
|
func transactionFinalizer(t *Transaction) {
|
||||||
C.pam_end(t.handle, t.status)
|
C.pam_end(t.handle, t.status)
|
||||||
cbDelete(t.c)
|
cbDelete(t.c)
|
||||||
@@ -101,11 +87,11 @@ func transactionFinalizer(t *Transaction) {
|
|||||||
// All application calls to PAM begin with Start (or StartFunc). The returned
|
// All application calls to PAM begin with Start (or StartFunc). The returned
|
||||||
// transaction provides an interface to the remainder of the API.
|
// transaction provides an interface to the remainder of the API.
|
||||||
func Start(service, user string, handler ConversationHandler) (*Transaction, error) {
|
func Start(service, user string, handler ConversationHandler) (*Transaction, error) {
|
||||||
t := &Transaction{}
|
t := &Transaction{
|
||||||
t.conv, t.c, t.status = newConversation(handler)
|
conv: &C.struct_pam_conv{},
|
||||||
if t.status != C.PAM_SUCCESS {
|
c: cbAdd(handler),
|
||||||
return nil, t
|
|
||||||
}
|
}
|
||||||
|
C.init_pam_conv(t.conv, C.long(t.c))
|
||||||
runtime.SetFinalizer(t, transactionFinalizer)
|
runtime.SetFinalizer(t, transactionFinalizer)
|
||||||
s := C.CString(service)
|
s := C.CString(service)
|
||||||
defer C.free(unsafe.Pointer(s))
|
defer C.free(unsafe.Pointer(s))
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ func TestPAM_001(t *testing.T) {
|
|||||||
if u.Uid != "0" {
|
if u.Uid != "0" {
|
||||||
t.Skip("run this test as root")
|
t.Skip("run this test as root")
|
||||||
}
|
}
|
||||||
|
p := "secret"
|
||||||
tx, err := StartFunc("", "test", func(s Style, msg string) (string, error) {
|
tx, err := StartFunc("", "test", func(s Style, msg string) (string, error) {
|
||||||
return "secret", nil
|
return p, nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("start #error: %v", err)
|
t.Fatalf("start #error: %v", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user