@@ -43,6 +43,7 @@ type ProbeOptions struct {
4343 Endpoint string
4444 ProxyProtocolMode ProxyProtocolMode
4545 ServerNameIndication string
46+ PrintCertDetails bool
4647}
4748
4849type Signal struct {
@@ -61,7 +62,13 @@ type Signal struct {
6162
6263var errTLSFailure = fmt .Errorf ("TLS failure" )
6364
65+ func (s Signal ) DetailedString () string {
66+ return s .stringer (true )
67+ }
6468func (s Signal ) String () string {
69+ return s .stringer (false )
70+ }
71+ func (s Signal ) stringer (printCertDetails bool ) string {
6572 parts := []string {s .Path }
6673 if s .Error != nil {
6774 parts = append (parts , "ERROR=\" " + s .Error .Error ()+ "\" " )
@@ -81,14 +88,14 @@ func (s Signal) String() string {
8188 if s .PeerSubject != "" {
8289 parts = append (parts , "peer-subject=" + s .PeerSubject )
8390 }
84- if len (s .SANs ) > 0 {
91+ if len (s .SANs ) > 0 && printCertDetails {
8592 parts = append (parts , "SANs=" + strings .Join (s .SANs , "," ))
8693 }
8794
88- if ! s .ValidityNotBefore .IsZero () {
95+ if ! s .ValidityNotBefore .IsZero () && printCertDetails {
8996 parts = append (parts , "validity-not-before=" + s .ValidityNotBefore .Format (time .RFC3339 ))
9097 }
91- if ! s .ValidityNotAfter .IsZero () {
98+ if ! s .ValidityNotAfter .IsZero () && printCertDetails {
9299 parts = append (parts , "validity-not-after=" + s .ValidityNotAfter .Format (time .RFC3339 ))
93100 }
94101
@@ -108,13 +115,15 @@ type prober struct {
108115 proxyProtocolMode ProxyProtocolMode
109116 sni string
110117 signals chan Signal
118+ printCertDetails bool
111119}
112120
113121func NewProber (o ProbeOptions ) (* prober , error ) {
114122 p := & prober {
115123 endpoint : o .Endpoint ,
116124 proxyProtocolMode : o .ProxyProtocolMode ,
117125 sni : o .ServerNameIndication ,
126+ printCertDetails : o .PrintCertDetails ,
118127 }
119128 var err error
120129 p .fqdn , p .port , err = net .SplitHostPort (p .endpoint )
@@ -130,6 +139,7 @@ func NewProber(o ProbeOptions) (*prober, error) {
130139}
131140
132141func (p * prober ) Probe (ctx context.Context ) error {
142+ // TODO: implement Probe function which exposes the signal channel
133143 log := util .CtxLogOrPanic (ctx )
134144 defer log .Sync ()
135145 p .signals = make (chan Signal )
@@ -141,9 +151,9 @@ func (p *prober) Probe(ctx context.Context) error {
141151 for signal := range signals {
142152 if signal .Error != nil {
143153 fmt .Printf ("%s FAILED: %v\n " , signal .Path , signal .Error )
144- } else {
145- fmt .Printf ("%s\n " , signal )
154+ continue
146155 }
156+ fmt .Printf ("%s\n " , signal .stringer (p .printCertDetails ))
147157 }
148158 }(ctx , p .signals )
149159
0 commit comments