Commit graph

335 commits

Author SHA1 Message Date
Elizabeth Myers 0ed0a9fe0a Move m_locops module to extensions.
Many networks do not use local ops and therefore should not be required
to have this around all the time.
2016-04-02 05:20:30 -05:00
Aaron Jones fef6857e3f
extensions: Fix duplicate extban character usage
extb_usermode and extb_hostmask both use the same extban character
('m'), resulting in only one of the modules being usable (depending
on module load order) and neither one functioning if one of them
is unloaded.

This changes the character for extb_usermode from 'm' to 'u'.

[ci skip]
2016-03-28 03:26:10 +01:00
Matt Ullman afba2488ec extb_combi: More int to bool conversion
Cleanup whitespace in ircd_lexer.l
2016-03-25 19:47:58 -04:00
Elizabeth Myers fea4e2d2a8 modules: libircd depends on librb, so no need to include it.
This triggers multiple inclusion warnings on Solaris also.
2016-03-23 13:59:45 -05:00
Elizabeth Myers 79435744c7 common.h: raison d'être is gone, so out it goes.
Fold whatever was left into ircd_defs.h
2016-03-23 09:33:56 -05:00
Matt Ullman 66769bc1f8 More cleanup 2016-03-23 00:11:26 -04:00
Matt Ullman e23126c83b Cleanup warnings 2016-03-21 22:28:41 -04:00
William Pitcock 032ef5ef9e modules: more GET_SS_FAMILY() checking 2016-03-20 04:46:50 -05:00
William Pitcock c0949eb003 extensions/m_webirc: win32 fixes 2016-03-20 02:26:30 -05:00
Elizabeth Myers 503727d1ee More bool conversions 2016-03-09 02:19:31 -06:00
Elizabeth Myers 3c7d6fcce7 Message handlers should return void.
Also fix up some return values and stuff to use bool (or void if
nothing). I just did it whilst I was here.

According to jilles, the return value used to signify whether or not the
client had exited. This was error-prone and was fixed a long, long time
ago, but the return value was left int for historical reasons.

Since the return type is not used (and has no clear use case anyway),
it's safe to just get rid of it.
2016-03-09 01:37:03 -06:00
Elizabeth Myers eeabf33a7c Move module description headers to the top
This is cleaner.

Note this was broken out of a much larger piece of work I did, so if
there's any problems, I apologise!
2016-03-09 01:29:41 -06:00
Max Teufel 54d8925ed4 extensions: add umode_noctcp extension 2016-03-07 18:48:14 +01:00
Elizabeth Myers a278a4fc68 AV2 descriptions: forgot these 2016-03-07 04:11:58 -06:00
Elizabeth Myers 3bde01a819 Update extensions/spy_* with AV2 descriptions. 2016-03-07 04:09:14 -06:00
Elizabeth Myers 84b4c05888 Add AV2 descriptions for extensions/sno_* 2016-03-07 04:02:27 -06:00
Elizabeth Myers 3fd3d7e176 Port some more extensions to AV2 and add descriptions 2016-03-07 03:50:03 -06:00
Elizabeth Myers 8699801ca2 Compensate for my obviously diminished faculties. 2016-03-07 03:42:43 -06:00
Elizabeth Myers 02369fa767 Give all extensions/m_* modules AV2 descriptions 2016-03-07 03:40:51 -06:00
Elizabeth Myers dacd2aa8c2 Bump some extensions to AV2 and add descriptions 2016-03-07 03:08:40 -06:00
Elizabeth Myers de2b673f5a example_module: forgot a stupid semicolon. 2016-03-07 01:35:35 -06:00
Elizabeth Myers 4d552723ee example_module: update for AV2. 2016-03-07 01:27:57 -06:00
William Pitcock c81afd1580 extensions: add AV2 description strings to a few modules 2016-03-07 00:32:01 -06:00
Elizabeth Myers 1bb809cb30 Remove m_42 from README. 2016-03-06 23:58:32 -06:00
Elizabeth Myers d40217b4f6 Bye m_42.
Mostly a useless hybrid relic that nobody had used for years.
2016-03-06 23:57:50 -06:00
Elizabeth Myers 04f832b778 Bump all extensions to AV2
Most do not yet have descriptions, but that's trivial.
2016-03-06 23:57:10 -06:00
Elizabeth Myers 581dad19a4 Update chm_* modules to AV2 2016-03-06 23:48:27 -06:00
Elizabeth Myers 216d70e91d modules: tag origin at load time. 2016-03-06 18:57:05 -06:00
Elizabeth Myers c63aeb44e9 modules: add origin field to V2 2016-03-06 17:52:49 -06:00
Elizabeth Myers c168ef1864 m_remove: use new AV2 MAPI 2016-03-06 17:27:02 -06:00
Elizabeth Myers a4bf26dd34 Move irc_* data structures to librb.
This makes the base ircd less cluttered up with data structures that can
go elsewhere.
2016-03-06 14:17:19 -06:00
Elizabeth Myers fe037171d6 Change all leftover libratbox stuff to librb. 2016-03-06 03:49:27 -06:00
Elizabeth Myers c6d81c6d59 m_echotags: Oops... 2016-03-06 02:49:16 -06:00
Elizabeth Myers cbeab4bc34 Remove $Id tags from everything.
These are obsolete and none have changed since 10 years gao...
2016-03-06 02:47:27 -06:00
William Pitcock c83f2f5e12 rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -06:00
Elizabeth Myers 1d91de8100 Remove old .indent.pro files
These have been unused since dinosaurs roamed the earth and are mostly
smelly old Hybrid relics.
2016-03-05 21:21:36 -06:00
William Pitcock 9ea48ec30a remove presupplied autotools files 2016-03-05 17:47:48 -06:00
William Pitcock 63b9db9675 capability: allow attaching capability-owner data to a capability token, to enable extended data for client capabilities 2016-02-26 23:55:43 -06:00
William Pitcock c678fbc08b ircd: remove broken USE_IODEBUG_HOOKS knob and related code 2016-02-20 12:02:49 -06:00
William Pitcock 7baa37a9ef msg: remove last vestiges of the fakelag system. charybdis has never supported fakelag. 2016-02-19 16:43:39 -06:00
William Pitcock ca45daba73 extensions: add m_echotags extension to echo back your tags in NOTICE form 2016-02-10 21:00:27 -06:00
William Pitcock 760bafdac3 extensions: update for API change 2016-02-10 20:14:22 -06:00
Valerii Iatsko 5203cba5ce Remove libratbox's snprintf.c, update related ircd code 2016-02-10 02:25:32 +01:00
William Pitcock c4e9deaef9 extensions: add chm_insecure, which has the opposite effect of chm_sslonly.
This module makes SSL required to join any channels except for ones specifically marked insecure.
It is meant to be used in a migration path away from plaintext IRC.
2016-01-29 22:26:41 -05:00
Jilles Tjoelker 58855a9f2c extensions/helpops: Do not use oper:hidden.
If +H is a separate umode and privilege, there is no reason to have
oper:hidden, which did not work properly anyway since it is not propagated
to other servers.
2016-01-16 15:23:32 +01:00
William Pitcock 103a1bfd34 extensions/override: disable false positive modehack notice 2016-01-16 02:28:49 -06:00
William Pitcock f69d7febc7 extensions/override: improve KICK override messages 2016-01-16 02:04:01 -06:00
William Pitcock 161ac1c8d5 extensions/helpops: implement DEHELPER command 2016-01-14 15:16:29 -06:00
William Pitcock 4d21f1e8e0 extensions/helpops: new module, implementing a helpops system.
if loaded, this module takes over /stats p, and displays people who are umode +H.
to get umode +H, one must have the "usermode:helpops" permission.
2016-01-14 08:08:40 -06:00
William Pitcock 3ee43bcf29 ircd: get_channel_access(): do not derive channel pointer from membership 2016-01-13 22:16:44 -06:00
William Pitcock e118f2d431 extensions/chm_operpeace: new module which disallows kicking of operators on select channels 2016-01-13 16:52:56 -06:00
William Pitcock 88c48be58c extensions/sno_globalnickchange: import from ircd-seven 2016-01-12 07:10:39 -06:00
William Pitcock a4721f5e9f ircd: implement EXTENDCHANS, based on ircd-seven (with some improvements from chatircd) 2016-01-11 23:32:23 -06:00
William Pitcock b870a5f8e9 extensions/override: display mode-change string in override messages 2016-01-11 22:40:32 -06:00
William Pitcock e4603e3d27 parse: implement reconstruct_parv() 2016-01-11 22:28:55 -06:00
William Pitcock 49c12c23f9 extensions/m_remove: simplify the reason building code, pointed out by mniip 2016-01-10 22:27:28 -06:00
Doug Freed a69c4f8c56 extensions/m_remove: quote user part messages
Quote user part messages like freenode/ircd-seven so that users can't
fake a channel op using /remove.  This only applies when this module is
loaded.
2016-01-10 12:51:28 -08:00
William Pitcock 46be39faab ircd: hash: use an irc_radixtree for storing resv's 2016-01-09 04:59:02 -06:00
William Pitcock 9e45a5ca19 buildsystem: further cleanup 2016-01-08 07:01:00 -06:00
William Pitcock a886cb82fb buildsystem: more LTDLINCL fixes 2016-01-08 06:57:45 -06:00
William Pitcock f0718c93d5 configure: use correct path for libltdl 2016-01-08 06:50:01 -06:00
William Pitcock 5164a68650 buildsystem: update Makefile.in's 2016-01-08 05:20:32 -06:00
Aaron Jones d8c4154da2 Fix LTDL conditional, remove some unnecessary and/or ugly configure tests 2016-01-07 17:15:55 +00:00
Aaron Jones eec2776c6c Fix some autotools discrepancies, disable SQLite threading code 2016-01-07 16:58:28 +00:00
William Pitcock 03906030a3 extensions: import sno_channelcreate from ircd-seven 2016-01-06 02:03:06 -06:00
William Pitcock 2a19fc3f57 general: remove last vestiges of static modules support (this hasn't ever actually worked...) 2016-01-06 01:28:20 -06:00
William Pitcock 46fded53d4 update buildsystem artifacts 2016-01-06 01:16:49 -06:00
William Pitcock ff12cc9479 rename src to ircd, libcore to libircd 2016-01-06 01:16:08 -06:00
William Pitcock bc38c72ced buildsystem: build ircd itself as a library to allow removal of -undefined suppress on OS X 2016-01-05 21:31:21 -06:00
William Pitcock c52df12552 buildsystem: convert to automake + libtool 2016-01-05 21:20:25 -06:00
William Pitcock 947d2bba47 extb_oper: allow matching $o:<privset> as well as $o:<permission> as in 3.4 2016-01-05 19:12:38 -06:00
William Pitcock 32d5702869 extensions: add the ability to hide uncommon channels in WHOIS, like in ircd-seven (closes #6) 2016-01-05 18:45:07 -06:00
William Pitcock 340b2512d4 sno_whois: fix resource leak, pointed out by mniip 2015-12-27 17:08:57 -06:00
William Pitcock a2bc8af8c5 extb_combi: relax recursion and complexity limits now that bancache for unjoined users is fixed 2015-12-13 11:38:27 -06:00
William Pitcock 2749c37c43 extb_combi: tighten up recursion depth 2015-12-13 11:22:47 -06:00
William Pitcock 9145dc0956 extb_combi: allow up to 5 children nodes 2015-12-13 11:09:15 -06:00
William Pitcock 5984986bcf extb_combi: if there are more nodes than allowed, return EXTBAN_INVALID 2015-12-13 11:06:04 -06:00
William Pitcock 2e548a8a04 extb_combi: try limiting the number of allowed nodes per depth to 3 2015-12-13 10:58:05 -06:00
William Pitcock d63f3f80f0 extb_combi: implement a recursion guard 2015-12-13 07:50:02 -06:00
Jilles Tjoelker 2d28539c68 Reduce clean_nick() code duplication further.
Side effect: hurt and monitor now allow nicks starting with a digit.
2015-12-13 00:22:21 +01:00
William Pitcock 72dee03d50 clean up some code duplication when checking nicks for validity 2015-12-12 08:41:09 -06:00
William Pitcock e2a9fa9cab extenions: add a $m: extban (ref #74) 2015-12-10 02:25:22 -06:00
William Pitcock 4ef511ebb8 import marienz's extb_combi module (ref #74) 2015-12-10 02:20:58 -06:00
William Pitcock 202d496644 override: only engage override code if we're needing to authorize a WRITE to a channel's state (closes #65) 2015-12-10 01:00:32 -06:00
Jail Bird 29c92cf95f Spring cleaning redux:
- Implemented changes suggested by Jilles
- Remove some unused parameters in functions
- Remove some unused ssl procs
- 63-bit time_t support in TS deltas
- const char * vs char * cleanup
- struct alignment (void *) casts
- signed vs unsigned fixes
- bad memset() call
- Bad LT_MAIN in libratbox
- char -> unsigned char casts for isdigit/isspace/etc calls

Thanks Jilles!
2015-04-20 00:55:20 -05:00
Jilles Tjoelker 3bfac098f7 extensions/extb_channel: Allow the channel itself as target even if +s/+p. 2014-07-19 20:14:14 +02:00
Jilles Tjoelker 83aa910fb9 extensions/chm_sslonly: Use some 4xx numeric for the join failure. 2014-07-19 20:14:14 +02:00
Keith Buck 55abcbb20a Remove trailing whitespace from all .c and .h files.
3134 bytes were removed.
2014-03-03 04:25:47 +00:00
Jilles Tjoelker b222b6a05a findforwards: Don't compare array to NULL as this is always true. 2014-03-02 21:47:36 +01:00
Jilles Tjoelker f9960c0262 extensions/mkpasswd: Do not leak /dev/random fd. 2014-02-23 22:18:44 +01:00
Jilles Tjoelker a6b29d3ed4 extensions/roleplay: Fix memory leak on every use. 2014-02-23 22:01:04 +01:00
Jilles Tjoelker 0391874cc7 webirc: Check validity of given IP. 2014-02-23 21:14:09 +01:00
Andrew 46b55df60b Fix grammatical error 2013-12-12 04:08:12 +00:00
Jilles Tjoelker e5c254d7d1 override: Remove umode +p when deopering. 2013-10-25 17:49:58 +02:00
Keith Buck 0137d36122 Revert "Add m_override.c - an improved override module."
This reverts commit f00a55e9a1.
2013-10-25 05:39:55 +00:00
Keith Buck f00a55e9a1 Add m_override.c - an improved override module. 2013-10-24 06:36:22 +00:00
Keith Buck 77d3d2dbaf Remove s_assert definition from ircd_defs.h and add it to its own header.
s_assert requires some higher-level functionality that shouldn't be
present in ircd_defs.h. ircd_defs.h is used by ssld, which has no notion
of logging or sending IRC messages. Additionally, some of the headers
s_assert depends on result in conflicting definitions in ssld.c.

This change also fixes the compile when using --enable-assert=soft.
2013-09-10 06:10:14 +00:00
Alex Iadicicco e03fc000a2 extensions/m_roleplay: Properly transmit source name. 2013-08-23 20:11:22 -07:00
Jilles Tjoelker 0ef5377a36 Rename m_nokillservices.so to no_kill_services.so per the naming scheme. 2013-04-27 17:00:10 +02:00
Jilles Tjoelker ee45698302 nokillservices: Use ircu numeric instead of a notice. 2013-04-27 16:55:26 +02:00
Elizabeth Myers 4f253f11a2 Forgot this -.- 2013-04-27 05:07:04 -05:00
Elizabeth Myers 06c3a3191c Fix minor comment munging from sed being a piece of shit 2013-04-27 04:59:57 -05:00
Elizabeth Myers bd0d352f12 Include messages.h for macro form_str in select extensions 2013-04-27 04:57:44 -05:00
Elizabeth Myers a6adeaad20 Fix format string generation 2013-04-27 04:57:31 -05:00
William Pitcock 960833fed6 Merge pull request #20 from quora-wings/master
Makefile.in updated
2013-04-20 20:24:25 -07:00
Quora 4dda34a0aa Makefile.in updated 2013-04-20 20:18:51 -07:00
Elizabeth Myers be8f778945 Remove last vestige of halfops from this module.
How this was in here for this long is well beyond me. This must be old
hybrid code or something.
2013-04-20 21:23:27 -05:00
Quora cec9e96f75 Removed redundant and buggy code that caused segmentation faults. Also deprecated by operspy support for LIST. Referencing commit Ponychat/shadowircd@162195279a 2013-04-20 13:59:27 -07:00
Elizabeth Myers 9d745dbd21 Implement kill-cancelling hook.
With this comes an example module to block the killing of services.

NOTE: this will not cancel remote kills. Those are still accepted, per
the TS 6 specification.
2013-04-20 01:07:55 -05:00
Jilles Tjoelker e69375f3ac Cope with rb_crypt() returning NULL. 2013-02-02 00:54:32 +01:00
William Pitcock 4cbed3b849 extensions/m_roleplay: merge in darkmyst changes 2012-11-04 03:35:58 +00:00
William Pitcock e5149d6169 Add module which restricts unauthenticated users from doing anything as channel op. 2012-11-01 06:48:40 +00:00
Keith Buck 0d0f34c322 chm_nonotice: Ignore CTCP and send ERR_CANNOTSENDTOCHAN if a message is being blocked. 2012-07-31 06:37:33 +00:00
Douglas Freed 9f409b6333 extensions/ip_cloaking*: Fix a bug accidentally introduced in 29d224a1 where the cloaking module would change your cloak locally, but not correctly broadcast this to the network, and fail to tell you correctly in the RPL_HOSTHIDDEN reply 2012-05-24 11:06:20 +00:00
Jilles Tjoelker b97e1bf66c extensions/roleplay: Fix "No such channel" message. 2012-04-14 01:11:40 +02:00
Jilles Tjoelker 23485ebe3a extensions/roleplay: End floodgrace because this is sent to other users. 2012-04-14 01:07:43 +02:00
William Pitcock b181432121 extensions/chm_nonotice: fix typo 2012-04-02 14:07:25 -05:00
William Pitcock 359407245d extensions/chm_nonotice: reject NOTICEs to channels mode
Same thing as +T in unrealircd, inspircd and shadowircd.
2012-03-31 22:56:14 -05:00
William Pitcock dd2654fadb Merge branch 'master' of git.atheme.org:/gitroot/charybdis 2012-03-04 17:25:17 -06:00
William Pitcock c918eb5799 m_remove: Don't use capability_require(). 2012-03-04 17:25:01 -06:00
Nathan Phillip Brink c74836dc4a Add explicit support for being installed into a system triggered with --enable-fhs-paths.
Add two mechanism for avoiding name-collisions in a system-wide
installation of charybdis. The ssld and bandb daemons, intended to be
directly used by ircd and not the user, install into libexec when
--enable-fhs-paths is set. For binaries which are meant to be in PATH
(bindir), such as ircd and viconf, there is now an option
--with-program-prefix=progprefix inspired by automake. If the user
specifies --with-program-prefix=charybdis, the ircd binary is named
charybdisircd when installed.

Add support for saving the pidfile to a rundir and storing the ban
database in localstatedir instead of in sysconfdir. This is, again,
conditional on --enable-fhs-paths.

Fix(?) genssl.sh to always write created SSL key/certificate/dh
parameters to the sysconfdir specified during ./configure. The
previous behavior was to assume that the user ran genssl.sh after
ensuring that his current working directory was either sysconfdir or a
sibling directory of sysconfdir.
2012-03-01 02:41:09 +00:00
Nathan Phillip Brink f02e3a2628 Use LDFLAGS when compiling extensions or modules. 2012-02-28 04:36:00 +00:00
Keith Buck 29d224a1f8 ip_cloaking*: Do qjm locally too. 2012-02-18 05:16:03 +00:00
William Pitcock deee7b4388 m_remove: fix parameter order on PART message 2012-02-04 18:49:46 -06:00
Jilles Tjoelker 63dd387b13 Require all modes to be set for + part in $m extban.
This is like the - part requiring none of the modes to be set and is more
useful because the old behaviour can be emulated with multiple bans.
2012-02-04 15:02:26 +01:00
William Pitcock 925c50efea Add implementation of /REMOVE, based on ircd-seven implementation. 2012-02-04 02:20:56 -06:00
Keith Buck 4862f41a02 extban : Correct logic for matching against permissions. 2012-01-24 17:13:32 +00:00
JD Horelick a8eae73002 extb_usermode should declare itself as what it actually is. 2012-01-22 13:56:25 -05:00
William Pitcock 655e7dee45 extban $o: add support for matching against specific permissions.
Syntax: $o:oper:admin (match against the oper:admin permission)
2012-01-22 04:05:34 -06:00
William Pitcock 11f2e78727 extb_usermode: should use EXTBAN_INVALID if no modestring is provided 2012-01-22 03:58:32 -06:00
William Pitcock 0b18e32cad Add extban target for matching against a user's modes.
Syntax: $m:+o (require usermode +o)
Syntax: $m:+o-a (require usermode +o but do not allow +a)
Syntax: $m:+a (require usermode +a)
Syntax: $m:-h (require user disables cloaking to enter)
2012-01-22 03:46:08 -06:00
Elizabeth Jennifer Myers 765d839d3c Port ircd-seven banfowards to charybdis.
nenolod gave the thumbs-up to port ircd-seven banfowards to charybdis to spb
for a while, and people have asked about it. Might as well do it since it's a
slow weekend.

Note that as a side effect use_forward is removed from the config and
unconditionally enabled!
2011-08-12 20:33:10 -04:00
Jilles Tjoelker b4cdedaa2a override: Send notice when overriding can_send.
Also ensure no session deadline is maintained for a remote client.
2011-08-07 22:10:12 +02:00
Elizabeth Jennifer Myers 89bfeb8fb1 Remove #define KEY from ip_cloaking modules.
I meant to do this 3 years ago when I rewrote the cloaking modules. I
never got around to it. Now I am. :p

Also add some basic comment headers whilst I'm here.
2011-07-25 23:38:56 -04:00
Jilles Tjoelker 0d165b5262 override: Apply floodcount to override sends.
This avoids strange behaviour where quieting an override
oper lets them send more, and matches ircd-seven.
2011-02-06 15:50:58 +01:00
Elizabeth Jennifer Myers f924ea40a3 Overhaul extensions/m_mkpasswd. It now allows SHA256/SHA512 hashes. DES support is removed, as it is insecure and can be broken on my desktop in about 20 minutes. 2011-01-06 01:41:57 -05:00
Keith Buck bb55ebebe9 Implement operspy for /LIST. 2011-01-05 18:57:27 -08:00
Jilles Tjoelker 6d61f90fd6 override: Provide an error message if +p may not be set. 2010-12-31 02:43:38 +01:00
William Pitcock 805cfa5ab2 Use send_channel_join(). 2010-12-16 00:13:42 -06:00
B.Greenham fb28c74187 extensions/roleplay: Fix NPCA/FACTION not showing up properly on some clients. 2010-12-15 15:43:35 -05:00
B.Greenham 6816e3387a Make ENCAP ROLEPLAY originate from the user running the command, rather than just including the user in the message, as per jilles' suggestion.
This has the benefit of checking ROLEPLAY messages for fake direction.
2010-12-11 15:51:11 -05:00
B.Greenham 8ffa827529 Add extensions/m_roleplay, which provides various roleplay commands. 2010-12-09 18:44:24 -05:00
William Pitcock 5c3014d0eb Clean up OverrideSession struct on client exit. 2010-12-07 00:27:00 -06:00
William Pitcock 9101dbcda2 override: Hack can_send(). 2010-12-07 00:18:22 -06:00
William Pitcock d307688122 override: Allow banwalking too. 2010-12-06 23:55:42 -06:00
William Pitcock 429cf1b74f Add oper-override (modehacking only) as a module.
I think if you are going to kick someone from a channel.
2010-12-06 23:44:55 -06:00
Jilles Tjoelker 19716b9fd6 New custom channel mode API allowing reloading such modules.
Additionally, attempting to use too many modes or two times
the same letter is now detected and prevented.

Modules now request that a channel mode be added/orphaned,
instead of ugly manipulation from which that request had
to be guessed.

Slight changes are needed to modules that provide channel modes.
From the old API, one important function has been made static,
the other important function has been renamed, so loading old
modules should fail safely.
2010-04-01 01:16:16 +02:00
Jilles Tjoelker 27f616ddf5 Track who set a dline/kline/xline/resv as in ratbox3.
Like in ratbox3, there is no way to query this information
(other than bandb's tables, but they worked before this
commit).
2010-03-01 01:23:22 +01:00
William Pitcock 4cbfc368b4 Add ip_cloaking_4.0 module, which is the same cloaking as 3.2, but moves the usermode from +h to +x,
which allows us to start transitioning this usermode change.
2010-02-18 07:30:26 -06:00
William Pitcock 3ad21d7513 hurt: unbreak compile 2010-02-17 06:44:42 -06:00