<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch ethomson/canonical</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/'/>
<entry>
<title>win32: test relative symlinks</title>
<updated>2020-03-10T20:10:20+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-02-28T17:53:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=163db8f2b05ec7e7b57c0ae3779a0abd333b3764'/>
<id>163db8f2b05ec7e7b57c0ae3779a0abd333b3764</id>
<content type='text'>
Ensure that we don't canonicalize symlink targets.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure that we don't canonicalize symlink targets.
</pre>
</div>
</content>
</entry>
<entry>
<title>win32: don't canonicalize symlink targets</title>
<updated>2020-03-10T20:10:20+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-08T18:14:09+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=43d7a42bdde3ed137997856c892bbc11abb79bda'/>
<id>43d7a42bdde3ed137997856c892bbc11abb79bda</id>
<content type='text'>
Don't canonicalize symlink targets; our win32 path canonicalization
routines expect an absolute path.  In particular, using the path
canonicalization routines for symlink targets (introduced in commit
7d55bee6d, "win32: fix relative symlinks pointing into dirs",
2020-01-10).

Now, use the utf8 -&gt; utf16 relative path handling functions, so that
paths like "../foo" will be translated to "..\foo".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't canonicalize symlink targets; our win32 path canonicalization
routines expect an absolute path.  In particular, using the path
canonicalization routines for symlink targets (introduced in commit
7d55bee6d, "win32: fix relative symlinks pointing into dirs",
2020-01-10).

Now, use the utf8 -&gt; utf16 relative path handling functions, so that
paths like "../foo" will be translated to "..\foo".
</pre>
</div>
</content>
</entry>
<entry>
<title>win32: introduce relative path handling function</title>
<updated>2020-03-10T20:10:20+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-08T18:11:45+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=f2b114ba828b561c63164dcfcc2707f11e31c8d8'/>
<id>f2b114ba828b561c63164dcfcc2707f11e31c8d8</id>
<content type='text'>
Add a function that takes a (possibly) relative UTF-8 path and emits a
UTF-16 path with forward slashes translated to backslashes.  If the
given path is, in fact, absolute, it will be translated to absolute path
handling rules.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a function that takes a (possibly) relative UTF-8 path and emits a
UTF-16 path with forward slashes translated to backslashes.  If the
given path is, in fact, absolute, it will be translated to absolute path
handling rules.
</pre>
</div>
</content>
</entry>
<entry>
<title>win32: clarify usage of path canonicalization funcs</title>
<updated>2020-03-08T18:23:29+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-08T16:34:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=fb7da15452f7069e6bfa7d39b7703e32eaa84d34'/>
<id>fb7da15452f7069e6bfa7d39b7703e32eaa84d34</id>
<content type='text'>
The path canonicalization functions on win32 are intended to
canonicalize absolute paths; those with prefixes.  In other words,
things start with drive letters (`C:\`), share names (`\\server\share`),
or other prefixes (`\\?\`).

This function removes leading `..` that occur after the prefix but
before the directory/file portion (eg, turning `C:\..\..\..\foo` into
`C:\foo`).  This translation is not appropriate for local paths.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The path canonicalization functions on win32 are intended to
canonicalize absolute paths; those with prefixes.  In other words,
things start with drive letters (`C:\`), share names (`\\server\share`),
or other prefixes (`\\?\`).

This function removes leading `..` that occur after the prefix but
before the directory/file portion (eg, turning `C:\..\..\..\foo` into
`C:\foo`).  This translation is not appropriate for local paths.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #5422 from pks-t/pks/cmake-booleans</title>
<updated>2020-03-06T17:13:48+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-06T17:13:48+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=e23b8b446522f17eb3329b62201aae7674f06e13'/>
<id>e23b8b446522f17eb3329b62201aae7674f06e13</id>
<content type='text'>
CMake booleans</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CMake booleans</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #5439 from ignatenkobrain/patch-2</title>
<updated>2020-03-06T17:12:18+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-06T17:12:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=8eb1fc36b65a69ca67795cef8ef424a86ae4af68'/>
<id>8eb1fc36b65a69ca67795cef8ef424a86ae4af68</id>
<content type='text'>
Set proper pkg-config dependency for pcre2</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set proper pkg-config dependency for pcre2</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #5432 from libgit2/ethomson/sslread</title>
<updated>2020-03-05T03:47:44+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-03-05T03:47:44+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=76e459604b15e0c20d67f9e357e7f684dcbb027a'/>
<id>76e459604b15e0c20d67f9e357e7f684dcbb027a</id>
<content type='text'>
httpclient: use a 16kb read buffer for macOS</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
httpclient: use a 16kb read buffer for macOS</pre>
</div>
</content>
</entry>
<entry>
<title>httpclient: use a 16kb read buffer for macOS</title>
<updated>2020-03-05T00:24:41+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-01T20:44:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=502e5d5126ff50775f9c9143e5b424f0aaef9c16'/>
<id>502e5d5126ff50775f9c9143e5b424f0aaef9c16</id>
<content type='text'>
Use a 16kb read buffer for compatibility with macOS SecureTransport.

SecureTransport `SSLRead` has the following behavior:

1. It will return _at most_ one TLS packet's worth of data, and
2. It will try to give you as much data as you asked for

This means that if you call `SSLRead` with a buffer size that is smaller
than what _it_ reads (in other words, the maximum size of a TLS packet),
then it will buffer that data for subsequent calls.  However, it will
also attempt to give you as much data as you requested in your SSLRead
call.  This means that it will guarantee a network read in the event
that it has buffered data.

Consider our 8kb buffer and a server sending us 12kb of data on an HTTP
Keep-Alive session.  Our first `SSLRead` will read the TLS packet off
the network.  It will return us the 8kb that we requested and buffer the
remaining 4kb.  Our second `SSLRead` call will see the 4kb that's
buffered and decide that it could give us an additional 4kb.  So it will
do a network read.

But there's nothing left to read; that was the end of the data.  The
HTTP server is waiting for us to provide a new request.  The server will
eventually time out, our `read` system call will return, `SSLRead` can
return back to us and we can make progress.

While technically correct, this is wildly ineffecient.  (Thanks, Tim
Apple!)

Moving us to use an internal buffer that is the maximum size of a TLS
packet (16kb) ensures that `SSLRead` will never buffer and it will
always return everything that it read (albeit decrypted).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use a 16kb read buffer for compatibility with macOS SecureTransport.

SecureTransport `SSLRead` has the following behavior:

1. It will return _at most_ one TLS packet's worth of data, and
2. It will try to give you as much data as you asked for

This means that if you call `SSLRead` with a buffer size that is smaller
than what _it_ reads (in other words, the maximum size of a TLS packet),
then it will buffer that data for subsequent calls.  However, it will
also attempt to give you as much data as you requested in your SSLRead
call.  This means that it will guarantee a network read in the event
that it has buffered data.

Consider our 8kb buffer and a server sending us 12kb of data on an HTTP
Keep-Alive session.  Our first `SSLRead` will read the TLS packet off
the network.  It will return us the 8kb that we requested and buffer the
remaining 4kb.  Our second `SSLRead` call will see the 4kb that's
buffered and decide that it could give us an additional 4kb.  So it will
do a network read.

But there's nothing left to read; that was the end of the data.  The
HTTP server is waiting for us to provide a new request.  The server will
eventually time out, our `read` system call will return, `SSLRead` can
return back to us and we can make progress.

While technically correct, this is wildly ineffecient.  (Thanks, Tim
Apple!)

Moving us to use an internal buffer that is the maximum size of a TLS
packet (16kb) ensures that `SSLRead` will never buffer and it will
always return everything that it read (albeit decrypted).
</pre>
</div>
</content>
</entry>
<entry>
<title>Set proper pkg-config dependency for pcre2</title>
<updated>2020-03-03T10:07:09+00:00</updated>
<author>
<name>Igor Gnatenko</name>
<email>i.gnatenko.brain@gmail.com</email>
</author>
<published>2020-03-03T10:05:04+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=dd704944c405395530bf415359cfe0ae45f92721'/>
<id>dd704944c405395530bf415359cfe0ae45f92721</id>
<content type='text'>
Signed-off-by: Igor Raits &lt;i.gnatenko.brain@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Igor Raits &lt;i.gnatenko.brain@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #5437 from libgit2/ethomson/azp</title>
<updated>2020-03-02T19:26:22+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-02T19:26:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=cd6ed4e48c25ab75ba3acbc8f24b21ad66f2d8d6'/>
<id>cd6ed4e48c25ab75ba3acbc8f24b21ad66f2d8d6</id>
<content type='text'>
ci: provide globalsign certs for bionic</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ci: provide globalsign certs for bionic</pre>
</div>
</content>
</entry>
</feed>
