Commit Graph

871 Commits

Author SHA1 Message Date
Jeff Becker
7e4d74cbfc
add initial jni stuff for lokinet android. i fucking hate android so god damn much. 2018-11-26 17:46:22 -05:00
Ryan Tharp
7874567611 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-26 15:54:52 +00:00
Jeff
5351ea5e22
Merge pull request #83 from majestrate/master
better config settings for defaults
2018-11-26 08:41:28 -05:00
Jeff Becker
7e3038fc26
better config settings for defaults 2018-11-26 08:39:04 -05:00
Jeff Becker
25fac844eb
make format 2018-11-26 08:30:03 -05:00
Jeff Becker
62533dda1d
better config settings for defaults 2018-11-26 08:29:45 -05:00
Jeff Becker
a81b88cc93
Merge remote-tracking branch 'origin/master' into dev 2018-11-25 11:59:47 -05:00
Jeff
a33f334bc2 better exit path logic 2018-11-25 11:58:27 -05:00
Jeff Becker
c1e494c2c4
have llarp_ev_* use llarp_buffer_t 2018-11-23 09:37:26 -05:00
Michael
e4c5f4f77a
Update from typedef to using in .hpp files 2018-11-23 00:07:45 +00:00
Jeff Becker
5d0a9d7dc7
make format 2018-11-22 10:53:11 -05:00
Jeff Becker
0ac6deff00
logging, fix hidden services 2018-11-22 10:52:04 -05:00
Jeff Becker
cf57eca7c3
check keyspace distance and inform not found when next peer is not closer than previous peer 2018-11-22 09:20:49 -05:00
Ryan Tharp
c850906b89 clang-format 2018-11-21 17:25:23 -08:00
Ryan Tharp
1c6031c677 clang-format 2018-11-21 16:39:09 -08:00
Ryan Tharp
0046b705e8 generic_handle_dnsc_recvfrom() remove unneeded parameter, start making daemon/dns better, deprecate raw_handle_recvfrom() 2018-11-21 16:29:42 -08:00
Jeff
b7f5bb0178 Merge branch 'dev' of ssh://github.com/loki-project/loki-network into dev 2018-11-21 19:02:00 -05:00
Ryan Tharp
d11ba89fbc Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-21 23:38:57 +00:00
Ryan Tharp
adab894ffe llarp_buffer_t conversion, decode the header one less time, move up where packet hdr is set, use emplace_back instead of push_back 2018-11-21 15:34:26 -08:00
Ryan Tharp
730fff7438 change casting, SOA type start, sang/micahel code review fixes 2018-11-21 15:32:43 -08:00
Ryan Tharp
638692f48a magic numbers to defs, llarp_buffer_t implementation, cleanup, Michael/Sang code review changes 2018-11-21 15:23:19 -08:00
Jeff Becker
0bbf9c431a
more flags for compile 2018-11-21 16:52:35 -05:00
Jeff Becker
67eadff143
node whitelist option via jsonrpc 2018-11-21 12:46:33 -05:00
Jeff Becker
c1377851a6
return bool when trying to establish link layer session 2018-11-21 09:56:12 -05:00
Jeff Becker
a202bc58a8
use correct path roles 2018-11-21 09:30:14 -05:00
Ryan Tharp
40522639ce Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-21 13:39:27 +00:00
Jeff Becker
2bd2815290
don't sign traffic 2018-11-21 07:31:36 -05:00
Ryan Tharp
efe86c2401 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-20 19:32:12 +00:00
Jeff Becker
1380014583
set hooks 2018-11-20 11:58:18 -05:00
despair
f23afc9f98 eh no more escapes 2018-11-20 10:00:43 -06:00
Jeff Becker
2e3adb48e3
add boilerplate for router whitelist via jsonrpc, disabled at the moment 2018-11-20 10:22:59 -05:00
despair
9301a4165e oof, missed the leading underscore
clang-format
fading away, PR imminent :DDDDDD
-rick
2018-11-20 08:49:53 -06:00
despair
6792f3f378 add qol fix for oldfag clients or those who inexplicably have the legacy console turned ON 2018-11-20 08:47:17 -06:00
Jeff Becker
a4c30a4b81
fix merge 2018-11-20 07:44:18 -05:00
Jeff Becker
b543d6243d
Merge branch 'master' into dev 2018-11-20 07:42:17 -05:00
Michael
d21af22ca3
Rename defaults.h 2018-11-20 00:52:19 +00:00
Michael
d750ec0605
Rename logic.h 2018-11-20 00:52:19 +00:00
Michael
1c0cf72c02
Rename endian.h 2018-11-20 00:52:19 +00:00
Michael
f91d2b9e11
Rename proto.h 2018-11-20 00:52:19 +00:00
Michael
e39d02ddc2
Rename version.h 2018-11-20 00:52:19 +00:00
Michael
4851c54c92
Rename common.h 2018-11-20 00:52:19 +00:00
Ryan Tharp
271ef910d7 Fix RPI build 2018-11-20 00:13:27 +00:00
Ryan Tharp
375c39e748 Merge branch 'master' of http://github.com/loki-project/loki-network 2018-11-19 23:44:42 +00:00
Ryan Tharp
3a8a90e440 make gcc 8.2 and RPI=1 happy 2018-11-19 23:42:04 +00:00
Michael
0b2ebc83e0
De-C-ify several .h headers 2018-11-19 22:45:37 +00:00
Jeff Becker
2e13daae27
start threadpool explicitly 2018-11-19 11:40:49 -05:00
Jeff Becker
4e105f3cd5
add std::optional backport option for cxx11 2018-11-19 11:31:12 -05:00
Jeff Becker
5357b4b69f
make clang happy, disable netns by default (for now) 2018-11-19 08:39:35 -05:00
Jeff Becker
d37daf7996
Merge branch 'master' into dev 2018-11-19 06:57:29 -05:00
despair
be7ac352ca switch to a simulation of epoll
the native async event system on windows
is _not_ very good at getting external events
(i.e. we receive data, but we don't get any indication
that this ever happened)
2018-11-19 04:29:39 -06:00
despair
e18f786ab2 refactor event loop stuff
find some place in the C code to place the worker thread procedure
until such time that michael presents the new thread pool class

fix unix

get a new event port each time and delet in the event loop after use
2018-11-19 04:29:39 -06:00
Ryan Tharp
de418125f2 remove redundance from (sockaddr) param refactor 2018-11-18 15:48:50 -08:00
Ryan Tharp
7039d70aa5 clean up 2018-11-18 15:47:53 -08:00
Ryan Tharp
969865c499 internal refactor
- created various structs for each record type
- changed DNSd to return most of the recieved packet (allowing for multiple answers)
- favor vector<byte_t> over c-style buffers
- support NS records a little better
- fixed output on cname, ptr, txt
2018-11-18 15:08:02 -08:00
Jeff
930b41f644 temp commit 2018-11-18 12:00:02 -05:00
Jeff Becker
602a883038
add missing include for linux 2018-11-18 07:49:35 -05:00
Jeff Becker
f5ac1b5c0d
Merge branch 'master' into dev 2018-11-18 07:43:13 -05:00
Michael
8a52bf448e
Create Queue component with test suite 2018-11-17 21:13:34 +00:00
Jeff Becker
e3dc4dca11
mark paths as dead when they need to and revert codel changes 2018-11-17 13:40:13 -05:00
Jeff Becker
ae62627c50
gfdi 2018-11-16 09:22:13 -05:00
Jeff Becker
8b64bb336a
syntax error 2018-11-16 09:21:52 -05:00
Jeff Becker
ce2760135a
mark paths as active when they are 2018-11-16 09:21:23 -05:00
Jeff Becker
6866e70a95
build paths if we are out of exits on exit session 2018-11-16 09:03:13 -05:00
Jeff Becker
b56b3ad16d
don't remove ip mapping when endpoints are removed 2018-11-15 17:10:12 -05:00
Jeff Becker
17297837d9
that's dumb af, use std::unique_ptr 2018-11-15 16:47:05 -05:00
Jeff Becker
d6c42c4a30
gfdi 2018-11-15 13:40:08 -05:00
Jeff Becker
9d551ba768
more 2018-11-15 13:10:09 -05:00
Jeff Becker
937ab151ab
idk what is going on 2018-11-15 11:19:24 -05:00
Jeff Becker
c7c6905e1e
explicit type 2018-11-15 11:05:31 -05:00
Jeff Becker
7b188d0fde
more 2018-11-15 10:46:50 -05:00
Jeff Becker
60ad2c76e0
try this 2018-11-15 09:44:57 -05:00
Jeff Becker
09be390236
god fucking damnit 2018-11-15 09:19:50 -05:00
Jeff Becker
658210b9d1
fix up exit tun, fix up codel to actually do its job 2018-11-15 08:13:19 -05:00
Jeff Becker
9495f556e0
Merge remote-tracking branch 'micheal/patch-1' into dev 2018-11-15 06:29:38 -05:00
michael-loki
79504b453e
Correct warning in exit.hpp 2018-11-15 01:33:00 +00:00
Jeff Becker
b11bddad02
fixes 2018-11-14 16:31:21 -05:00
Jeff Becker
08114da285
fix previous commit 2018-11-14 14:53:31 -05:00
Jeff Becker
0b63a7d66e
dont build for exit node 2018-11-14 14:53:03 -05:00
Jeff Becker
56676002aa
wire up exit traffic 2018-11-14 14:34:17 -05:00
Jeff Becker
5dbe41608f
more exit stuff 2018-11-14 13:02:27 -05:00
Jeff Becker
f40e4c0c84
more exit stuff 2018-11-14 07:23:08 -05:00
Jeff Becker
e91d7cf88f
Merge remote-tracking branch 'rick/dev' into dev 2018-11-13 06:39:41 -05:00
despair
d311b2e9a9 remove dead code
(rip golden shield users D:)

remove more dead code

debug udp stuff

remove debug kqueue
2018-11-12 23:39:50 -06:00
Jeff Becker
09945dce62
initial exit/service node comm code with some unit tests (incomplete) 2018-11-12 11:43:40 -05:00
Jeff
49cd5dfaa6 fix dns on macos 2018-11-11 10:24:08 -05:00
Jeff Becker
7b61cbb4a1
make dns port configurable, update default dns 2018-11-11 08:30:54 -05:00
Jeff Becker
a83e21c464
add upstream dns to default hidden service 2018-11-11 08:22:02 -05:00
Jeff Becker
fb0e6c3d9c
make dns configurable on runtime 2018-11-11 08:14:19 -05:00
Jeff Becker
c30d908893
Merge branch 'master' into dev 2018-11-09 09:49:00 -05:00
Jeff Becker
a59343cfec
we NEED NT >= 6 for event loop 2018-11-09 09:48:43 -05:00
Jeff Becker
e0f1d985c8
more dht tweaks 2018-11-08 14:25:04 -05:00
Jeff Becker
38a92cb1a8
fixes for testnet 2018-11-08 10:15:02 -05:00
Jeff Becker
960aa479e9
fixes for ancient rpi toolchain 2018-11-08 07:31:50 -05:00
Jeff Becker
7a78832841
Merge remote-tracking branch 'rick/dev' 2018-11-07 11:05:47 -05:00
Jeff Becker
7090a012f3
Merge remote-tracking branch 'micheal/wextra' into dev 2018-11-07 10:57:34 -05:00
Michael Thorpe
33bfaf7ecd
Enable -Wextra
test criteria:
- test build on macOS
- test build in debian docker container
- test build in fedora docker container
2018-11-07 15:31:13 +00:00
despair
04e620ebf2 add iocp tcp connect
msys2 grabs its reactos sdk headers straight out of git
most cross-compilers use the versioned releases (v6 as of last week)

huh. for once setting the windows version macros doesn't break anything.
2018-11-06 17:54:34 -06:00
Jeff Becker
f1cca956f9
make android compile again 2018-11-06 09:06:09 -05:00
Jeff Becker
d4d1426a3f
bump version kuz yolo 2018-11-05 19:03:45 -05:00
Jeff Becker
b96ee375c9
Merge remote-tracking branch 'micheal/virtual' 2018-11-05 06:37:58 -05:00
Jeff Becker
13f9816c38
format 2018-11-05 06:37:17 -05:00
Jeff Becker
11e2e565c3
correct endianness 2018-11-05 06:36:49 -05:00
Jeff Becker
80b99d2efb
make format and parallelize analyze target in makefile 2018-11-05 06:31:43 -05:00
Michael Thorpe
a5f99def0b
Specify override and final in inheritance tree of llarp::IBEncodeMessage 2018-11-05 11:27:37 +00:00
Jeff Becker
7c3f80e84b
Merge remote-tracking branch 'ryan/master' 2018-11-05 06:20:56 -05:00
Ryan Tharp
917edfbd4e update llarp::Addr changes 2018-11-04 19:44:58 -08:00
Michael Thorpe
4f794277bc
Fix compile issue in endpoint.cpp 2018-11-03 20:17:28 +00:00
Ryan Tharp
1957916170 re-import missing addr functionality, make compile 2018-11-03 13:52:50 +00:00
Ryan Tharp
5d90cbe895 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-11-03 13:43:21 +00:00
Ryan Tharp
67390de0c2 merge 2018-11-03 06:19:18 -07:00
Jeff Becker
f285a0ac3e
update tests 2018-11-02 13:08:01 -04:00
cathugger
73e6141023
ip: endianess swaps aren't needed, a bit of renaming and tweaking
Also `make format`.
2018-11-02 11:00:05 -04:00
Jeff Becker
2d279e83fd
initial tcp connect for epoll 2018-11-01 08:47:14 -04:00
despair
186e2ea989 refactored event loop base classes
use the base class impl for llarp::tcp_conn::sendto

can't seem to escape quotes ;-;

yeah this need to stay out of the unix build

turn on gnu extensions

apple stuff

remove duplicate code

clean up

fix vtable

clang-format

parameter checks
2018-10-30 00:41:44 -05:00
despair
c5d1b32286 remove microsoft c++ crud
🤔🤔🤔🤔
2018-10-30 00:16:33 -05:00
despair
d425b5d308 implement tcp evloop on win32
(with its now-obsolete distinction between socketfd and fd)

sockets and file descriptors used to be distinct objects....back in the
16-bit Winsock 1.1 era, which needlessly complicated the 32-bit port
back then. these days one can use [Read|Write]File(2) to operate on
sockfds...which also have some of the semantics of [read|write]v(2)
i.e. the scatter-gather thing it's known for is done in async handler

-rick

variants are nice

added note to self

clang-format

link abyss properly

oops

shut up

*shrugs*

oops forgot to start winsock

moved our async io status flags to the base class

let derived classes override them as needed

this is probably a synchronous op _anyway_

fix typo

wtf
2018-10-30 00:16:33 -05:00
Ryan Tharp
5248283128 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-10-29 23:15:53 +00:00
Jeff Becker
69e187cfd7
make it compile 2018-10-29 13:20:50 -04:00
Jeff Becker
0320736cae
don't shadow 2018-10-29 12:51:52 -04:00
Jeff Becker
dbd2c41909
use event loop for time 2018-10-29 12:48:36 -04:00
Ryan Tharp
7bfbe78d73 Merge branch 'master' of https://github.com/neuroscr/loki-network 2018-10-28 13:11:12 +00:00
Jeff
b842f5af20 tweak lookup timeout 2018-10-28 08:56:14 -04:00
Ryan Tharp
3f424e545d Merge branch 'master' of https://github.com/loki-project/loki-network 2018-10-27 22:57:19 +00:00
Jeff Becker
6e1761eb05
first jsonrpc endpoint added 2018-10-25 15:06:16 -04:00
Jeff Becker
48e4f676cc
add rpc method for llarp.admin.link.neighboors 2018-10-25 14:18:12 -04:00
Jeff Becker
957a5ed833
initial epoll event loop implementation for tcp 2018-10-24 14:02:42 -04:00
Ryan Tharp
d800e4dd17 add doc 2018-10-24 03:22:26 -07:00
Ryan Tharp
6f261c321c Merge branch 'master' of https://github.com/neuroscr/loki-network 2018-10-24 03:34:08 +00:00
Jeff
21e20dde18 change scope 2018-10-23 17:33:49 -04:00
Jeff
8c591ceb96 use default endpoint 2018-10-23 17:28:01 -04:00
Jeff
429cd3b63c use const 2018-10-23 14:21:23 -04:00
Jeff
7953f1fa48 make it compile 2018-10-23 14:18:45 -04:00
Jeff
f35f34ede4 check for address 2018-10-23 14:18:00 -04:00
Jeff
5997960f70 make it compile 2018-10-23 14:06:55 -04:00
Jeff
c3989cbcf4 make dns work correctly with rdns, tired of waiting just make it fucking work. 2018-10-23 14:00:55 -04:00
Ryan Tharp
4646779b0a refactor out net.hpp => net_addr.*, new inAddr struct API 2018-10-23 08:38:33 -07:00
Jeff Becker
e469b55200
update to not use sodium.h 2018-10-23 08:55:46 -04:00
Jeff Becker
4411d85040
fix headers 2018-10-23 08:40:34 -04:00
despair86
d8cfac47a8
ok updated to match recent changes 2018-10-23 07:56:59 -04:00
Jeff Becker
cc106ed37b
fix dht bug, probably, re-enable loopback testnet functionality 2018-10-21 10:19:49 -04:00
Jeff Becker
c6f1355c5d
Merge branch 'master' into dev 2018-10-21 09:07:48 -04:00
Jeff Becker
118954818c
try fixing memleak 2018-10-21 09:07:33 -04:00
Jeff Becker
d3bada5564
fix windows 2018-10-19 12:54:08 -04:00
Jeff Becker
f16cfd60e4
bump version string 2018-10-19 12:35:50 -04:00
Ryan Tharp
3b24b69513 TunEndpoint::ObtainAddrForIP(), identity tun range better, actually return revdns for tunmapaddrs, make in-addr.arpa matching smarter, actually send 404s, additional unit test 2018-10-19 07:53:06 -07:00
Ryan Tharp
db64547ab3 Merge branch 'master' of https://github.com/loki-project/loki-network 2018-10-19 12:33:13 +00:00
Jeff Becker
40b003b6fc
Merge branch 'dev' of ssh://github.com/loki-project/loki-network into dev 2018-10-19 07:41:47 -04:00
Jeff Becker
612057003a
de changes 2018-10-19 07:41:36 -04:00
Jeff
1cb2bb6136 Merge branch 'dev' 2018-10-19 07:35:51 -04:00
Jeff
cc3908f025 more changes 2018-10-19 07:34:27 -04:00
Jeff
71172fe72b use std::unique_ptr as to not leak like a motherfucker 2018-10-19 07:33:49 -04:00
Ryan Tharp
eca721a9c2 add note 2018-10-18 05:15:41 -07:00
despair86
9d546cbac4 separate read and write event ports to avoid overwriting queue events 2018-10-16 12:18:29 -05:00
despair86
b2cb4cd0e8 fix uint 2018-10-16 12:18:28 -05:00
Jeff Becker
15c99f3192
unit tests for bogons 2018-10-16 11:25:50 -04:00
Jeff Becker
e4f8917a89
correct ip range check 2018-10-16 07:10:27 -04:00
Jeff
1da0f9f6f5 path randomization for lookups on failure 2018-10-15 17:20:05 -04:00
Jeff Becker
f72a954029
log endpoint when requesting introset 2018-10-15 11:43:41 -04:00
Jeff Becker
d3278946f2
ipv4 bogon checking 2018-10-15 08:02:32 -04:00
cathugger
4d5f5fecfa
ip: make things fragmentation-aware, cleanup UDP handling; also format
one's complement math is pretty fun
2018-10-13 18:42:47 +03:00
Jeff Becker
bf9512dfaf
Merge remote-tracking branch 'ryan/master' 2018-10-12 08:05:03 -04:00
Jeff Becker
8bf28940d1
Merge remote-tracking branch 'cathugger/master' 2018-10-12 08:02:37 -04:00
cathugger
fdc54a4cce
ip: insignificant change of arguments case 2018-10-12 04:53:18 +00:00
cathugger
18c20396b6
add {h,n}uint16_t types, optimize TCP/UDP checksuming
use static functions + switch instead of lambda functions + map.
2018-10-12 04:38:16 +00:00
despair86
e08dedf7a2 really fix endianness 2018-10-11 19:22:10 -05:00
despair86
630cf99bae fix inet4 to inet6 transition bug 2018-10-11 19:22:10 -05:00
Ryan Tharp
14ccb2f81e Merge branch 'master' of https://github.com/loki-project/loki-network 2018-10-11 12:21:16 +00:00
Jeff Becker
252b2ee3fb
move function into source file out of header and add operator overloading for == and != on introset 2018-10-11 07:41:10 -04:00
cathugger
71c9965471
ip: code cleanups and compatibility improvements
do not assume that packets come with address zero-ed, older clients don't do that.
they don't modify checksum either, therefore we should be able to get correct checksum if we use deltachksum with old and new addresses.
2018-10-10 21:41:53 +00:00
cathugger
e1c7d8a696 some tweaks and fixups 2018-10-10 15:50:52 +00:00
cathugger
4971fae171 uint32_t byte ordering type safety 2018-10-10 15:16:10 +00:00
Jeff Becker
aa988a6fa4
Merge remote-tracking branch 'cathugger/master' 2018-10-10 08:10:04 -04:00
cathugger
05e6c31238 ip: some fixes and tweaks 2018-10-10 12:06:28 +00:00
Jeff Becker
32a028f6d8
Merge remote-tracking branch 'cathugger/master' 2018-10-10 07:48:44 -04:00
Jeff Becker
6f781def8d
update logger to do less allocations 2018-10-10 07:47:59 -04:00
cathugger
b5392c5679 make format 2018-10-09 20:09:45 +03:00
cathugger
4cba59f3c4 tun+ip: clarify what happens where 2018-10-09 17:09:03 +03:00
Ryan Tharp
e0ecb468b6 make sure everything is exposed, improve comments 2018-10-09 05:42:21 -07:00
Ryan Tharp
529cd4e6a3 expose dns_query and build_dns_packet() 2018-10-09 05:41:33 -07:00
Ryan Tharp
3f8dbeca49 expose internal functions, fix language scoping 2018-10-09 05:40:24 -07:00
Ryan Tharp
1e43fc2243 deprecate some cruft and hopefully it won't break anything 2018-10-09 05:39:47 -07:00
Ryan Tharp
f2fc95550d implement logLevel None 2018-10-09 05:39:14 -07:00
Ryan Tharp
9b3bd751e7 non-const sockaddr support 2018-10-09 05:37:56 -07:00
Jeff Becker
475ac63f4a
initial admin api infra 2018-10-09 08:06:30 -04:00
Ryan Tharp
2fb5eaba1c remove getSockAddr() per Jeffs PR CR, add additional notes to reduce confusion 2018-10-09 11:02:06 +00:00
Ryan Tharp
4d3ad13daa Merge branch 'master' of https://github.com/loki-project/loki-network 2018-10-09 10:41:19 +00:00
Ryan Tharp
9bc9eed1d5 Merge branch 'master' of https://github.com/neuroscr/loki-network 2018-10-09 10:41:00 +00:00
Jeff
1f250ad9f6 better operator overload 2018-10-08 17:23:45 -04:00
Jeff
0c4709efdd Merge branch 'master' of ssh://github.com/loki-project/loki-network 2018-10-08 07:56:46 -04:00
Jeff
93586c5bbb forgot file 2018-10-08 07:56:40 -04:00
Jeff
a1d1518bc0 update logging to use human readable time 2018-10-08 07:56:17 -04:00
despair86
3c13101beb clang-format 2018-10-06 12:04:52 -05:00
despair86
94c5f46d33 try fixing win32 event loop 2018-10-06 12:04:50 -05:00
Jeff
11753f5d7e clarification for path transfer 2018-10-06 12:37:54 -04:00
Jeff Becker
746e95994e
stricter profiling and better handover 2018-10-04 12:48:26 -04:00
Jeff Becker
dd8dd7430b
double path build timeouts 2018-10-04 12:05:07 -04:00
Ryan Tharp
1efb68e9cd
pass tracker into dns_iptracker_setup 2018-10-04 11:20:34 -04:00
Ryan Tharp
bd1a25856e Merge branch 'master' of https://github.com/neuroscr/loki-network 2018-10-04 07:14:06 -07:00
Ryan Tharp
17cf64f029 make inform pass by val so the ref doesn't get delete and used 2018-10-04 07:11:41 -07:00
Ryan Tharp
27afd392f2 pass tracker into dns_iptracker_setup 2018-10-04 07:10:09 -07:00