Example #1
0
//export closeSession
func closeSession(handle *C.pam_handle_t, flags C.int, argv []string) C.int {
	fmt.Println("close_session: ", argv)
	hdl := pam.Handle{unsafe.Pointer(handle)}

	tmp, err := hdl.GetModuleData("session-begin")
	if err == nil {
		signIn := tmp.(time.Time)

		fmt.Println("User was logged in for ", time.Now().Sub(signIn))
	} else {
		fmt.Println("User data error: ", err)
	}

	tmp, err = hdl.GetModuleData("fav-colour")
	if err == nil {
		favColour := tmp.(string)
		fmt.Println("Still can't believe their favourite colour is", favColour)
	} else {
		fmt.Println("Test failed, no colour data.")
	}

	return C.PAM_SUCCESS
}