6c357f1dc7
Separate Tawashi and Kamokan.
...
Unit tests are still a bit mixed up, but that should
be simple to split once I have a separate repo for
Tawashi.
2017-06-13 09:36:12 +01:00
44350478c1
Version bump to 0.2.3
2017-06-09 00:19:33 +01:00
43e97ee79b
Fix data corruption when submitting a pastie.
2017-06-08 23:38:11 +01:00
f6da79a49d
Add an option to ignore pastie tokens that are too long.
...
0 disables the limit.
2017-06-08 22:02:11 +01:00
96a349bb8d
Drop ?blabla before calling factory.make_response().
...
This fixes the problem with error.cgi?reason=... being
mistaken for a pastie.
2017-06-08 21:57:09 +01:00
5f0ea56241
Log raw pastie from POST and pastie before going to redis.
...
This is to hopefully track down the pastie corruption
bug that I'm only encountering on the outgoing server.
2017-06-08 21:33:18 +01:00
b5b0db8b8d
Implement truncated_string().
...
It will either return the full string if its length was
maxlen or less, or up to maxlen characters with
a "..." appended at the end. It will also replace any
\n or \r character with a literal "\n" or "\r"
respectively. Only line breaks are being replaced, and
this happens inside truncated_string() because truncating
only makes sense to me if you want to use it to
keep stuff short and in one single line.
2017-06-08 21:32:04 +01:00
5b88afb276
Reject pastie tokens that are not in the a-z range.
2017-06-08 10:15:51 +01:00
c3609e1768
Add an array of lines and line numbers to the mustache context.
2017-06-07 21:52:55 +01:00
a56014bed8
Fix wrong code that wasn't splitting on ? correctly
2017-06-07 09:38:05 +01:00
8795977da9
Extract pastie's token manually from the request uri.
2017-06-07 00:49:44 +01:00
108a8c8e06
Use string_view directly with mstch.
2017-06-07 00:40:03 +01:00
056e7dcde4
Use stock std::string conversion.
2017-06-07 00:30:43 +01:00
befbed413a
Delete unused file.
2017-06-06 23:04:52 +01:00
6e19745d69
Replace string_ref with string_view
2017-06-06 23:04:40 +01:00
df1afc7616
Fix the bug with the pastie token being invalid.
...
REQUEST_URI would return "ba"?cpp for example, but
the code expects just "ba".
2017-06-06 19:55:22 +01:00
e44611301c
Fix the problem with redis not being initialized anymore.
2017-06-06 19:40:52 +01:00
60bc194848
Add missing include
2017-06-06 09:44:36 +01:00
b0c62fcab3
Add HTTP/1.1 to Status in cgi responses.
2017-06-06 00:56:28 +01:00
f94cc9409b
Add test for SubmitPasteResponse.
2017-06-06 00:56:01 +01:00
4ba3b679fc
Read POST in the Response so I can override it for testing.
2017-06-05 23:56:59 +01:00
fb27563fdd
Make functions virtual when building with testing.
2017-06-05 23:02:39 +01:00
c302dbee73
Hide calls to Incredis in the Storage class.
...
This should allow me to write some decent
simulation tests.
2017-06-05 21:57:14 +01:00
99e52ceb75
More logging, try to fix the 502 gateway error.
2017-06-05 19:53:32 +01:00
640315cbba
Another attempt at fixing the 502 Gateway error.
2017-06-05 09:20:37 +01:00
26d8b553d7
Version bump to 0.2.2.
2017-06-04 23:06:27 +01:00
78156cea75
Off by 1?
2017-06-04 23:05:56 +01:00
87b6f85913
Version bump to 0.2.1.
2017-06-04 22:14:50 +01:00
1a7ec9c2c4
Use REQUEST_URI instead of PATH_INFO.
2017-06-04 22:14:05 +01:00
ae283b6c96
Version bump to 0.2.0
2017-06-02 22:15:41 +01:00
9cda58d0c0
Rename tawashi to duckbin.
...
The library that used to be "tawashi_implem" now
is simply called tawashi.
2017-06-02 21:53:27 +01:00
2f00014758
Fail if CONTENT_TYPE is not application/x-www-form-urlencoded.
...
As part of the partial improvement to the POST reading
code I also added a max_post_size setting which defaults
to 1 MiB. POST inputs longer than that size get truncated.
This is separate to max_pastie_size, which is just the
size of one of the values in the POST data.
2017-06-02 09:23:35 +01:00
4e32006e08
Don't respond if the request method is unexpected.
...
This includes the jolly responder, which now only works
for GET requests.
2017-05-24 19:09:42 +01:00
1507c79503
Clean up and make a separate class for pasties from curl-style requests.
2017-05-24 09:05:03 +01:00
8b94672b25
Register a separate maker for requests to "" POST.
2017-05-23 19:59:49 +01:00
27881ed0f0
Allow registering makers specific to POST or GET requests.
2017-05-23 19:59:49 +01:00
2571e70093
Allow to give the css file for the highlighter in tawashi.ini
2017-05-23 18:31:55 +01:00
e2437a6b12
Add more logging and error checking.
2017-05-22 09:27:17 +01:00
34daf8e411
Decompose the base_uri option.
...
This allows support for having tawashi in a subdirectory
of your domain, eg http://example.com/tawashi
2017-05-19 10:01:22 +01:00
8345c300a8
Add some debug logging and change level to trace.
2017-05-16 19:14:22 +01:00
ed4a02f4bb
Setup the logger based on the log_file setting in tawashi.ini.
...
With this change I had to swap the order in which what settings
file as being loaded and the initialization of the logger itself.
This is because the logger now depends on the settings file,
so it can't be used before the setting file got parsed.
2017-05-16 19:11:09 +01:00
32eadfc64d
Pull some code out from main().
2017-05-16 18:52:34 +01:00
9b28b2d274
Add a --show-paths switch to print hardcoded paths and info.
2017-05-15 09:26:29 +01:00
4d31323bb1
Redirect to error.cgi when saving fails.
...
Not working yet, still getting there.
2017-05-12 22:46:54 +01:00
73707c2ad0
Revert "Pass the ResponseFactory object down to the Response itself."
...
This reverts commit 3bc6c56c03
.
2017-05-12 22:18:03 +01:00
3bc6c56c03
Pass the ResponseFactory object down to the Response itself.
2017-05-12 09:36:01 +01:00
f286507edf
Delay fast subsequent pasties from the same IP.
2017-05-11 18:50:56 +01:00
9e63a648a1
Protect against fast flooding from the same ip.
2017-05-11 09:48:18 +01:00
07135f215c
Delete get_env, which confused me a lot.
...
Get raw environment variables directly from main().
Add code to split on '=' in cgi_environment_vars and only pick
the ones that are interesting, just as before.
2017-05-08 19:46:14 +01:00
df384f5128
Add unit test for IndexResponse.
2017-05-06 21:49:46 +01:00