Commit Graph

4382 Commits

Author SHA1 Message Date
Howard Chu
6f461690c1 Function renaming, make internal funcs static, etc. 2003-04-23 06:34:55 +00:00
Luke Howard
bdb3adca39 Fix SLAPI debug message typo 2003-04-23 05:00:00 +00:00
Jong Hyuk Choi
fd3cf2b5ed get_ldapmsg_ber() -> ldap_get_message_ber() 2003-04-22 22:09:25 +00:00
Jong Hyuk Choi
b67a3b9840 Misc cleanup - more to come. 2003-04-22 21:42:14 +00:00
Kurt Zeilenga
a6da45c9c7 Fix typo in last commit 2003-04-22 20:35:41 +00:00
Howard Chu
1745c2478d Missed a bei_rdn in prev commit 2003-04-22 20:35:29 +00:00
Kurt Zeilenga
b9fe2c2fd6 Fix up subtreeSpecification to allow new GSER-based string format
(real validatator needed).
2003-04-22 20:33:08 +00:00
Jong Hyuk Choi
8e12768eed subtreeSpecification syntax change : -binary +validator 2003-04-22 20:08:37 +00:00
Howard Chu
c7d3d42304 Omit bei_rdn field from EntryInfo 2003-04-22 18:59:37 +00:00
Howard Chu
7c39a5e726 filter_candidate tweaks, search_stack tweaks 2003-04-22 18:22:51 +00:00
Jong Hyuk Choi
f97a85db83 more cleanup for the backend API change 2003-04-22 17:59:54 +00:00
Howard Chu
68822b1e15 Trim dead BDB_HIER stuff 2003-04-22 17:06:35 +00:00
Howard Chu
c9f8d7accb Fix args to bdb_cache_modrdn 2003-04-22 17:05:22 +00:00
Jong Hyuk Choi
4d6469f949 subentry cleanup 2003-04-22 17:00:04 +00:00
Howard Chu
1643145b03 Fix multi-line string literals. new GCC complains... 2003-04-22 16:06:29 +00:00
Howard Chu
0afba16b9b Fix id2entry, let bdb_cache_release_all clean up EntryInfos
Fix idl_cache_put
2003-04-22 13:14:06 +00:00
Howard Chu
89127c93d0 Mem context tweaks for bdb_dn2idl 2003-04-22 06:29:13 +00:00
Howard Chu
ee1cddf6fd Fix typo in prev commit 2003-04-22 05:15:50 +00:00
Howard Chu
bd871d710d Moved IDL cache code to standalone functions.
Use IDL cache in bdb_dn2id_children.
2003-04-22 05:14:27 +00:00
Howard Chu
f0577fcb08 Pass parent EntryInfo instead of parent DN to dn2id_add/delete.
Add bdb_cache_children, remove cache flag manipulation from dn2id_children
2003-04-22 04:06:09 +00:00
Kurt Zeilenga
cd66f42f90 cleanup 2003-04-21 19:01:08 +00:00
Kurt Zeilenga
8cc4866fa1 Assign experimental OID to syncReplCookie 2003-04-21 18:57:49 +00:00
Howard Chu
d290145776 memory context tweaks 2003-04-21 18:28:38 +00:00
Howard Chu
e061628ff3 Fix previous commit 2003-04-21 18:09:44 +00:00
Jong Hyuk Choi
86a46c267a OpenLDAP synchronization based replication engine 2003-04-21 14:08:13 +00:00
Jong Hyuk Choi
3efe7398c9 memory API change 2003-04-21 14:01:39 +00:00
Howard Chu
e374c580f2 Perform is_at_subtype check inline 2003-04-21 03:55:20 +00:00
Howard Chu
d8068af892 Fix glue_sub_init realloc disconnect 2003-04-20 09:18:02 +00:00
Pierangelo Masarati
1150becd63 use a macro for the entry buffer size 2003-04-18 17:17:18 +00:00
Pierangelo Masarati
629885a269 use SLAP_PTRCMP 2003-04-18 17:16:48 +00:00
Pierangelo Masarati
6bcbe9ad31 reset passwords before freeindg them 2003-04-18 10:02:43 +00:00
Pierangelo Masarati
7de67df355 ensure all metasingleconns are init'ed 2003-04-18 10:02:00 +00:00
Howard Chu
6fd41cd254 Add shm_key config keyword to use shared memory for BDB environment
Unmeasurable performance difference on my tests, but who knows...
2003-04-18 09:43:22 +00:00
Luke Howard
d4a9e0ece0 Fix crasher when duplicating substring assertions 2003-04-18 08:21:12 +00:00
Howard Chu
6002ad5233 Minor fixes 2003-04-18 07:43:07 +00:00
Luke Howard
c734eaf68a Improve error checking 2003-04-18 07:29:45 +00:00
Howard Chu
7caf3e0952 Fix prev commit, extended search was broken 2003-04-18 05:53:24 +00:00
Luke Howard
86a18c2ea2 Don't pollute op->o_bd in access_allowed() 2003-04-18 04:57:15 +00:00
Howard Chu
3baffe7cf2 Fix undefined filters 2003-04-18 04:44:46 +00:00
Howard Chu
6b524914c5 Fix undefined substring filters 2003-04-18 04:44:06 +00:00
Howard Chu
8d8a52f9d2 ITS#2453, Fix filter candidate generation 2003-04-18 03:36:52 +00:00
Howard Chu
7c60ff1ef8 ITS#2449, broken NOT filters 2003-04-18 02:31:38 +00:00
Jong Hyuk Choi
2dbcd890b8 Caching non-existing index entries in the IDL cache - caching keys only 2003-04-18 00:35:11 +00:00
Pierangelo Masarati
b5e9378d4f improve previous commit 2003-04-17 22:19:14 +00:00
Pierangelo Masarati
9f7c48ab54 don't return referral if cannot compute one (should fix ITS#2435) 2003-04-17 21:48:57 +00:00
Howard Chu
c754980045 Use EntryInfo navigation for search scope checks 2003-04-17 11:03:21 +00:00
Howard Chu
ec13a69220 Finish alias scope support 2003-04-17 09:23:53 +00:00
Howard Chu
f7db076c86 Fix prev commit 2003-04-17 05:15:12 +00:00
Howard Chu
7dcb79157d Fix database search loop conditions 2003-04-17 04:55:39 +00:00
Howard Chu
d7a1eb0ea2 Fix AVL comparisons 2003-04-17 04:36:42 +00:00
Howard Chu
2048c05a82 Added CACHE_ENTRY_NO_KIDS flag to bei_state to shortcut dn2id_children. 2003-04-17 00:52:31 +00:00
Pierangelo Masarati
9caafcb3d9 cleanup; improve error handling 2003-04-16 22:22:57 +00:00
Kurt Zeilenga
d2db0733ab Add associated matching rule checks 2003-04-16 21:42:52 +00:00
Pierangelo Masarati
786d4e23b7 allow compare on dynamically generated operational attributes (may be moved to the frontend) 2003-04-16 20:55:42 +00:00
Pierangelo Masarati
d564770156 clarify hasSubordinate filtering 2003-04-16 20:54:56 +00:00
Pierangelo Masarati
57bb4fd89a fix id query 2003-04-16 20:54:30 +00:00
Pierangelo Masarati
3a5cd746b7 use global bervals for TRUE/FALSE 2003-04-16 19:49:00 +00:00
Pierangelo Masarati
58d1df26d8 fix possible typo 2003-04-16 19:48:14 +00:00
Howard Chu
377bccbc6c Hierarchical cache management. 2003-04-16 16:23:36 +00:00
Pierangelo Masarati
d9d5912383 use syntax and matching rules knowledge when preparing SQL filters (to reduce pseudo-normalization efforts and search candidate number) 2003-04-16 10:22:33 +00:00
Kurt Zeilenga
fc7e29e0c5 Add associated matching rules 2003-04-16 05:56:28 +00:00
Kurt Zeilenga
1260da0cbf Add comments about associated rules. Need to add checks
in mr.c, populated their values in schema_init.c, and then
put them to use.
2003-04-16 03:30:20 +00:00
Pierangelo Masarati
d8887ac063 fix update operations 2003-04-16 01:21:02 +00:00
Howard Chu
ca9bb44089 Free IDL_CACHE locks 2003-04-16 01:04:00 +00:00
Pierangelo Masarati
0c67c0493b more cleanup; small improvements 2003-04-15 23:11:31 +00:00
Pierangelo Masarati
1f400adca7 honor attributes request 2003-04-15 22:43:56 +00:00
Pierangelo Masarati
1fa756cd24 backout unintended commit :) 2003-04-15 21:58:16 +00:00
Pierangelo Masarati
adf3744dd6 fix backsql new API; use berbuf instead of berval 2003-04-15 21:55:25 +00:00
Julius Enarusai
5094d6abda Fixed minor compile errors 2003-04-15 20:40:02 +00:00
Howard Chu
d28bdf9cc2 Fix for modrdn retries 2003-04-15 01:13:28 +00:00
Howard Chu
f0816ec503 Fix value_find_ex result 2003-04-14 12:27:04 +00:00
Howard Chu
4739b58f99 Fix previous commit 2003-04-14 11:14:07 +00:00
Howard Chu
e1d45c64e0 doPlugins return code fix 2003-04-14 10:30:10 +00:00
Howard Chu
3aabc4ed43 doPlugins return code fix 2003-04-14 00:07:48 +00:00
Howard Chu
755f785432 Memory context fixes 2003-04-13 16:15:52 +00:00
Kurt Zeilenga
cde0999b52 Rename header macro 2003-04-13 04:51:12 +00:00
Pierangelo Masarati
a1b407b44d improve schema 2003-04-12 18:16:05 +00:00
Pierangelo Masarati
194528d689 fix ACI per-thread memory management 2003-04-12 17:42:51 +00:00
Pierangelo Masarati
be8820d660 HEADS-UP: complete reworking of back-monitor 2003-04-12 17:41:49 +00:00
Kurt Zeilenga
8321227972 Fix OIDs 2003-04-12 17:11:26 +00:00
Howard Chu
5821fb5251 Change doPluginFNs to return 1 when no plugins were invoked 2003-04-12 12:40:50 +00:00
Howard Chu
088eecc34d Tweak strcpy's 2003-04-12 12:20:19 +00:00
Howard Chu
af6804905f Eliminate unnecessary calls to slap_bv2ad 2003-04-12 12:19:57 +00:00
Howard Chu
130f6e1b7d Memory context tweaks for other ops 2003-04-12 10:47:11 +00:00
Pierangelo Masarati
784672d60a disable by default right now 2003-04-12 10:05:12 +00:00
Pierangelo Masarati
74671953ef fix schema definitions (duplicate objectClass OID still there) 2003-04-12 10:02:31 +00:00
Howard Chu
0f2eab27ce ITS#2442, ITS#2438 same check for slapd_slp_reg() 2003-04-12 08:36:35 +00:00
Howard Chu
280fc819cf Memory context tweaks for Bind 2003-04-12 06:56:42 +00:00
Howard Chu
be28bf247e Added sl_context() to return the context associated with an alloc'd ptr.
Improved ch_malloc/sl_malloc compatibility.
2003-04-12 05:12:40 +00:00
Howard Chu
a6a6946a67 New ldap_pvt_thread_pool_context() 2003-04-12 04:01:40 +00:00
Kurt Zeilenga
f4304936d4 Assign experimental OIDs 2003-04-12 03:19:43 +00:00
Pierangelo Masarati
ab47effcfd more cleanup and api rewriting (too tired to do anything better) 2003-04-12 01:17:05 +00:00
Pierangelo Masarati
99ac2cb422 slight improvement 2003-04-12 00:48:16 +00:00
Pierangelo Masarati
576089061d add new schema stuff (no #ifdef, too heavy) 2003-04-12 00:30:47 +00:00
Pierangelo Masarati
805894be1d fix context memory and more cleanup 2003-04-11 23:23:03 +00:00
Pierangelo Masarati
29c2594fe4 pass Operation instead of private info 2003-04-11 23:08:16 +00:00
Pierangelo Masarati
465a50cffc fix memory context (hope NULL at init is valid) 2003-04-11 22:30:48 +00:00
Luke Howard
4f77f04a83 Don't use thread local malloc for search filter if SLAPI is enabled;
breaks API compat
2003-04-11 06:30:41 +00:00
Luke Howard
0e46e4a7af Workaround for SLAPI impedence mismatch with new thread-local malloc;
computed search rewriter plugins cannot use thread-local malloc
2003-04-11 05:27:30 +00:00
Howard Chu
423ad06fa6 Revert previous, committed by mistake 2003-04-11 04:28:26 +00:00
Kurt Zeilenga
217f45a16c SLP fix (ITS#2438) 2003-04-11 04:25:55 +00:00
Luke Howard
f26a0e0db0 Don't pass NULL DN to rewrite_session(), causes assertion failure
(Howard might like to check that this is the correct fix)
2003-04-11 04:23:21 +00:00
Luke Howard
7cb946924e Fix compilation errors (caching must still be undefined though) 2003-04-11 04:22:37 +00:00
Howard Chu
808cb504ce More memory context tweaks 2003-04-11 03:57:10 +00:00
Luke Howard
ee203deadf Fix compile breakage 2003-04-11 03:56:04 +00:00
Howard Chu
75141e9c2f Fix VPATH builds 2003-04-11 03:39:48 +00:00
Howard Chu
aa470b8052 Fix previous commit 2003-04-11 01:53:31 +00:00
Howard Chu
ece7452b05 More memory context tweaks 2003-04-11 01:29:28 +00:00
Howard Chu
374d919fc0 More memory context tweaks 2003-04-10 06:21:53 +00:00
Howard Chu
7287c0ff01 Init op->tmpmfuncs. 2003-04-09 23:37:24 +00:00
Howard Chu
f897519d11 Minor cleanups 2003-04-09 23:37:00 +00:00
Howard Chu
ebecca7379 Eliminate getkey search 2003-04-09 17:34:58 +00:00
Howard Chu
065116c3a3 Just use a fixed size slab for now 2003-04-09 17:05:46 +00:00
Howard Chu
813d5c8ed8 First cut at thread-local malloc. Only used by search() for now...
Needs work in normalizers, etc.
2003-04-09 16:52:03 +00:00
Jong Hyuk Choi
437d2ce5a9 backend operations and callbacks conforms to the new API. 2003-04-09 16:37:00 +00:00
Howard Chu
aa3b717937 Don't build generic_filter dynamically, it's a simple static. 2003-04-09 08:28:19 +00:00
Pierangelo Masarati
426ca14a86 silence warning 2003-04-08 23:39:56 +00:00
Pierangelo Masarati
756d35cb6e improve (and cleanup) value normalization 2003-04-08 23:30:58 +00:00
Pierangelo Masarati
43b1658160 normalize while merging values 2003-04-08 23:27:22 +00:00
Pierangelo Masarati
06a99afbdb free cache only if required 2003-04-08 23:22:10 +00:00
Jong Hyuk Choi
b1b36ae75f bdb->bi_idl_tree_lrulock initialize 2003-04-08 16:30:56 +00:00
Pierangelo Masarati
b4dbfb570a cleanup 2003-04-08 13:22:12 +00:00
Pierangelo Masarati
5fbdf3f3eb return 'matched' only if all the targets didn't recognize the search base 2003-04-08 11:38:38 +00:00
Pierangelo Masarati
827c4277e1 mix refresh and fix; may need further work 2003-04-08 11:20:18 +00:00
Howard Chu
d01d31e54f Better detection of new search scopes 2003-04-08 11:17:20 +00:00
Jong Hyuk Choi
420210a2a3 IDL cache locking change (mutex -> rwlock) 2003-04-08 06:57:07 +00:00
Pierangelo Masarati
f73eddd426 fix attr nvals & more improvements 2003-04-07 23:22:27 +00:00
Pierangelo Masarati
9e66d3d1f0 fix referrals return 2003-04-07 23:21:55 +00:00
Pierangelo Masarati
51c658babd fix typo 2003-04-07 21:06:06 +00:00
Howard Chu
91bb1bd980 schema checks 2003-04-07 20:16:56 +00:00
Howard Chu
cd76391078 Fix !ENABLE_REWRITE 2003-04-07 19:48:10 +00:00
Howard Chu
3c704f4d14 Fix returncode checks 2003-04-07 19:47:31 +00:00
Pierangelo Masarati
81c616fdb2 works fine now 2003-04-07 19:01:48 +00:00
Pierangelo Masarati
eed02aea22 need a second function because of different free() routines 2003-04-07 17:51:42 +00:00
Pierangelo Masarati
243311d56a move to more appropriate file ... 2003-04-07 17:18:42 +00:00
Pierangelo Masarati
6dbd7341f9 use berval 2003-04-07 17:07:52 +00:00
Pierangelo Masarati
6ef22ccdcb first cut at grouping rewrite/map stuff; needs work 2003-04-07 17:04:14 +00:00
Pierangelo Masarati
96e1632d4a default remapping from target to server aliases searchResult 2003-04-07 16:59:56 +00:00
Pierangelo Masarati
93abccdee3 group rewrite/map stuff in one structure and optimize more function calls 2003-04-07 16:52:59 +00:00
Pierangelo Masarati
77c4389f55 use rewrite info instead of ldapinfo for reusability in back-meta; will change soon 2003-04-07 12:53:00 +00:00
Howard Chu
c823f9a995 Use individual addAttrDN, compareAttrDN, modifyAttrDN, searchAttrDN contexts
instead of re-using other contexts.
2003-04-07 11:55:12 +00:00
Howard Chu
8ef3bbb174 Fix prev 2003-04-07 11:50:15 +00:00
Howard Chu
7972ebe66f Fix freeval check 2003-04-07 11:49:40 +00:00
Howard Chu
c4ab31ddc9 Cleanup previous 2003-04-07 11:40:23 +00:00
Howard Chu
c607ed0a6f (SLAP_NVALUES) attr->a_nvals must not be NULL, set equal to a_vals when
not normalizing.
2003-04-07 11:38:45 +00:00
Howard Chu
bb305eee0b Fix matchedDn detection 2003-04-07 10:51:57 +00:00
Howard Chu
df05038f9e Actually free mapped attrval 2003-04-07 10:31:32 +00:00
Howard Chu
68c5f6fa98 Cleanup ENABLE_REWRITE ifdefs, put into a new ldap_back_dn_massage().
All DN attrs are massaged, whether or not ENABLE_REWRITE is defined.
Use "dnAttr" rewriteContext for Add, Compare, & Modify.
Fixed ldap_back_compare.
2003-04-07 10:15:18 +00:00
Pierangelo Masarati
45d77aea2e fix tools build when SLAPI is enabled 2003-04-07 09:33:10 +00:00
Pierangelo Masarati
c2d59edef9 need OpenLDAPaciMatch 2003-04-07 08:54:12 +00:00
Pierangelo Masarati
c03cb5102c fix most missing dependencies with SLAPI; slappasswd needs different LIBS settings ... 2003-04-07 08:53:45 +00:00
Pierangelo Masarati
504eb61495 fix and improve previous commit 2003-04-07 08:53:03 +00:00
Pierangelo Masarati
a9fd63c156 need attrs when sending entries ... 2003-04-07 08:19:26 +00:00
Kurt Zeilenga
45d74c676e cleanup 2003-04-07 04:03:55 +00:00
Kurt Zeilenga
926b2cf0bf cleanup 2003-04-07 03:46:22 +00:00
Howard Chu
8db24ce9e8 Fix backglue crash 2003-04-07 03:43:12 +00:00
Kurt Zeilenga
91b6bc606f more SLAP_NVALUES tweaking 2003-04-07 01:19:47 +00:00
Kurt Zeilenga
67d6b23d22 SLAP_NVALUES code cleanup 2003-04-07 01:06:46 +00:00
Kurt Zeilenga
b59bb2de35 More #unifdef -DSLAP_NVALUES 2003-04-06 19:16:49 +00:00
Kurt Zeilenga
35df710c64 partial #unifdef -DSLAP_NVALUES 2003-04-06 18:57:17 +00:00
Pierangelo Masarati
1bae6d28e5 silence warnings 2003-04-05 16:58:36 +00:00
Pierangelo Masarati
5804183f04 propagate selected changes to back-ldap 2003-04-05 16:53:57 +00:00
Pierangelo Masarati
1ce560383a map attrs improvement 2003-04-05 16:53:29 +00:00
Pierangelo Masarati
4235da91d4 massage bound dn only if operating on authz backend 2003-04-05 11:31:54 +00:00
Howard Chu
c0ee56c306 Define MINIMUM_SEARCH_STACK_DEPTH=8, search_aliases needs at least this. 2003-04-05 10:05:27 +00:00
Pierangelo Masarati
b2075ea932 cleanup & more 2003-04-05 09:57:21 +00:00
Howard Chu
3814b5f1a1 Range check cleanup, added alias processing comments 2003-04-05 09:46:54 +00:00
Howard Chu
fbc6a7e8ac Fix cursor initialization, scope IDs 2003-04-05 08:54:24 +00:00
Kurt Zeilenga
c866e28049 Cleanup 2003-04-05 08:40:07 +00:00
Howard Chu
cb92eaf96c Fix locking etc. in prev commit 2003-04-05 07:50:01 +00:00
Howard Chu
48a9cf3416 Added code for BDB_ALIASES. Please test. 2003-04-05 06:35:16 +00:00
Howard Chu
6f9901e9ce Moved get_alias_dn from back-ldbm to frontend 2003-04-05 06:34:20 +00:00
Kurt Zeilenga
c75be97ae9 #ifdef -DSLAP_NVALUES 2003-04-05 03:35:16 +00:00
Kurt Zeilenga
2d68ec09f2 #unifdef -DSLAP_NVALUES_ON_DISK 2003-04-05 03:11:29 +00:00
Pierangelo Masarati
f8682550d7 cleanup 2003-04-05 01:25:57 +00:00
Pierangelo Masarati
cb33a9ff44 minor fixes: leaks, dangling pointers, cleaner tag skip
for subschemaSubentry; still having problems with group ACLs ...
2003-04-05 01:20:55 +00:00
Pierangelo Masarati
ab3ab80ecd more args elimination + allow specific messages when mapping client API errors to LDAP_OTHER 2003-04-04 22:20:49 +00:00
Pierangelo Masarati
172e93bfc9 normalize values only if required 2003-04-04 11:03:29 +00:00
Pierangelo Masarati
19dc49180d handle failure or missing attrs 2003-04-04 09:55:56 +00:00
Howard Chu
b282339c96 Minor cleanup, use shorthand macros 2003-04-04 05:49:21 +00:00
Howard Chu
a1437d155e Init entry in be_entry_get_rw 2003-04-04 05:41:25 +00:00
Howard Chu
7c9e8b1b87 SLAP_NVALUES fix dup check 2003-04-04 05:39:09 +00:00
Luke Howard
7e31732cc5 Don't segfault on malformed configuration 2003-04-04 04:06:18 +00:00
Luke Howard
95f0c5d5e2 Don't free pointer into contiguously allocated memory 2003-04-04 03:58:24 +00:00
Howard Chu
604ba59196 Fix req DN massaging 2003-04-04 02:05:49 +00:00
Howard Chu
ba0b8d1ac9 Fix prev commit 2003-04-04 01:47:25 +00:00
Howard Chu
6e551b53f4 Mapping fixes, SLAP_NVALUES fixes 2003-04-04 01:01:28 +00:00
Pierangelo Masarati
5598add84e first cut at mapping/rewriting before search (after search it's already handled by ldap_build_entry) 2003-04-04 00:48:54 +00:00
Pierangelo Masarati
dfbbd11bd3 remove more unnecessary args 2003-04-04 00:43:40 +00:00
Howard Chu
a9339c99f6 Fix shared/private binds, fix entry_get malloc 2003-04-03 23:55:57 +00:00
Pierangelo Masarati
ebe0bb0b52 trim unnecessary args 2003-04-03 23:23:56 +00:00
Pierangelo Masarati
44c2d8a771 backout this for now 2003-04-03 23:09:17 +00:00
Pierangelo Masarati
5f342a8431 silence warning 2003-04-03 23:08:47 +00:00
Pierangelo Masarati
811929011d anyone knows a safer way to skip a tag? 2003-04-03 22:54:51 +00:00
Pierangelo Masarati
d218848b14 of course there's a better way to skip a tag :) 2003-04-03 22:48:17 +00:00
Pierangelo Masarati
bb4624c8b0 eat undesired values 2003-04-03 22:40:41 +00:00
Pierangelo Masarati
95991161c6 FIXME: is this the intended behavior? 2003-04-03 22:18:17 +00:00
Pierangelo Masarati
d07ea8b450 need this to be able to bound searches when back-ldap and the source are on the same server; does it look fine? 2003-04-03 21:44:43 +00:00
Pierangelo Masarati
e8c264b1f6 safe defaults 2003-04-03 21:40:04 +00:00
Pierangelo Masarati
798289fd50 new API; compiles if proxy is disabled 2003-04-03 21:35:54 +00:00