Shivaram Lingamneni
ec15d367ba
fix #1387
...
Instead of building a new serialized message for each recipient,
try to cache them.
2020-11-27 00:13:47 -05:00
Shivaram Lingamneni
a0d7d8d028
mention UN[DK]LINE in [DK]LINE help
2020-11-26 12:54:50 -05:00
Shivaram Lingamneni
8d44fa3c3f
fix duplicated JOIN line sent to resuming clients
...
Resuming clients without the resume capability would receive
two JOIN lines per channel.
2020-11-26 00:27:21 -05:00
Shivaram Lingamneni
c57828eb62
documentation updates for proxy v2
2020-11-19 17:01:56 -05:00
Shivaram Lingamneni
3062f97c2b
fix #1389
...
Support PROXY protocol v2, including ahead of plaintext connections
2020-11-19 12:31:58 -05:00
Shivaram Lingamneni
a6a8548466
fix SAJOIN not sending a MODE line where applicable
2020-11-12 11:57:30 -05:00
Shivaram Lingamneni
a8ffb11deb
use server name as source for chanserv mode changes, for consistency
2020-11-12 11:50:28 -05:00
Shivaram Lingamneni
6a6f104899
fix casefolding issue in NS SUSPEND DEL
...
NS SUSPEND DEL incorrectly required the use of the casefolded account name.
2020-11-11 11:09:09 -05:00
Shivaram Lingamneni
4f571c2cf3
implement NS RENAME
...
Fixes #1380
2020-11-10 19:59:12 -05:00
Shivaram Lingamneni
8ad6a53433
fix duplicated nicks in kline message
2020-11-10 11:17:17 -05:00
Shivaram Lingamneni
60ede87ab0
set up new development version
2020-11-08 20:17:22 -05:00
Shivaram Lingamneni
58b5d3c72d
fix channel mode help text
2020-11-08 17:33:45 -05:00
Shivaram Lingamneni
eeb7c6cb91
bump version to 2.4.0
2020-11-07 21:34:21 -05:00
Shivaram Lingamneni
9374a75c7a
implement FAIL CHATHISTORY INVALID_TARGET
2020-11-04 01:54:59 -05:00
Shivaram Lingamneni
dac43e6e76
fix #1370
2020-11-01 18:09:04 -05:00
Shivaram Lingamneni
40118d1533
bump version to 2.4.0-rc1
2020-10-31 22:17:58 -04:00
Shivaram Lingamneni
6513136ea3
fix #1366
...
Include an 'r' flag in RPL_WHOREPLY for registered nicks
2020-10-29 14:25:28 -04:00
Shivaram Lingamneni
5094b9da02
fix strings for NS SUSPEND
2020-10-28 20:32:55 -04:00
Shivaram Lingamneni
2bb2cab6c2
Merge pull request #1361 from slingamn/suspend.5
...
fix #1274
2020-10-28 08:12:46 -07:00
Shivaram Lingamneni
5418e5e794
fix #769
...
Add 379 RPL_WHOISMODES
2020-10-27 18:54:45 -04:00
Shivaram Lingamneni
4296ff02a4
schema change for #1274
2020-10-27 18:30:03 -04:00
Shivaram Lingamneni
1f6afa31d6
fix #1274
...
Enhancements to NS SUSPEND, including stored metadata and the ability
to list suspensions
2020-10-27 18:30:03 -04:00
Shivaram Lingamneni
dc456bd6a4
refactor schema versions to be ints, not strings
2020-10-27 12:26:44 -04:00
Shivaram Lingamneni
70b8bf75c5
Merge pull request #1360 from slingamn/issue861_fakelag
...
fix #861
2020-10-26 20:12:57 -07:00
Shivaram Lingamneni
a6e7e1f321
Merge pull request #1359 from slingamn/deop.1
...
fix #361
2020-10-26 20:12:18 -07:00
Shivaram Lingamneni
610fc5068d
refactor DEOP
...
DEOP is now pure syntactic sugar for /mode #channel -o nick,
the change is attributed to the originating user and not to ChanServ.
2020-10-26 23:08:05 -04:00
Shivaram Lingamneni
2f4431a5fb
fix #861
...
Allow messages-per-window to be 0
2020-10-26 21:06:03 -04:00
Shivaram Lingamneni
b57820150e
no-op fix to SETNAME workaround
2020-10-26 18:06:06 -04:00
Shivaram Lingamneni
9c4b086113
Merge pull request #1355 from slingamn/invite
...
security enhancements for INVITE
2020-10-26 13:30:41 -07:00
Shivaram Lingamneni
c61b09e314
Merge pull request #1358 from slingamn/setname
...
enhancements to SETNAME
2020-10-26 13:30:29 -07:00
Shivaram Lingamneni
5dcb2bb60c
enhancements to SETNAME
...
Address SETNAME UX problems reported by @KoraggKnightWolf in #oragono:
1. No feedback by default on success or failure
2. Multi-word realnames are not correctly interpreted by some clients
2020-10-26 15:31:51 -04:00
Shivaram Lingamneni
6a5ba82f29
Merge pull request #1356 from slingamn/kline
...
validate normalized masks as IRC params
2020-10-26 11:58:45 -07:00
Barry
f010914965
Added ChanServ DEOP command
2020-10-26 18:18:54 +02:00
Shivaram Lingamneni
af2b433195
validate normalized masks as IRC params
2020-10-25 23:32:24 -04:00
Shivaram Lingamneni
4b1e6b04c4
add UNINVITE command ( #1171 )
2020-10-25 22:16:19 -04:00
Shivaram Lingamneni
42d246b557
improve security properties of INVITE
...
See #1171 .
2020-10-25 22:09:17 -04:00
Shivaram Lingamneni
203fc580f4
fix #1049
2020-10-25 13:58:57 -04:00
Shivaram Lingamneni
cf5a426f90
fix #1346
2020-10-22 12:19:19 -04:00
Shivaram Lingamneni
bd40b46639
fix #307
2020-10-21 11:08:55 -04:00
Shivaram Lingamneni
a30e369225
add +u and +U to CHANMODES token
2020-10-20 21:24:47 -04:00
Shivaram Lingamneni
f019f62167
Merge pull request #1340 from slingamn/coerce_ident
...
replace suppress-ident with coerce-ident; make coerce-ident a recommended default
2020-10-20 15:31:13 -07:00
Shivaram Lingamneni
76e3d67b66
replace suppress-ident with coerce-ident
2020-10-20 13:48:19 -04:00
Shivaram Lingamneni
5a9e79f06c
fix #1178
2020-10-20 13:37:38 -04:00
Shivaram Lingamneni
4737578748
Merge pull request #1339 from slingamn/issue1337
...
fix #1337
2020-10-19 08:22:00 -07:00
Shivaram Lingamneni
a37a91694c
fix #1337
2020-10-19 10:52:38 -04:00
Shivaram Lingamneni
347cc30ed4
fix a potential conflict with delayed verification of confusable names
...
0. Enable email verification
1. Register `dog`
2. Register `d0g`
3. Verify `dog`
4. Verify `d0g`: verification succeeds but the nick cannot be used
2020-10-16 17:21:09 -04:00
Shivaram Lingamneni
cf46377863
fix #1332
2020-10-16 17:21:09 -04:00
Shivaram Lingamneni
c639aac241
log the unfolded account name during registration
2020-10-16 17:21:09 -04:00
Shivaram Lingamneni
af8ed62de8
schema change for #1330
2020-10-16 12:08:23 -04:00
Shivaram Lingamneni
ea68b9de0a
fix #1330
2020-10-16 12:03:38 -04:00
Shivaram Lingamneni
898f8aad07
add a schema change
2020-10-16 09:11:47 -04:00
Shivaram Lingamneni
4b2a094921
fix #1327
2020-10-16 00:58:12 -04:00
Shivaram Lingamneni
328f6013f3
fix #1326
2020-10-15 13:03:44 -04:00
Shivaram Lingamneni
1d74185b7d
fix #1322
2020-10-13 00:38:23 -04:00
Shivaram Lingamneni
82be9a8423
support migrating anope databases
2020-10-12 15:06:17 -04:00
Shivaram Lingamneni
4336f56204
Merge pull request #1317 from slingamn/hidden_userhost
...
USERHOST needs to respect hidden operators as well
2020-10-09 11:34:35 -07:00
Shivaram Lingamneni
4ee97ddb43
USERHOST needs to respect hidden operators as well
2020-10-09 12:29:09 -04:00
Shivaram Lingamneni
8cd7085d0b
separate rawHostname and cloakedHostname for always-on clients
...
This affects RPL_WHOISACTUALLY and possibly others.
2020-10-09 11:11:06 -04:00
Shivaram Lingamneni
78b2f61707
fix #1194
2020-10-09 08:03:26 -04:00
Shivaram Lingamneni
c470f63daf
fix #1312
2020-10-08 16:33:27 -04:00
Shivaram Lingamneni
7fd5bc8d81
review fix
2020-10-07 09:20:26 -04:00
Shivaram Lingamneni
754fb79cdd
review fixes
2020-10-07 08:54:46 -04:00
Shivaram Lingamneni
9ed789f67c
fix #1075
2020-10-06 18:04:29 -04:00
Shivaram Lingamneni
509d3f1fdd
Merge pull request #1301 from oragono/atheme_migration
...
first draft of atheme migration code
2020-10-06 15:03:08 -07:00
Shivaram Lingamneni
1ec029a53b
review fixes
...
1. Avoid undefined behavior of time.Time{}.UnixNano()
2. Times should be compared with Equal()
2020-10-06 17:56:13 -04:00
Shivaram Lingamneni
a19324b948
fix #1293
2020-10-05 07:35:18 -04:00
Shivaram Lingamneni
32fc9f226f
fix #1303
2020-10-05 06:28:19 -04:00
Shivaram Lingamneni
7a6413ea2c
first draft of atheme migration code
2020-10-02 16:48:37 -04:00
Shivaram Lingamneni
8c99dcb2c7
fix #484
2020-10-02 08:13:52 -04:00
Shivaram Lingamneni
c279b2d14c
DRY mode apply code
...
ParseUserModeChanges and ParseChannelModeChanges already validate
that the modes are modifiable, so there's no need to repeat it here.
2020-10-01 19:52:50 -04:00
Shivaram Lingamneni
b426ba628a
actually enable the +T no-ctcp umode
2020-10-01 19:21:42 -04:00
Shivaram Lingamneni
127a03ccf3
fix #1295
2020-10-01 09:42:08 -04:00
Shivaram Lingamneni
475d7ba418
fix non-linux builds
2020-09-29 15:22:12 -04:00
Shivaram Lingamneni
f12384c5a6
Output unix socket credentials where applicable
...
thanks @ajaspers!
2020-09-24 10:59:30 -04:00
Shivaram Lingamneni
a6d793a2d5
pointless optimization
2020-09-24 08:35:03 -04:00
Shivaram Lingamneni
1bbf6ab936
Merge pull request #1286 from slingamn/issue1284.1
...
fix #1284
2020-09-24 05:00:14 -07:00
Shivaram Lingamneni
d9f1c8e1c4
require local_ban capab to see uncloaked IPs
2020-09-24 07:25:04 -04:00
Shivaram Lingamneni
8b01d19336
Merge pull request #1280 from slingamn/issue1277_sanick
...
fix #1277
2020-09-24 04:10:44 -07:00
Shivaram Lingamneni
bcdf61bd7a
fix #1284
2020-09-24 02:44:12 -04:00
Shivaram Lingamneni
7d5a071a34
fix #1277
2020-09-23 02:30:34 -04:00
Shivaram Lingamneni
1a9f501383
fix #414
2020-09-23 02:25:29 -04:00
Shivaram Lingamneni
b478a13671
fix NICK responses for SANICK
2020-09-21 20:30:42 -04:00
Alex Jaspersen
504659abb5
Add +M (only registered/voice can speak) chanmode.
...
Add chanmode preventing speech to error message.
Fixes #1182 .
2020-09-21 16:05:00 -07:00
Alex Jaspersen
ca2132ff09
Add NickServ "CLIENTS LIST" and "CLIENTS LOGOUT".
...
CLIENTS LIST shows information about clients attached to a nick.
CLIENTS LOGOUT allows individual (or all) sessions to be logged out.
SESSIONS is now an alias for CLIENTS LIST.
Fixes #1072 .
2020-09-19 10:19:41 -07:00
Shivaram Lingamneni
498d76b131
fix #1240
2020-09-16 12:03:06 -04:00
Shivaram Lingamneni
6a0d11d449
make roleplay.enabled default to false when unset
...
See #1240 .
2020-09-16 11:32:52 -04:00
Shivaram Lingamneni
0073b98505
fix (*http.Server).Serve() exiting on ErrBadProxyLine
...
anything other than a (net.Error) with Temporary() == true
is treated as a fatal error that causes the http server to exit
2020-09-16 06:12:27 -04:00
Shivaram Lingamneni
f3cdf8442a
pass the require-sasl message through from the script
2020-09-14 08:16:03 -04:00
Shivaram Lingamneni
1a98a37a75
scripting API for IP bans
...
See discussion on #68 .
2020-09-14 04:28:12 -04:00
Shivaram Lingamneni
32bb10f6c6
make channel founder unkickable
2020-09-09 23:15:00 -04:00
Shivaram Lingamneni
20aaa1ab06
fix #1259
2020-09-09 11:46:05 -04:00
Shivaram Lingamneni
af056f26a9
fixes and refactoring
2020-09-09 05:35:04 -04:00
Shivaram Lingamneni
8102d1ddb6
Merge remote-tracking branch 'origin/master' into master+relaymsg
2020-09-09 03:55:41 -04:00
Shivaram Lingamneni
307adba8bd
fix #1213
2020-09-07 06:00:53 -04:00
Shivaram Lingamneni
60db9536f4
Merge pull request #1241 from slingamn/restricted_stringset
...
use utils.StringSet in more places
2020-09-05 22:31:17 -07:00
Shivaram Lingamneni
bfb3fd702a
Merge pull request #1249 from jesopo/pong-params
...
PONG param 0 should be server name
2020-09-05 22:30:50 -07:00
Shivaram Lingamneni
f589a673a7
set up new development version
2020-09-06 01:21:10 -04:00
Shivaram Lingamneni
e43db479ca
bump version to 2.3.0
2020-09-06 01:02:05 -04:00
Shivaram Lingamneni
ed8de2a77a
remove dead code
2020-09-03 18:37:18 -04:00
Shivaram Lingamneni
71cdc43d9a
fix #1254
2020-09-01 02:41:15 -04:00
Shivaram Lingamneni
f58e66152d
bump version to 2.3.0-rc2
2020-08-30 02:29:21 -04:00
Shivaram Lingamneni
01726f8935
fix #1252
2020-08-29 23:40:49 -04:00
Shivaram Lingamneni
3bcf67b956
fix #1251
2020-08-29 21:42:27 -04:00
jesopo
574b07513c
PONG param 0 should be server name
...
fix #1248
2020-08-26 09:18:53 +00:00
Shivaram Lingamneni
20fcbe5147
remove stray references to timeout enforcement
...
These should have been removed in #1027 .
2020-08-25 14:11:13 -04:00
Shivaram Lingamneni
ddb8400124
include go version even without the git hash
2020-08-23 21:59:19 -04:00
Shivaram Lingamneni
6628a3d1c6
fix #1244
2020-08-23 18:11:10 -04:00
Shivaram Lingamneni
4c0144c708
bump version to 2.3.0-rc1
2020-08-23 00:20:20 -04:00
Shivaram Lingamneni
1dd0c432fd
use utils.StringSet in more places
2020-08-22 22:43:21 -04:00
Shivaram Lingamneni
b1c3a1467a
clean up handling of no-op nick changes
2020-08-22 22:26:50 -04:00
Shivaram Lingamneni
e706124852
correct trailing space on +R usermode documentation
2020-08-13 13:17:31 -04:00
Shivaram Lingamneni
682f8f66c5
add compiler version to INFO output
2020-08-10 18:14:22 -04:00
Shivaram Lingamneni
c50c267d3c
better debug logline for failed message building
2020-08-10 17:33:24 -04:00
Shivaram Lingamneni
b54d0f8f34
add timer coalescing for the common case
2020-08-08 23:07:53 -04:00
Shivaram Lingamneni
a3e5c9e98c
fix #1229
2020-08-07 18:11:39 -04:00
Shivaram Lingamneni
c78253fd93
more memory-efficient implementation of line reading
2020-08-07 01:10:46 -04:00
Shivaram Lingamneni
1c4f9daae7
remove some dead code
2020-08-07 00:16:04 -04:00
Shivaram Lingamneni
55b21fa86c
Merge pull request #1227 from slingamn/issue1225.2
...
fix #1225
2020-08-06 01:19:39 -07:00
Shivaram Lingamneni
88b09e5919
Merge pull request #1226 from slingamn/websocket_dos
...
mitigate a potential DoS against websocket listeners
2020-08-06 01:08:01 -07:00
Shivaram Lingamneni
06882a9b89
fix #1225
2020-08-06 03:28:10 -04:00
Shivaram Lingamneni
7b28fc73e6
Merge pull request #1223 from hhirtz/rename
...
Update draft/rename impl
2020-08-05 14:02:15 -07:00
Hubert Hirtz
f6d5fe812f
Update draft/rename implementation
...
Link to the new draft PR:
<https://github.com/ircv3/ircv3-specifications/pull/420 >
Changes in the spec:
- Use standard replies instead of numerics:
<https://github.com/ircv3/ircv3-specifications/pull/420/files#diff-70e90beef48dc9cf5d784d1e179ea822R44 >
- Allow RENAME to a different case:
<https://github.com/ircv3/ircv3-specifications/pull/420/files#diff-70e90beef48dc9cf5d784d1e179ea822R42 >
This commit makes oragono send the PART-JOIN fallback even on case-only
changes. This is so that clients don't have to worry about oragono's
UTF8 casefolding. See the following comments for further info:
<https://github.com/ircv3/ircv3-specifications/pull/420#issuecomment-668770837 >
Misc fixes:
- Remove unused variable,
- Add missing calls to utils.SafeErrorParam,
- Don't fill replies with the user-provided "oldName", for the same
reason as sending the PART-JOIN fallback.
2020-08-05 22:46:30 +02:00
Shivaram Lingamneni
aad39024b9
mitigate a potential DoS against websocket listeners
...
Websocket listeners would process an arbitrary number of invalid
(non-text or blank) messages without throttling. This imposes fakelag
on such messages by treating them as blank lines.
2020-08-05 15:00:39 -04:00
Shivaram Lingamneni
df8be72c6f
move StringSet to utils package
2020-08-04 21:54:03 -04:00
Shivaram Lingamneni
ddac7d94a8
use ChannelSet
2020-08-04 21:46:07 -04:00
Shivaram Lingamneni
15c54e80de
clean up some error handling
2020-08-03 23:57:42 -04:00
Shivaram Lingamneni
9000383f88
Move config errors to call sites
...
Since allocating them is rare.
2020-08-03 12:55:52 -04:00
Shivaram Lingamneni
6a2fba9812
make it easier to patch out the maximum line length
2020-08-03 12:51:04 -04:00
Shivaram Lingamneni
470756cd3e
fix an edge case with /NS SASET user always-on true
...
If force-nick-equals-account is disabled, then this could cause
a client with a non-reserved (or grouped) nick to become always-on.
(This can't happen with `/NS SET always-on true` because we check in
advance.)
2020-07-27 06:08:06 -04:00
Shivaram Lingamneni
027886046c
clean up always-on state machine
2020-07-27 00:21:16 -04:00
Shivaram Lingamneni
dc90b3c910
Merge pull request #1211 from slingamn/issue1204_echomessage.3
...
fix #1204
2020-07-26 03:11:27 -07:00
Shivaram Lingamneni
4bb4d02729
Merge pull request #1200 from slingamn/issue1190_remove_offerlist.1
...
fix #1190
2020-07-26 03:11:12 -07:00
Shivaram Lingamneni
6fbbcbc44f
set up v2.3.0-unreleased
2020-07-26 06:00:24 -04:00
Shivaram Lingamneni
58be8463c9
bump version to 2.2.0
2020-07-26 05:47:18 -04:00
Shivaram Lingamneni
d679d21ac0
fix #1216
2020-07-26 04:11:39 -04:00
Shivaram Lingamneni
bcf581f63d
fix #1214
2020-07-26 04:03:07 -04:00
Shivaram Lingamneni
6d18a1a78c
tweak addEchoMessage signature
2020-07-24 02:55:46 -04:00
Shivaram Lingamneni
28d4971f36
fix #1204
2020-07-24 02:46:02 -04:00
Shivaram Lingamneni
7a16f166c5
Merge pull request #1207 from slingamn/awaystring
...
tweaks to auto-away
2020-07-21 23:08:50 -07:00
Shivaram Lingamneni
b5f0f9a3ce
Merge pull request #1208 from slingamn/setpassword
...
alias for NICKSERV SET PASSWORD
2020-07-21 23:08:41 -07:00
Shivaram Lingamneni
af009a5bc1
fix 2-parameter case for *playback
2020-07-21 16:33:17 -04:00
Shivaram Lingamneni
e6e55bbf29
remove 'history' batch type
...
This was from ircv3-specifications #362 , which is now obsolete.
2020-07-21 15:26:03 -04:00
Shivaram Lingamneni
f193298dcd
alias for NICKSERV SET PASSWORD
2020-07-21 01:05:13 -04:00
Shivaram Lingamneni
eaae3165f2
don't trigger auto-away if the client is already away
2020-07-20 17:05:29 -04:00
Shivaram Lingamneni
6916dbeae0
use consistent phrase for auto-away message
2020-07-20 16:58:41 -04:00
Shivaram Lingamneni
562b85c1c0
simplify some logic
2020-07-20 14:10:43 -04:00
Shivaram Lingamneni
e827bc0f9c
fix #1205
2020-07-20 04:28:17 -04:00
Shivaram Lingamneni
a4343bf77d
bump version to 2.2.0-rc1
2020-07-19 02:25:25 -04:00
Shivaram Lingamneni
04844e0a00
Merge pull request #1196 from slingamn/changelog.1
...
add changelog and documentation updates
2020-07-18 22:59:45 -07:00
Shivaram Lingamneni
ffd00e1aff
minor optimization to Client.Friends
2020-07-17 04:53:30 -04:00
Shivaram Lingamneni
32c58c1e1f
fix #1190
2020-07-17 04:19:33 -04:00
Shivaram Lingamneni
93530ae397
fix #1198
2020-07-17 02:54:43 -04:00
Shivaram Lingamneni
9e3ad5aff1
fix #1060
2020-07-15 21:57:59 -04:00
Shivaram Lingamneni
a99c893f9b
Merge branch 'realname_again'
2020-07-12 16:49:30 -04:00
Shivaram Lingamneni
b3becbf08e
clean up no-op
2020-07-12 16:47:17 -04:00
Shivaram Lingamneni
77184c1625
restore transition mechanism
2020-07-12 16:47:11 -04:00
Shivaram Lingamneni
ad32a01c12
Merge pull request #1193 from slingamn/whox.2
...
refactor WhoFields to use value receivers
2020-07-12 13:41:49 -07:00
Shivaram Lingamneni
a6d41109d0
restore multiprefix support in RPL_WHOREPLY
2020-07-12 16:40:11 -04:00
Conrad Lukawski
6f8711da3b
Persist realname for always-on clients
2020-07-12 14:46:36 -04:00
Shivaram Lingamneni
358c85e697
Merge pull request #1191 from slingamn/moderation.3
...
enhancements to moderation (#1134 , #1135 )
2020-07-12 11:03:34 -07:00
Shivaram Lingamneni
0a6c1f7cc6
Merge pull request #1189 from slingamn/tagmsg_storage.1
...
make TAGMSG storage configurable
2020-07-12 10:57:00 -07:00
Shivaram Lingamneni
97417f4c32
refactor WhoFields to use value receivers
2020-07-12 13:45:29 -04:00
Shivaram Lingamneni
bdfee9cb39
Merge pull request #1184 from jesopo/whox
...
implement WHOX
2020-07-11 19:36:04 -07:00
jesopo
518b21e5aa
implement WHOX
2020-07-11 16:45:02 +01:00
Shivaram Lingamneni
a7ca6601c7
enhancements to moderation ( #1134 , #1135 )
2020-07-10 17:09:02 -04:00
Shivaram Lingamneni
57f2857e83
Merge pull request #1185 from slingamn/wrongsource
...
fix incorrect source of some nickserv messages
2020-07-09 19:44:30 -07:00
Shivaram Lingamneni
bca3dd0b41
make TAGMSG storage configurable
2020-07-09 20:17:50 -04:00
Shivaram Lingamneni
8dd25f66bc
review fix
2020-07-09 04:37:30 -04:00
Shivaram Lingamneni
6ea2eb367d
fix #328 (implement DEFCON)
2020-07-09 02:16:51 -04:00
Shivaram Lingamneni
7dd25c6ac7
fix incorrect source of some nickserv messages
2020-07-08 21:45:13 -04:00
Shivaram Lingamneni
39269a903b
fix #1179
2020-07-06 04:29:21 -04:00
Shivaram Lingamneni
ed0d31e28e
review feedback: fix incorrect sts-only RPL_ISUPPORT
2020-07-02 05:13:28 -04:00
Shivaram Lingamneni
dca3965fd3
ensure STS-only 005 is a trailing
2020-07-02 04:00:51 -04:00
Shivaram Lingamneni
f73b389ceb
fix #802
2020-07-02 03:38:20 -04:00
Shivaram Lingamneni
09b74aaa37
Merge pull request #1169 from slingamn/banrace.2
...
fix #1166 and #1168
2020-07-01 02:41:46 -07:00
Shivaram Lingamneni
0b0b1499b0
fix #1167
2020-07-01 04:20:27 -04:00
Shivaram Lingamneni
067e62ad5e
fix #1166 and #1168
2020-07-01 03:52:55 -04:00
Shivaram Lingamneni
79764cd549
Merge pull request #1163 from slingamn/list_issue1161
...
fix #1161
2020-06-30 17:43:48 -07:00
Shivaram Lingamneni
70f533ee07
fix #1155
2020-06-29 21:29:28 -04:00
Shivaram Lingamneni
a7107bfb67
Merge pull request #1156 from slingamn/lastseen
...
tweaks to lastSeen persistence
2020-06-29 18:04:55 -07:00
Shivaram Lingamneni
696980367d
fix #1161
2020-06-29 15:41:29 -04:00
Shivaram Lingamneni
fe2332f0cd
remove a stray documentation line
2020-06-29 02:12:24 -04:00
Shivaram Lingamneni
0f04acaa40
persist last seen on shutdown
2020-06-29 00:38:05 -04:00
Shivaram Lingamneni
a38d375bda
delete always-on modes on unregistration
2020-06-29 00:38:05 -04:00
Shivaram Lingamneni
e22adf47ca
increase write interval for lastSeen
2020-06-29 00:38:05 -04:00
Shivaram Lingamneni
9aa53aa3aa
update lastSeen on reattach
2020-06-29 00:38:05 -04:00
Shivaram Lingamneni
d7a62223a0
Merge pull request #1123 from clukawski/no-ctcp-user-mode
...
Add +T no-CTCP usermode
2020-06-27 21:13:24 -07:00
Conrad Lukawski
fca2900918
Add +T no-CTCP usermode
2020-06-28 00:04:42 -04:00
Shivaram Lingamneni
089a267070
delete some unused fields
2020-06-24 16:50:07 -04:00
Shivaram Lingamneni
ba68358c21
Merge pull request #1152 from slingamn/utf8.1
...
fix #1151
2020-06-23 01:02:59 -07:00
Shivaram Lingamneni
8cadc7340a
don't trim line endings in IRCStreamConn
...
Doesn't help if the line ends with regular \n only,
and the parser has to account for \r and \n anyway
2020-06-23 03:25:20 -04:00
Shivaram Lingamneni
28a0ec86b5
simplify Socket.Read
2020-06-23 03:25:20 -04:00
Shivaram Lingamneni
7ee7b1aab5
Merge pull request #1150 from slingamn/monitor.1
...
fix #1053 , #1083
2020-06-22 20:25:27 -07:00
Shivaram Lingamneni
0e7557c12d
Merge pull request #1149 from slingamn/issue1059_certfp
...
fix #1059
2020-06-22 20:23:15 -07:00
Shivaram Lingamneni
be138e4d71
make comment consistent with review fix
2020-06-22 22:34:09 -04:00
Shivaram Lingamneni
58d3d1276f
review fix
2020-06-22 18:53:54 -04:00
Shivaram Lingamneni
21e604860f
add an explanatory comment
2020-06-22 15:56:47 -04:00
Shivaram Lingamneni
a4f9e08a85
fix #1151
2020-06-22 15:50:28 -04:00
Shivaram Lingamneni
cb530050f1
fix #1053 , #1083
2020-06-21 23:51:31 -04:00
Shivaram Lingamneni
97789cde7e
fix #1059
2020-06-21 18:42:45 -04:00
Shivaram Lingamneni
01bd04a8ff
fix #1050
2020-06-21 18:32:57 -04:00
Shivaram Lingamneni
ca79da87b1
fix disabling of autoreplay-missed
2020-06-18 04:32:54 -04:00
Shivaram Lingamneni
17cd831319
fix #1144
2020-06-18 03:38:00 -04:00
Shivaram Lingamneni
91fa3b30b0
fix the corresponding bug for certfp authentication
2020-06-17 03:09:20 -04:00
Shivaram Lingamneni
9c26c45607
fix a bug in authscript fallback handling
2020-06-17 02:19:25 -04:00
Shivaram Lingamneni
114e359347
remove ldap
2020-06-17 02:15:05 -04:00
Daniel Oaks
fb55cc3390
Ignore some dodgy TL strings, fix another dodgy string
2020-06-16 20:33:10 +10:00
Shivaram Lingamneni
784078d693
fix bug introduced in #1138
2020-06-16 05:10:09 -04:00
Shivaram Lingamneni
90e697f454
read device ID from SASL as well
2020-06-16 04:58:29 -04:00
Shivaram Lingamneni
e61e0143bd
refactor/enhance jwt signing
2020-06-15 14:34:58 -04:00
Shivaram Lingamneni
bfeba1f2f3
remove client join time tracking
2020-06-15 14:34:58 -04:00
Daniel Oaks
6bee1f6d6a
Review fixes
2020-06-15 14:34:58 -04:00
Daniel Oaks
4164c643e6
Remember when client joins channels, expose in EXTJWT
2020-06-15 14:34:58 -04:00
Daniel Oaks
9b998a7582
Allow custom JWT service expiry times
2020-06-15 14:34:58 -04:00
Daniel Oaks
0bbb5d121d
Basic EXTJWT support
2020-06-15 14:34:58 -04:00
Shivaram Lingamneni
df1be01f54
simplify lastSeen handling
2020-06-14 13:52:29 -04:00
Shivaram Lingamneni
218bea5a3e
fix #843
2020-06-12 16:26:27 -04:00
Shivaram Lingamneni
d33a084bb6
fix #1125
2020-06-09 18:17:48 -04:00
Shivaram Lingamneni
00e2c2816b
use strings.Builder instead of bytes.Buffer where applicable
2020-06-08 23:38:10 -04:00
Daniel Oaks
48509ea852
Review fixes
2020-06-09 02:05:29 +10:00
Daniel Oaks
4535c82fd3
Review fix
2020-06-08 15:25:59 +10:00
Daniel Oaks
efd3152bfb
Add relayed messages to channel history
2020-06-08 15:22:41 +10:00
Daniel Oaks
4ecd7fdf43
Allow configuring relay
2020-06-08 15:17:45 +10:00
Daniel Oaks
4ee49f8450
Initial RELAYMSG implementation
2020-06-08 10:19:28 +10:00
Daniel Oaks
6426b3d6ed
Copy Insp's new BOT ISUPPORT token and WHO behaviour
2020-06-07 16:11:30 +10:00
Shivaram Lingamneni
8f778c57a3
test more string cases
2020-06-04 18:40:14 -04:00
Shivaram Lingamneni
cfec0721fe
Merge pull request #1111 from slingamn/shellauth.1
...
fix #1107
2020-06-04 07:46:23 -07:00
Shivaram Lingamneni
75e9476026
review fix
2020-06-04 02:07:39 -04:00
Shivaram Lingamneni
61738782c0
fix #1107
2020-06-04 01:21:56 -04:00
Shivaram Lingamneni
e70acf4c17
fix #1108
2020-06-02 19:05:51 -04:00
Shivaram Lingamneni
0e570ba8ad
fix #1078
2020-06-02 10:00:43 -04:00
Shivaram Lingamneni
c14a9448cc
print full git hash in RPL_INFO
2020-06-01 13:18:12 -04:00
Shivaram Lingamneni
32ee9440c8
fix #1027
2020-06-01 11:55:53 -04:00
Shivaram Lingamneni
44aebf44b7
Merge pull request #1070 from jesopo/isupport-equals
...
don't add trailing = to ISUPPORT tokens when value is empty string
2020-05-31 21:30:17 -07:00
Shivaram Lingamneni
d4e24bbb26
bump to next development version
2020-06-01 00:27:16 -04:00
Shivaram Lingamneni
8430fec333
Merge pull request #1056 from jesopo/services-ctcp
...
handle CTCP VERSION, PING and TIME for services pseudo-users
2020-05-31 21:26:32 -07:00
Shivaram Lingamneni
34b2c3dc99
bump version to 2.1.0
2020-05-31 23:56:25 -04:00
Shivaram Lingamneni
d7c8b96345
make a message less confusing
2020-05-31 14:01:46 -04:00
Shivaram Lingamneni
8c1bae3ea1
Merge pull request #1048 from slingamn/documentation_fixes
...
documentation fixes
2020-05-31 01:00:38 -07:00
Shivaram Lingamneni
805da6780d
Merge pull request #1094 from slingamn/targmax
...
fix #1090
2020-05-30 20:59:44 -07:00
Shivaram Lingamneni
aafc89feaa
Merge remote-tracking branch 'origin/master' into monoffline
2020-05-30 23:25:25 -04:00
Shivaram Lingamneni
6caa8c1df8
Merge pull request #1082 from slingamn/rplmyinfo.1
...
fix #1058
2020-05-30 20:17:37 -07:00
Shivaram Lingamneni
9775b7d318
Merge pull request #1081 from slingamn/restricted_nicknames
...
fix #1080
2020-05-30 20:16:39 -07:00
Shivaram Lingamneni
2d5faaafaa
Merge pull request #1079 from ajaspers/counts
...
Apply default user modes just before registration.
2020-05-30 20:15:46 -07:00
Shivaram Lingamneni
3025b5f46d
fix #1090
2020-05-30 22:40:21 -04:00
Alex Jaspersen
2cb91bab04
Fix issue with one-character args in ArgsToStrings.
2020-05-30 15:45:43 +00:00
Shivaram Lingamneni
2def06b98f
fix #1076
2020-05-28 18:34:43 -04:00
Shivaram Lingamneni
beea32adfe
fix #1058
2020-05-28 14:42:24 -04:00
Shivaram Lingamneni
1477dab604
fix #1080
2020-05-28 13:16:17 -04:00
Alex Jaspersen
0241e0c31d
Apply default user modes just before registration.
...
Previously, we were applying defaults before the user had completed
registration. This meant that the number of invisible users was
incremented when the user connected, and then the total was incremented
when registration was completed.
Now both counters are updated at the same time. If a user disconnects
prior to registration, +i has not yet been applied so it would not be
decremented.
2020-05-28 15:53:14 +00:00
Shivaram Lingamneni
9177e785c5
add a config sanity check
2020-05-28 01:18:19 -04:00
Shivaram Lingamneni
2389a21de3
add snomask documentation
2020-05-27 09:57:27 -04:00
jesopo
5fbf9c650e
isupport List.Tokens map[string]*string -> map[string]string
2020-05-27 00:16:33 +01:00
jesopo
8eee127e4d
don't add trailing = to ISUPPORT tokens when value is empty string
2020-05-26 23:51:28 +01:00
Shivaram Lingamneni
c1d4c5596d
Merge pull request #1063 from slingamn/history_registeredonly
...
fix #1061
2020-05-26 13:22:12 -07:00
Shivaram Lingamneni
82fbfd0c00
fix #1061
2020-05-26 12:57:24 -04:00
Shivaram Lingamneni
6aa9a56242
fix #1057
2020-05-26 10:56:24 -04:00
jesopo
e7584233ae
handle CTCP VERSION, PING and TIME for services pseudo-users
2020-05-26 13:42:28 +01:00
Alex Jaspersen
b7c9fb56c2
Ignore non-privmsg commands to services.
...
This avoids "No such nick" responses to +draft/typing TAGMSG, etc.
2020-05-25 14:47:09 +00:00
Shivaram Lingamneni
9a555f6f30
bump to 2.1.0-rc1
2020-05-24 20:40:59 -04:00
Shivaram Lingamneni
b80f92b2aa
Merge pull request #1044 from slingamn/tagmsg_fix
...
fix TAGMSG playback
2020-05-22 14:41:01 -07:00
Shivaram Lingamneni
2f20034bb7
fix TAGMSG playback
...
1. TAGMSG were incorrectly being considered multilines, because
Is512() was checking the wrong thing
2. Playback of TAGMSG should depend on event-playback, not on message-tags
2020-05-22 12:07:53 -04:00
Alex Jaspersen
e0f91f5649
/ns erase should confirm with /ns erase rather than unregister.
2020-05-22 14:44:35 +00:00
Shivaram Lingamneni
4595ed68a9
Merge pull request #1040 from slingamn/build_again.2
...
tweak version strings again
2020-05-21 10:49:53 -07:00
Shivaram Lingamneni
464d0be949
tweak version strings again
2020-05-21 11:42:17 -04:00
Shivaram Lingamneni
c45e76460a
clean up account-notify logout notification
...
don't need to send account-notify * (logout notification)
because either we never sent the initial account-notify
(if we are being logged out as part of fixupNickEqualsAccount)
or else we are immediately going to kill the client
(if we are being logged out as part of unregister/erase)
2020-05-21 11:14:12 -04:00
Shivaram Lingamneni
06b2cb2efc
Merge pull request #1036 from slingamn/account_persistence.3
...
last round of feature changes
2020-05-20 04:58:57 -07:00
Shivaram Lingamneni
5345fc35dd
Merge pull request #1032 from slingamn/history_enable
...
fix #1030
2020-05-20 04:33:35 -07:00
Shivaram Lingamneni
ef0aa20cff
fix #1035
2020-05-19 22:46:23 -04:00
Shivaram Lingamneni
4d50607c79
add persistence for user modes
2020-05-19 22:46:23 -04:00
Shivaram Lingamneni
a0f4e90b7e
add auto-away
2020-05-19 22:46:23 -04:00
Shivaram Lingamneni
d7cdaf1a90
correct old proxiedConn name
2020-05-19 09:37:06 -04:00
Shivaram Lingamneni
b2483f5cf2
fix #1030
2020-05-19 08:01:10 -04:00
Shivaram Lingamneni
a95c44696f
review fix
2020-05-18 12:33:26 -04:00
Shivaram Lingamneni
b494c1ec35
make it clearer when rehash has completed
2020-05-18 11:37:56 -04:00
Shivaram Lingamneni
bced409e78
unconditionally destroy the client on unregister
...
This avoids conditions where two sessions can be attached to the same client
while not logged into an account.
2020-05-18 05:39:02 -04:00
Shivaram Lingamneni
df2dfb7270
HistServ is a real service now, remove special casing
2020-05-18 05:11:44 -04:00
Shivaram Lingamneni
8bebba97c3
Merge pull request #1018 from slingamn/account_notify
...
include account-notify in the response batch
2020-05-18 01:00:27 -07:00
Shivaram Lingamneni
922d5c58e2
Merge pull request #1025 from slingamn/plan9
...
fix plan9 support
2020-05-18 00:59:02 -07:00
Shivaram Lingamneni
6028953ed4
Merge pull request #1024 from slingamn/issue1020_password.3
...
fix #1020
2020-05-18 00:58:51 -07:00
Shivaram Lingamneni
aa79706165
Merge pull request #1023 from slingamn/issue1021_modeparam
...
fix #1021
2020-05-18 00:58:35 -07:00
Shivaram Lingamneni
4d21d78f49
explanatory comments
2020-05-18 03:35:58 -04:00
Shivaram Lingamneni
ccfc059755
fix plan9 support
2020-05-17 20:53:08 -04:00
Shivaram Lingamneni
67150bc8f7
fix #1020
2020-05-17 18:12:24 -04:00
Shivaram Lingamneni
2f9234318c
fix #1021
2020-05-17 14:07:38 -04:00
Shivaram Lingamneni
a397756882
fix #1019
2020-05-17 13:39:37 -04:00
Shivaram Lingamneni
855eb786af
include account-notify in the response batch
2020-05-17 11:52:32 -04:00
Alex Jaspersen
3468a8cb8a
Add support for Unix domain sockets.
...
This adds a new configuration option, socket-path, instead of using
host.
2020-05-17 05:04:03 +00:00
Shivaram Lingamneni
66561771e6
Revert "Add support for Unix domain sockets"
2020-05-17 00:30:02 -04:00
Shivaram Lingamneni
045dd89c41
Merge pull request #1013 from ajaspers/mysql
...
Add support for Unix domain sockets
2020-05-16 19:58:34 -07:00
Alex Jaspersen
475ec9fb24
Add support for Unix domain sockets.
2020-05-16 20:12:20 +00:00
Shivaram Lingamneni
9517adae9d
make histserv replies come from histserv, not hostserv
2020-05-15 11:54:28 -04:00
Shivaram Lingamneni
8efbc4bc32
maintain lenBytes as a running count
2020-05-14 22:16:34 -04:00
Shivaram Lingamneni
2779fe7c10
fix #1005
2020-05-14 12:58:49 -04:00
Shivaram Lingamneni
a46c0eed9f
Merge pull request #1004 from slingamn/vanish.4
...
fix #858 and #383
2020-05-14 06:54:24 -07:00
Shivaram Lingamneni
178cc0a939
review fix
2020-05-13 19:41:31 -04:00
Shivaram Lingamneni
b3d7c9af62
neutral language
2020-05-13 12:12:31 -04:00
Shivaram Lingamneni
de3e2e3950
review fixes
2020-05-13 11:56:17 -04:00
Shivaram Lingamneni
d092f6b330
explanatory comment for CompileMasks
2020-05-13 10:07:54 -04:00
Shivaram Lingamneni
be0dedf260
fix #1003
2020-05-13 06:51:15 -04:00
Shivaram Lingamneni
67f35e5c8a
fix #858 and #383
2020-05-12 12:05:40 -04:00
Shivaram Lingamneni
d94a0aea9a
upgrade go-ident to fix parsing issue
2020-05-11 18:25:25 -04:00
Shivaram Lingamneni
2257f33efa
ratify SETNAME
2020-05-11 18:11:09 -04:00
Shivaram Lingamneni
548a2f814a
Merge remote-tracking branch 'origin/master' into issue996_proto.1
2020-05-11 02:04:20 -04:00
Shivaram Lingamneni
51c65f999d
Merge pull request #998 from slingamn/operator_topic
...
treat channel founder as such even if they don't have +q
2020-05-10 22:51:07 -07:00
Alex Jaspersen
d5cec62df3
Call ApplyUserModeChanges for default user modes.
...
This ensures that counts like the number of invisible users are updated
correctly.
2020-05-11 05:41:40 +00:00
Shivaram Lingamneni
c738a754a2
treat channel founder as such even if they don't have +q
...
This affects /TOPIC, /INVITE, and a few others.
2020-05-10 23:17:09 -04:00
Shivaram Lingamneni
89984f9c36
fix untrusted PROXY lines being accepted
...
As of 3dc5c8de78
, the PROXY-before-TLS proxy line
and any proxy information carried in X-Forwarded-For
do not count as the "first line", so an additional
client-supplied PROXY line would have been accepted.
2020-05-10 19:12:18 -04:00
Shivaram Lingamneni
d562c6d25a
more informative IP connection logline
2020-05-10 19:04:54 -04:00
Shivaram Lingamneni
0f7d58b1c5
fix #996
2020-05-10 06:17:11 -04:00
Shivaram Lingamneni
93f1e5b5b8
Merge pull request #995 from slingamn/issue994_unknowncommand.1
...
fix #994
2020-05-08 13:12:16 -07:00
Shivaram Lingamneni
6f688a4644
fix #994
2020-05-08 05:50:10 -04:00
Shivaram Lingamneni
36dab4e57d
review fix
2020-05-08 02:47:08 -04:00
Shivaram Lingamneni
8c74b0660b
fix #952
2020-05-08 01:18:00 -04:00
Shivaram Lingamneni
d187cc5512
Merge pull request #991 from ajaspers/who_invisible
...
Hide +i users from WHO * queries.
2020-05-07 19:09:38 -07:00
Alex Jaspersen
a6e4a26cbb
Performance optimization for determining friends in WHO <mask>.
...
Construct a hash set of the user's channels and check that rather than
querying channel membership, to reduce the number of locks that need to be
acquired.
2020-05-08 01:55:47 +00:00
Shivaram Lingamneni
17909a5db0
simplify listener rehash logic
2020-05-07 06:42:50 -04:00
Alex Jaspersen
b3cfcc1289
Show users in WHO queries if they are friends, i.e. they share a channel.
2020-05-07 03:00:28 +00:00
Shivaram Lingamneni
98b91e7bdd
review fix
2020-05-06 22:52:01 -04:00
Alex Jaspersen
1ef41d6020
Hide +i users from WHO * queries.
...
Fixes #990 .
2020-05-07 00:16:22 +00:00
Shivaram Lingamneni
14bcd46588
fix #982
2020-05-06 05:56:00 -04:00
Shivaram Lingamneni
b0f692e1ca
Merge pull request #984 from slingamn/issue983_bancomp
...
fix #983
2020-05-05 22:27:00 -07:00
Shivaram Lingamneni
ab8f542c11
fix #985
2020-05-06 01:15:04 -04:00
Shivaram Lingamneni
984794eb1e
fix #983
2020-05-06 01:07:06 -04:00
Shivaram Lingamneni
d37af694af
Merge pull request #979 from slingamn/websockets_draft.7
...
websockets implementation
2020-05-05 17:54:52 -07:00
Shivaram Lingamneni
c92192ef48
review fixes; add submatch support to glob
2020-05-05 17:20:55 -04:00
Shivaram Lingamneni
872fd3e77c
Merge pull request #975 from slingamn/shorten_batch_id
...
use shorter batch IDs
2020-05-05 03:27:43 -07:00
Shivaram Lingamneni
5ae6f6b927
fix incorrect propagation of listener errors
2020-05-05 06:25:28 -04:00
Shivaram Lingamneni
4ef6c58317
work around a chrome bug
2020-05-05 04:13:55 -04:00
Shivaram Lingamneni
620e30293d
use consistent spelling of WebSocket
2020-05-05 04:07:19 -04:00
Shivaram Lingamneni
3d3aec6979
fix missing err check, thanks @eklitzke
2020-05-04 23:42:34 -04:00
Shivaram Lingamneni
3dc5c8de78
more work on websocket support
2020-05-04 23:26:51 -04:00
Alex Jaspersen
b363a01a6f
Read accounts and grouped nicks in same transaction.
2020-05-04 02:20:28 +00:00
Alex Jaspersen
73bea0168d
Read account names and additional nicknames from the db to avoid casefolding issues.
2020-05-04 02:14:55 +00:00
Alex Jaspersen
6019ed1e29
Add ChanServ and NickServ LIST commands.
...
These commands search the registered nicknames/channels for ones
matching the provided regex, or return the entire list.
Only operators with chanreg (for ChanServ) or accreg (for NickServ)
capabilities can use LIST.
2020-05-04 00:51:39 +00:00
Shivaram Lingamneni
3a571f28ac
use shorter batch IDs
2020-05-03 03:27:13 -04:00
Shivaram Lingamneni
25813f6d3a
Merge remote-tracking branch 'origin/master' into websockets_draft.2
2020-04-30 22:16:07 -04:00
Hubert Hirtz
f5930444f7
WebSocket support
2020-04-30 23:17:33 +02:00
Alex Jaspersen
b3a7e5c996
Set default user modes when always-on clients reconnect.
...
Add default-user-modes configuration to conventional.yaml.
Fix comment on DefaultUserModes.
2020-04-30 04:38:19 +00:00
Alex Jaspersen
52910a185c
Add test for ParseDefaultUserModes.
2020-04-30 03:54:18 +00:00
Alex Jaspersen
df9bf15f00
Add support for setting user modes by default.
2020-04-30 03:54:09 +00:00
Shivaram Lingamneni
a06b4d5e88
Merge pull request #965 from slingamn/delayedlist.1
...
fix #964
2020-04-26 22:05:46 -07:00
Shivaram Lingamneni
3626958f1e
also exempt operators from LIST restrictions
2020-04-27 00:58:48 -04:00
Shivaram Lingamneni
5cdb81e1ea
use Nick()
2020-04-26 03:08:44 -04:00
Shivaram Lingamneni
57e2187742
fix #964
2020-04-26 02:52:09 -04:00
Shivaram Lingamneni
a7f020320e
make erase confirmation code nondeterministic
2020-04-24 15:41:58 -04:00
Shivaram Lingamneni
f87b71b93f
fix #962
2020-04-24 15:39:39 -04:00
Shivaram Lingamneni
4722f8a96c
fix #959
2020-04-24 01:33:21 -04:00
Shivaram Lingamneni
40d3c59139
fix #955
2020-04-23 02:02:07 -04:00
Shivaram Lingamneni
eebe681538
fix #532
2020-04-23 01:29:08 -04:00