summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/ldap/debug.go
blob: dfddd5f2d03454f6749d23f42df9b3ea6b52804d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package ldap

import (
	"bytes"
	"log"

	ber "github.com/go-asn1-ber/asn1-ber"
)

const LDAP_TRACE_PREFIX = "ldap-trace: "

// debugging type
//     - has a Printf method to write the debug output
type debugging bool

// Enable controls debugging mode.
func (debug *debugging) Enable(b bool) {
	*debug = debugging(b)
}

// Printf writes debug output.
func (debug debugging) Printf(format string, args ...interface{}) {
	if debug {
		format = LDAP_TRACE_PREFIX + format
		log.Printf(format, args...)
	}
}

// PrintPacket dumps a packet.
func (debug debugging) PrintPacket(packet *ber.Packet) {
	if debug {
		var b bytes.Buffer
		ber.WritePacket(&b, packet)
		textToPrint := LDAP_TRACE_PREFIX + b.String()
		log.Printf(textToPrint)
	}
}