Skip to content

Commit 7fd1704

Browse files
authored
inwx: improve sleep calculation (#2086)
1 parent 143aa4f commit 7fd1704

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

providers/dns/inwx/inwx.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,25 +211,27 @@ func (d *DNSProvider) twoFactorAuth(info *goinwx.LoginResponse) error {
211211
time.Sleep(sleep)
212212
}
213213

214-
tan, err := totp.GenerateCode(d.config.SharedSecret, time.Now())
214+
now := time.Now()
215+
216+
tan, err := totp.GenerateCode(d.config.SharedSecret, now)
215217
if err != nil {
216218
return err
217219
}
218220

219-
d.previousUnlock = time.Now()
221+
d.previousUnlock = now.Truncate(30 * time.Second)
220222

221223
return d.client.Account.Unlock(tan)
222224
}
223225

224226
func (d *DNSProvider) computeSleep(now time.Time) time.Duration {
225227
if d.previousUnlock.IsZero() {
226-
return 0 * time.Second
228+
return 0
227229
}
228230

229231
endPeriod := d.previousUnlock.Add(30 * time.Second)
230232
if endPeriod.After(now) {
231233
return endPeriod.Sub(now)
232234
}
233235

234-
return 0 * time.Second
236+
return 0
235237
}

providers/dns/inwx/inwx_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,35 +147,35 @@ func TestLivePresentAndCleanup(t *testing.T) {
147147
func Test_computeSleep(t *testing.T) {
148148
testCases := []struct {
149149
desc string
150-
previous string
150+
now string
151151
expected time.Duration
152152
}{
153153
{
154154
desc: "after 30s",
155-
previous: "2024-01-01T06:29:20Z",
155+
now: "2024-01-01T06:30:30Z",
156156
expected: 0 * time.Second,
157157
},
158158
{
159159
desc: "0s",
160-
previous: "2024-01-01T06:29:30Z",
160+
now: "2024-01-01T06:30:00Z",
161161
expected: 0 * time.Second,
162162
},
163163
{
164164
desc: "before 30s",
165-
previous: "2024-01-01T06:29:50Z", // 10 s
165+
now: "2024-01-01T06:29:40Z", // 10 s
166166
expected: 20 * time.Second,
167167
},
168168
}
169169

170-
now, err := time.Parse(time.RFC3339, "2024-01-01T06:30:00Z")
170+
previous, err := time.Parse(time.RFC3339, "2024-01-01T06:29:30Z")
171171
require.NoError(t, err)
172172

173173
for _, test := range testCases {
174174
test := test
175175
t.Run(test.desc, func(t *testing.T) {
176176
t.Parallel()
177177

178-
previous, err := time.Parse(time.RFC3339, test.previous)
178+
now, err := time.Parse(time.RFC3339, test.now)
179179
require.NoError(t, err)
180180

181181
d := &DNSProvider{previousUnlock: previous}

0 commit comments

Comments
 (0)