use low error correction if qr-code content is too long (#18)

This commit is contained in:
Christoph Haas 2021-05-10 09:26:36 +02:00
parent edfecd536a
commit 3ecb0925d6

View File

@ -192,12 +192,21 @@ func (p Peer) GetConfigFile(device Device) ([]byte, error) {
func (p Peer) GetQRCode() ([]byte, error) { func (p Peer) GetQRCode() ([]byte, error) {
png, err := qrcode.Encode(p.Config, qrcode.Medium, 250) png, err := qrcode.Encode(p.Config, qrcode.Medium, 250)
if err != nil { if err == nil {
logrus.WithFields(logrus.Fields{ return png, nil
"err": err, }
}).Error("failed to create qrcode")
if err.Error() != "content too long to encode" {
logrus.Errorf("failed to create qrcode: %v", err)
return nil, errors.Wrap(err, "failed to encode qrcode") return nil, errors.Wrap(err, "failed to encode qrcode")
} }
png, err = qrcode.Encode(p.Config, qrcode.Low, 250)
if err != nil {
logrus.Errorf("failed to create qrcode: %v", err)
return nil, errors.Wrap(err, "failed to encode qrcode")
}
return png, nil return png, nil
} }