Commit Graph

747 Commits

Author SHA1 Message Date
Christian Grothoff
81e234e723 store and retrieve arrays from database where arrays are the unit of transaction, to reduce number of DB interactions 2015-03-22 14:21:16 +01:00
Christian Grothoff
3a94a76aac move free functions into plugin 2015-03-22 13:02:49 +01:00
Christian Grothoff
0d3ec509d7 move free functions into plugin 2015-03-22 13:02:11 +01:00
Christian Grothoff
53876904c5 fill in plugin vtable 2015-03-22 12:49:48 +01:00
Christian Grothoff
f7025fd630 fix testcase FTBFS 2015-03-21 14:21:00 +01:00
Christian Grothoff
067d489141 -fix FTBFS 2015-03-21 14:04:13 +01:00
Christian Grothoff
7d9a403275 first stab at establishing proper plugin API, main HTTP code compiles, other binaries FTBFS right now 2015-03-20 23:51:28 +01:00
Christian Grothoff
0414fb51a9 -link against libjansson 2015-03-19 21:52:11 +01:00
Christian Grothoff
fe0a75eaa0 use new GNUnet APIs to convert ECDSA to ECDHE keys 2015-03-19 14:23:43 +01:00
Christian Grothoff
10f75510c0 fix #3716: make sure amount-API offers proper checks against overflow and other issues 2015-03-18 18:57:36 +01:00
Christian Grothoff
6ba63aab84 fix #3716: make sure amount-API offers proper checks against overflow and other issues 2015-03-18 18:56:48 +01:00
Christian Grothoff
1f3f4ed8dd Merge branch 'master' of git+ssh://taler.net/var/git/mint 2015-03-18 18:55:46 +01:00
Christian Grothoff
23bf1eee74 fix #3716: make sure amount-API offers proper checks against overflow and other issues 2015-03-18 18:55:41 +01:00
Sree Harsha Totakura
e6b13123d7 update reserve summary when withdraws are made through insert_collectible_blindcoin 2015-03-18 13:50:03 +01:00
Christian Grothoff
08958c73e8 add refs to bugtracker 2015-03-17 14:54:04 +01:00
Christian Grothoff
e0ae4e1290 conclude taler-mint-keyup initial review 2015-03-17 14:45:31 +01:00
Christian Grothoff
b314f07431 make keyup configuration structure more logical 2015-03-17 14:34:55 +01:00
Christian Grothoff
93d1fe6e68 simplify 2015-03-17 12:27:26 +01:00
Christian Grothoff
2018a6b713 use existing log functions more 2015-03-17 12:17:42 +01:00
Christian Grothoff
4eeaff1355 documentation, comments 2015-03-17 11:37:21 +01:00
Christian Grothoff
0119f629b3 move TALER_CONFIG_get_denom into util lib 2015-03-17 10:48:12 +01:00
Christian Grothoff
293b4018d1 fix documentation and minor issues in DB tools 2015-03-16 18:19:05 +01:00
Sree Harsha Totakura
b3e076b10a db: testcases for insert_deposit and have_deposit 2015-03-16 11:08:52 +01:00
Sree Harsha Totakura
d794a6d53a db: implement have_deposit() 2015-03-16 11:08:52 +01:00
Sree Harsha Totakura
99af8083f5 db: implement insert_deposit() 2015-03-16 11:08:52 +01:00
Sree Harsha Totakura
f8a77d3ca9 util: Use TALER_CURRENCY_LEN instead of sizeof() 2015-03-16 11:08:52 +01:00
Sree Harsha Totakura
b7c6edb0e5 httpd: Use the right fee for deposit transaction 2015-03-16 11:08:52 +01:00
Sree Harsha Totakura
7a417e1de0 db: update deposits table to support var length RSA denom keys 2015-03-16 11:08:52 +01:00
Christian Grothoff
8e7f9c2939 misc minor indentation, logging, comment fixes 2015-03-15 22:33:28 +01:00
Christian Grothoff
a6a68a6a98 review and minor fixes for taler-mint-keycheck.c 2015-03-15 21:10:05 +01:00
Christian Grothoff
b5e69f22e9 -fix recently introduced ftbfs 2015-03-15 18:49:26 +01:00
Christian Grothoff
dc0146ea68 note todo 2015-03-15 18:40:32 +01:00
Christian Grothoff
464077c547 properly handle variable-size RSA keys in key_io.c 2015-03-15 18:37:08 +01:00
Christian Grothoff
4d98a1200a refactor denomination key structs to allow proper signing / serialization with new variable-size RSA keys 2015-03-15 18:27:32 +01:00
Christian Grothoff
7673ca0137 document structs better 2015-03-15 18:18:14 +01:00
Christian Grothoff
126cd5b3ff identifying where key_io still needs to be adapted 2015-03-15 18:08:04 +01:00
Christian Grothoff
af79e61f4d fixing minor memory leak, improving documentation 2015-03-15 18:03:57 +01:00
Christian Grothoff
ca8612b6db documenting 2015-03-15 17:39:44 +01:00
Christian Grothoff
ee2180b144 fixing minor memory leak 2015-03-15 17:21:38 +01:00
Christian Grothoff
64d2ca9e5c fixing minor memory leak 2015-03-15 17:21:18 +01:00
Christian Grothoff
7e6b7e6b53 remove dead #includes 2015-03-15 17:17:29 +01:00
Christian Grothoff
1479d2ce06 minor beautifications 2015-03-15 17:14:11 +01:00
Christian Grothoff
39f5ff83c6 minor beautifications 2015-03-15 17:13:19 +01:00
Christian Grothoff
c7d4216274 use GNUNET_CRYPTO_rsa_public_key_hash instead of re-implementing it 2015-03-15 17:10:15 +01:00
Christian Grothoff
a16c7ae39f cleaner /keys set filtering logic 2015-03-15 17:08:12 +01:00
Christian Grothoff
51b9d209f5 warn if no signing key was found, fix next_reload calculation 2015-03-15 16:58:21 +01:00
Christian Grothoff
92afa4e1db adding filename argument to signkey iterator for better diagnostic messages 2015-03-15 16:52:19 +01:00
Christian Grothoff
37a194c0ba simplify json construction code 2015-03-15 16:44:53 +01:00
Christian Grothoff
53b189868e moving low-level JSON encoding logic to json.c 2015-03-15 16:39:06 +01:00
Christian Grothoff
76dda24c11 fixing another minor leak, improving comments 2015-03-15 16:12:43 +01:00
Christian Grothoff
8077e0f21c fix memory leaks on keystate reloading, simplify keystate reloading logic 2015-03-15 16:05:48 +01:00
Christian Grothoff
d0f2d8b426 simplify code structure, reduce exposure of keystate struct 2015-03-15 15:40:07 +01:00
Christian Grothoff
6404213457 use wire validation routine 2015-03-13 10:01:57 +01:00
Christian Grothoff
968e4aa68f slightly better error generation on /refresh/reveal errors 2015-03-13 09:49:47 +01:00
Christian Grothoff
2f70806cfa fix #3635 2015-03-10 17:05:48 +01:00
Christian Grothoff
7e26ae3858 clean up refresh logic and use of signatures 2015-03-10 17:00:12 +01:00
Christian Grothoff
e3b8f5117e remove redundant arg 'num_oldcoins/num_newcoins' 2015-03-10 16:25:23 +01:00
Christian Grothoff
daa5fbe3b7 remove redundant arg 'commit_client_sig' 2015-03-10 16:21:20 +01:00
Christian Grothoff
c2c8646a83 combining /mint/melt and /mint/commit 2015-03-10 16:15:14 +01:00
Sree Harsha Totakura
07f18f1660 db: Implement get_reserve_history() 2015-03-09 19:54:44 +01:00
Sree Harsha Totakura
3d4c72e207 db: add currency column to reserves_in table 2015-03-09 19:52:54 +01:00
Sree Harsha Totakura
1841c0e703 db: Cache denom key signatures to DB. 2015-03-09 19:50:58 +01:00
Christian Grothoff
8eaeda9958 fix use of signature for noreveal index, needs to be tied to session hash 2015-03-09 13:21:55 +01:00
Christian Grothoff
ce8272446e actually include purpose payload in sig 2015-03-09 13:07:27 +01:00
Christian Grothoff
e4e8fe6c7c add withdraw proof to reserve history json 2015-03-09 13:04:51 +01:00
Christian Grothoff
f2700dc6ee Merge branch 'master' of git+ssh://taler.net/var/git/mint 2015-03-09 12:29:46 +01:00
Christian Grothoff
579f465c9b implementing #3632: generate proof of insufficient funds by converting transaction history to JSON 2015-03-09 12:29:41 +01:00
Sree Harsha Totakura
5fb7b6356f Merge branch 'master' of taler.net:mint 2015-03-09 11:32:30 +01:00
Sree Harsha Totakura
0b92ae7f6c db: fix test-mint-db FTBFS 2015-03-09 11:32:00 +01:00
Christian Grothoff
7b0ae9c1d0 fix ftbfs vs. latest GNUnet APIs 2015-03-09 11:24:35 +01:00
Sree Harsha Totakura
6714e6a9cc db: Implement get_collectable_blindcoin 2015-03-07 15:25:16 +01:00
Sree Harsha Totakura
19f05fd20b db: Fix uninitialized result cleanup 2015-03-07 14:09:08 +01:00
Sree Harsha Totakura
f1d86b7ec2 db: Implement insert_collectable_blindcoin 2015-03-07 14:09:08 +01:00
Sree Harsha Totakura
21eae0ff7e db: remove reserves_out table 2015-03-06 21:35:38 +01:00
Sree Harsha Totakura
9879b8e8d3 util: reduce taler currency length to 4 2015-03-06 17:58:02 +01:00
Sree Harsha Totakura
19911c825b db: Do not store blind signature as we generate them on the fly 2015-03-06 17:56:23 +01:00
Sree Harsha Totakura
8c16c7372a db: Add `reserves_out' table. 2015-03-06 17:52:24 +01:00
Sree Harsha Totakura
a458eab0cc db: Extend testcase 2015-03-06 16:08:39 +01:00
Sree Harsha Totakura
0220c51bc9 db: Added testcase for reserves_in_insert() 2015-03-06 10:32:58 +01:00
Sree Harsha Totakura
0c4579085a db: Implement reserves_in_insert() 2015-03-06 10:32:53 +01:00
Sree Harsha Totakura
7aab16da34 db: Add QUERY_ERR macro to log failed queries 2015-03-06 10:32:53 +01:00
Sree Harsha Totakura
234cdb4a62 db: fix compile warning in taler-mint-dbinit.c 2015-03-06 10:32:52 +01:00
Sree Harsha Totakura
d5a593dd03 db: rename break_db_err' to BREAK_DB_ERR' 2015-03-06 10:32:02 +01:00
Sree Harsha Totakura
72c298b52e util: use const whenever applicable 2015-03-06 10:32:02 +01:00
Sree Harsha Totakura
51929fe759 db: Use macro while creating prepared statements 2015-03-06 10:32:02 +01:00
Sree Harsha Totakura
3f7a1a5c8a db: No special handling for failed INDEX creation 2015-03-06 10:32:02 +01:00
Sree Harsha Totakura
39c538311d db: Use a reserve structure 2015-03-06 10:31:57 +01:00
Sree Harsha Totakura
363773698a db: Add DB_reserve_get() to get a summary of the reserve 2015-03-06 10:31:50 +01:00
Sree Harsha Totakura
b6484371fb db: Fix some prepared statements 2015-03-06 10:31:44 +01:00
Sree Harsha Totakura
39e8dd862b db: Add temporary flag to DB_get_connection() 2015-03-06 10:31:22 +01:00
Sree Harsha Totakura
c9d48a4a6c Fix ResultSpec processing 2015-03-06 10:31:22 +01:00
Sree Harsha Totakura
0acd5714e0 Move table creation logic to DB layer. Also support temporary schema creation for the sake of testing 2015-03-06 10:31:22 +01:00
Sree Harsha Totakura
b82a593dbb db: Add testcase for DB layer 2015-03-06 10:31:04 +01:00
Sree Harsha Totakura
bea425de6c Fix #3624: Check JSON format for wire deposits (SEPA specification) 2015-02-17 17:29:43 +01:00
Christian Grothoff
3cd1bef1ff bringing copyright tags up to FSF standard 2015-02-08 00:17:40 +01:00
Christian Grothoff
477e68c506 bringing copyright tags up to FSF standard 2015-02-08 00:16:22 +01:00
Christian Grothoff
d86ae26ef5 mark unchecked functions 2015-01-31 20:54:38 +01:00
Christian Grothoff
20c05dd5e3 cleaning up /refresh/link logic, in particular separting out response generation logic 2015-01-31 20:53:19 +01:00
Christian Grothoff
2bb962c9be finished first pass over /refresh/reveal logic, simplifying mint_db API by keeping sigs around immediately 2015-01-31 20:08:21 +01:00
Christian Grothoff
6d8ccc9fe7 starting to clean up /refresh/reveal DB logic 2015-01-31 15:42:00 +01:00
Christian Grothoff
1102b7dace working on /refresh/melt operation 2015-01-30 15:34:01 +01:00
Christian Grothoff
fae4fb8687 fixing ftbfs of testcase 2015-01-30 14:17:42 +01:00
Christian Grothoff
c750f53d5a TALER_MINT_keys_sign returns void, thus no need to check rvalue 2015-01-30 14:08:43 +01:00
Christian Grothoff
abe597c074 fix missing test, wrong type 2015-01-30 14:07:27 +01:00
Christian Grothoff
494d904238 install db_pq header 2015-01-30 10:56:29 +01:00
Christian Grothoff
7e46289428 -removing legacy TALER_TALER API, replacing with modern TALER_DB calls 2015-01-29 20:45:45 +01:00
Christian Grothoff
d751c9c6de eliminating obsolete KnownCoin APIs 2015-01-29 20:41:11 +01:00
Christian Grothoff
f35d358552 remove dead mint.h includes 2015-01-29 20:28:21 +01:00
Christian Grothoff
a0a405939f remove dead mint.h includes 2015-01-29 20:27:57 +01:00
Christian Grothoff
fa7f190745 logic of execute_refresh_commit is now clean 2015-01-29 20:18:04 +01:00
Christian Grothoff
090ddf170b working on cleaning up /refresh/melt logic 2015-01-29 20:00:21 +01:00
Christian Grothoff
8ca555500f more notes about issues in bug tracker 2015-01-29 19:01:29 +01:00
Christian Grothoff
2b663f33c0 more comments 2015-01-29 18:46:34 +01:00
Christian Grothoff
681702aff9 finish simplify cleanup of json roots: as early as possible 2015-01-29 18:03:44 +01:00
Christian Grothoff
27303e320a finish cleanup of /refresh/link parsing, trivial this time 2015-01-29 18:00:30 +01:00
Christian Grothoff
9ee6c66d86 finish cleanup of /refresh/reveal parsing 2015-01-29 17:53:12 +01:00
Christian Grothoff
41e1dd9738 finish cleanup of /refresh/commit parsing 2015-01-29 17:34:37 +01:00
Christian Grothoff
1e3e6fa599 finish cleanup of /refresh/melt parsing 2015-01-29 16:26:58 +01:00
Christian Grothoff
4a27969e5e make TALER_MINT_parse_json_data more expressive, add RSA types as well 2015-01-29 15:45:05 +01:00
Christian Grothoff
a284561298 make TALER_MINT_parse_json_data more expressive 2015-01-29 15:06:55 +01:00
Christian Grothoff
ab67dec1be annotate with bug report number 2015-01-29 00:59:01 +01:00
Christian Grothoff
a627c3e9b1 annotate with bug report number 2015-01-29 00:53:05 +01:00
Christian Grothoff
1d99ff43dc update comments 2015-01-29 00:46:08 +01:00
Christian Grothoff
758ce80519 clean up /withdraw/sign logic 2015-01-29 00:45:07 +01:00
Christian Grothoff
8adde040ab towards proper implementation of /withdraw/status 2015-01-29 00:09:48 +01:00
Christian Grothoff
b162d2e458 rollback should just return void 2015-01-28 22:47:03 +01:00
Christian Grothoff
fb12484160 update docu 2015-01-28 22:35:57 +01:00
Christian Grothoff
1466048e4d cleaning up mint_db API 2015-01-28 22:18:53 +01:00
Christian Grothoff
fd1bcfecfa cleaning up 2015-01-28 21:08:19 +01:00
Christian Grothoff
5fcca8707f simplify logic, remove dead call 2015-01-28 20:59:39 +01:00
Christian Grothoff
8c558ddf89 generally just include taler_util.h 2015-01-28 20:55:15 +01:00
Christian Grothoff
9c3c6295a8 even cleaner separation of PostGres-specific logic, and nicer libtalerutil headers 2015-01-28 20:53:21 +01:00
Christian Grothoff
c4b63c1302 move PostGres-specific logic out of libtalerutil 2015-01-28 20:37:51 +01:00
Christian Grothoff
bc8f6e81a4 move data_to_string_alloc to GNUnet 2015-01-28 20:31:28 +01:00
Christian Grothoff
62d3d35250 move coin validity test to libtalerutil 2015-01-28 20:23:19 +01:00
Christian Grothoff
2debf6c3f0 cleaning up includes 2015-01-28 20:12:15 +01:00
Christian Grothoff
172505bd0f splitting up /keys and keystate handling 2015-01-28 20:10:59 +01:00
Christian Grothoff
554ee3d4da cleaning up some memory management issues in response generation 2015-01-28 19:58:20 +01:00
Christian Grothoff
2e0e30291c sign /deposit reply so that merchant has proof that mint accepted it 2015-01-28 19:48:41 +01:00
Christian Grothoff
e19f1906a3 avoid using struct Deposit in response 2015-01-28 15:35:41 +01:00
Christian Grothoff
7f171e69b2 more cleanup of mint.h 2015-01-28 15:19:06 +01:00
Christian Grothoff
c119d914b3 more restructuring 2015-01-28 15:06:09 +01:00
Christian Grothoff
9cbc31afc4 move key IO routines into aptly named files 2015-01-28 15:03:47 +01:00
Christian Grothoff
b6154af448 move DB functions to mint_db.c 2015-01-28 14:57:55 +01:00
Christian Grothoff
49d4f24f8d misc cleanup, moving TALER_MINT_config_load to libtalerutil 2015-01-28 14:55:25 +01:00
Christian Grothoff
ea3fac6063 starting to clean up /deposit logic 2015-01-27 23:06:23 +01:00
Christian Grothoff
5647ed2be5 document /withdraw/* operations 2015-01-27 22:20:57 +01:00
Christian Grothoff
8fd46396d7 polishing taler-mint-http_withdraw.c logic 2015-01-27 22:17:08 +01:00
Christian Grothoff
162af316d3 cleaning up types used some more: also use a new struct for the transfer key secret 2015-01-27 22:05:31 +01:00
Christian Grothoff
27a72fdafe cleaning up types used 2015-01-27 22:01:08 +01:00
Christian Grothoff
426f05adbd fix typos, make tests build 2015-01-27 21:48:50 +01:00
Christian Grothoff
bd42711209 fix warning and type confusion 2015-01-27 21:46:54 +01:00
Christian Grothoff
c7b7da5a19 code now fully compiles again 2015-01-27 18:57:29 +01:00
Christian Grothoff
b05a5acc3c mint-httpd_withdraw compiles again 2015-01-27 18:52:56 +01:00
Christian Grothoff
019af0919e mint-httpd_db.c now compiles again 2015-01-27 18:49:02 +01:00
Christian Grothoff
c3731d0df7 implementing varsize link data 2015-01-27 18:35:17 +01:00
Christian Grothoff
16817ef0d1 implementing new link crypto API 2015-01-27 16:31:18 +01:00
Christian Grothoff
2cda5ea7ee rework taler lib, moving some code to GNUnet, cleaner refresh encrypt/decypt API 2015-01-27 16:18:33 +01:00
Christian Grothoff
610b7b62c0 towards making code compile again 2015-01-27 15:22:34 +01:00
Christian Grothoff
bda9e3ad94 towards making code compile again 2015-01-27 14:55:05 +01:00
Christian Grothoff
986a89ea4f finish porting lib 2015-01-26 12:29:58 +01:00
Christian Grothoff
e1a0d89847 also fix type here 2015-01-26 12:25:35 +01:00
Christian Grothoff
60fdc863ee test is dead, too 2015-01-26 12:24:36 +01:00
Christian Grothoff
52591a77f0 intermediary commit, breaking the build by starting to move towards variable-size GNUnet signatures instead of fixed-size signatures; much broken now 2015-01-26 12:22:56 +01:00
Christian Grothoff
ae917eeee0 intermediary commit, breaking the build by starting to move towards variable-size GNUnet signatures instead of fixed-size signatures; much broken now 2015-01-26 12:22:26 +01:00
Christian Grothoff
d4506f8a04 support variable-size results 2015-01-26 11:04:46 +01:00
Sree Harsha Totakura
734fd0aa2e -remove unused and misleading hash operation 2015-01-22 16:26:53 +01:00
Sree Harsha Totakura
acee974c06 Add checks to verify incorrect signatures. 2015-01-22 16:23:25 +01:00
Sree Harsha Totakura
b119131873 Remove TALER_RSA_hash_sign() and TALER_RSA_hash_verify(). 2015-01-22 16:22:32 +01:00
Sree Harsha Totakura
ce9da7f183 Remove unnecessary dependency on libpq 2015-01-22 11:36:08 +01:00
Christian Grothoff
c2b32e75dc avoid querying DB for refresh session twice 2015-01-21 14:52:41 +01:00
Christian Grothoff
9c56c91c1f separate DB logic for /refresh/reveal from parsing logic 2015-01-21 14:46:33 +01:00
Christian Grothoff
c9a819a5ef handle DB connect errors 2015-01-21 14:21:58 +01:00
Christian Grothoff
2ef511eece document TODOs 2015-01-21 14:01:46 +01:00
Christian Grothoff
031935996d document TODOs 2015-01-21 13:47:34 +01:00
Christian Grothoff
92cc995743 separate argument parsing from DB operations for /refresh/link 2015-01-21 13:46:05 +01:00
Christian Grothoff
53a7140a0b move /refresh/reveal response generation to taler-mint-httpd_responses.c 2015-01-21 13:38:57 +01:00
Christian Grothoff
4d8f4903db properly separate DB logic from parsing logic for /refresh/commit 2015-01-21 13:31:05 +01:00
Christian Grothoff
82217f67db properly separate DB logic from parsing logic for /refresh/melt 2015-01-21 12:46:14 +01:00
Christian Grothoff
737301c8d0 towards separating out DB operations during refresh 2015-01-20 17:50:32 +01:00
Christian Grothoff
f70814fbb5 more work on splitting refresh logic 2015-01-20 17:12:51 +01:00
Christian Grothoff
93a98f8091 starting to refactor refresh code, moving response generation logic to response generation file 2015-01-20 15:17:41 +01:00
Christian Grothoff
ed51946442 more code refactoring to separate parsing, db and response generation nicely 2015-01-19 21:53:23 +01:00
Christian Grothoff
f9347d2395 document TODOs 2015-01-19 21:09:47 +01:00
Christian Grothoff
a1f20a92a0 restructuring more of deposit logic towards desired flow structure 2015-01-19 21:04:58 +01:00
Christian Grothoff
3553e60733 remarks on deposit issues 2015-01-16 15:14:18 +01:00
Christian Grothoff
17865db5fc fixing JSON syntax, adding missing commas, adding spaces for consistency 2015-01-16 15:07:53 +01:00
Christian Grothoff
7fe250407c clean up (and rename) request_json_require_nav to properly report parsing errors 2015-01-16 15:04:47 +01:00
Christian Grothoff
4bd515191b nicer TALER_MINT_parse_post_json return value handling, fixing return values where GNUNET_SYSERR is used instead of MHD_NO, marking cases where we should return a proper error message 2015-01-16 14:27:42 +01:00
Christian Grothoff
f398b34414 adding logic to free buffers allocated for POST processing when connection dies without completion 2015-01-16 14:04:02 +01:00
Christian Grothoff
f58fb4fc21 starting to separate out response generation API and parsing APIs 2015-01-16 13:50:07 +01:00
Christian Grothoff
0430d6fb03 moving structs relevant for signatures into taler_signatures.h, splitting of private keys that are not in messages; moving test_hash_context to GNUnet 2015-01-09 18:18:59 +01:00
Christian Grothoff
f5e49d926a moving TALER_hash_context API to GNUnet, using slightly cleaner API as well 2015-01-09 17:26:02 +01:00
Christian Grothoff
09ecea9ea3 removing dead TALER_genkey() API call 2015-01-09 17:12:13 +01:00
Christian Grothoff
0b40e78027 stop exporting microhttpd_lib API 2015-01-09 17:10:38 +01:00
Christian Grothoff
ba38579c08 install taler headers 2015-01-08 19:32:53 +01:00
Christian Grothoff
57d1f08dbc -initial import for mint 2015-01-08 18:37:20 +01:00