<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgit-70/filter.c, branch v0.10.1</title>
<subtitle>a fork of cgit with a Gopher interface</subtitle>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/'/>
<entry>
<title>filter: don't forget to reap the auth filter</title>
<updated>2014-01-17T12:53:02+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-17T12:53:02+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=9786f4613da38cb263e76263370d7816a9347149'/>
<id>9786f4613da38cb263e76263370d7816a9347149</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>auth: have cgit calculate login address</title>
<updated>2014-01-16T22:21:54+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-16T22:21:54+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=a431326e8fab8153905fbde036dd3c9fb4cc8eaa'/>
<id>a431326e8fab8153905fbde036dd3c9fb4cc8eaa</id>
<content type='text'>
This way we're sure to use virtual root, or any other strangeness
encountered.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This way we're sure to use virtual root, or any other strangeness
encountered.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>auth: add basic authentication filter framework</title>
<updated>2014-01-16T01:28:12+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-14T20:49:31+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=d6e9200cc35411f3f27426b608bcfdef9348e6d3'/>
<id>d6e9200cc35411f3f27426b608bcfdef9348e6d3</id>
<content type='text'>
This leverages the new lua support. See
filters/simple-authentication.lua for explaination of how this works.
There is also additional documentation in cgitrc.5.txt.

Though this is a cookie-based approach, cgit's caching mechanism is
preserved for authenticated pages.

Very plugable and extendable depending on user needs.

The sample script uses an HMAC-SHA1 based cookie to store the
currently logged in user, with an expiration date.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This leverages the new lua support. See
filters/simple-authentication.lua for explaination of how this works.
There is also additional documentation in cgitrc.5.txt.

Though this is a cookie-based approach, cgit's caching mechanism is
preserved for authenticated pages.

Very plugable and extendable depending on user needs.

The sample script uses an HMAC-SHA1 based cookie to store the
currently logged in user, with an expiration date.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: allow returning exit code from filter</title>
<updated>2014-01-14T17:09:52+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-14T17:07:23+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=6ca734da8fb246ad2272826331e0d56428b96fa1'/>
<id>6ca734da8fb246ad2272826331e0d56428b96fa1</id>
<content type='text'>
Filters can now indicate a status back to cgit by means of the exit code
for exec, or the return value from close for Lua.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Filters can now indicate a status back to cgit by means of the exit code
for exec, or the return value from close for Lua.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: style tweaks</title>
<updated>2014-01-14T01:00:07+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T22:54:28+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=d3c0370a3f108121642d02bbd190ce676bb4772b'/>
<id>d3c0370a3f108121642d02bbd190ce676bb4772b</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: add page source to email filter</title>
<updated>2014-01-14T01:00:07+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T15:24:40+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=786609bd36c07b85dbf905fc8c36eba7132122d7'/>
<id>786609bd36c07b85dbf905fc8c36eba7132122d7</id>
<content type='text'>
Since the email filter is called from lots of places, the script might
benefit from knowing the origin. That way it can modify its contents
and/or size depending.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the email filter is called from lots of places, the script might
benefit from knowing the origin. That way it can modify its contents
and/or size depending.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: add support for email filter</title>
<updated>2014-01-14T01:00:07+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T03:04:52+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=a5e15537268410e268c7b26aa69d03b347c326c8'/>
<id>a5e15537268410e268c7b26aa69d03b347c326c8</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: return on null filter from open and close</title>
<updated>2014-01-14T01:00:07+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T02:56:50+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=800380dde797ae35d738a644acdae2fabb9a0d44'/>
<id>800380dde797ae35d738a644acdae2fabb9a0d44</id>
<content type='text'>
So that we don't have to include the if(filter) open_filter(filter)
block everywhere, we introduce the guard in the function itself. This
should simplify quite a bit of code.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So that we don't have to include the if(filter) open_filter(filter)
block everywhere, we introduce the guard in the function itself. This
should simplify quite a bit of code.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: add lua support</title>
<updated>2014-01-14T01:00:07+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T13:18:51+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=f43b228d0bca5791be98ff3fbb2f8743219635b6'/>
<id>f43b228d0bca5791be98ff3fbb2f8743219635b6</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>filter: basic write hooking infrastructure</title>
<updated>2014-01-14T01:00:07+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2014-01-13T13:16:18+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cgit-70/commit/?id=e83b51b4f6bd53efea0c772e6ecdf1c5605ca611'/>
<id>e83b51b4f6bd53efea0c772e6ecdf1c5605ca611</id>
<content type='text'>
Filters can now call hook_write and unhook_write if they want to
redirect writing to stdout to a different function. This saves us from
potential file descriptor pipes and other less efficient mechanisms.

We do this instead of replacing the call in html_raw because some places
stdlib's printf functions are used (ui-patch or within git itself),
which has its own internal buffering, which makes it difficult to
interlace our function calls. So, we dlsym libc's write and then
override it in the link stage.

While we're at it, we move considerations of argument count into the
generic new filter handler.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Filters can now call hook_write and unhook_write if they want to
redirect writing to stdout to a different function. This saves us from
potential file descriptor pipes and other less efficient mechanisms.

We do this instead of replacing the call in html_raw because some places
stdlib's printf functions are used (ui-patch or within git itself),
which has its own internal buffering, which makes it difficult to
interlace our function calls. So, we dlsym libc's write and then
override it in the link stage.

While we're at it, we move considerations of argument count into the
generic new filter handler.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
