lp://staging/~yadi/squid/http-context

Created by Amos Jeffries and last modified
Get this branch:
bzr branch lp://staging/~yadi/squid/http-context
Only Amos Jeffries can upload to this branch. If you are Amos Jeffries please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Amos Jeffries
Project:
Squid
Status:
Development

Recent revisions

14521. By Amos Jeffries

Merged from trunk rev.14641

14520. By Amos Jeffries

Merged from trunk rev.14523

14519. By Amos Jeffries

Support HTTP/2 multiplex stream ID mechanism in pipeline management

* Add a stream ID member to contexts. Set by the connection Server.

* Use stream ID to clear pipeline entries when transactions finish.
  Removing HTTP/1.x sequential processing assumptions.

14518. By Amos Jeffries

SourceLayout: rename ClientSocketContext to Http::Stream

 ... and provided through http/libsquid-http.la.

The name is chosen to match the RFC7540 HTTP/2 "stream" terminology.
Which defines a stream as a bi-directional transaction, including request,
reply and all related 1xx informational and/or control messages.

That same word "stream" is also used in RFC7230 briefly to describe the
same "transaction" scope and details. But not formalized until RFC7540.

Http::Stream's may be initiated by a client HTTP request, Squid internally,
or in HTTP/2 a server PUSH_PROMISE frame.

There are no logic changes in this. Just symbol renaming and move.

14517. By Source Maintenance <email address hidden>

SourceFormat Enforcement

14516. By Amos Jeffries

SourceLayout: merge helpers/ into src/

* Move helpers/basic_auth/ into src/auth/basic/

* Move helpers/digest_auth/ into src/auth/digest/

* Move helpers/external_acl/ into src/acl/external/

* Move helpers/log_daemon/ into src/log/

* Move helpers/negotiate_auth/ into src/auth/negotiate/

* Move helpers/ntlm_auth/ into src/auth/ntlm/

* Move helpers/storeid_rewrite/ into src/store/id_rewriters/

* Move helpers/url_rewrite/ into src/http/url_rewriters/

* Rename helpers/defines.h to src/helper/protocol_defines.h

14515. By Amos Jeffries

SourceLayout: rename cert_valid.pl to security_fake_certverify

* creates src/security/cert_validators/ for certificate validation helpers.
  To distinguish from certificate generator helpers which would be in
  src/security/cert_generators/.

* renames cert_valid.pl to securiy_fake_certverify inline with the helper
  naming schema.

* moves helpers/ssl/ to src/security/cert_validators/fake/ as it is the fake
  helper.
 - building the man(8) documentation that was missing previously.

* adds a ./configure option --enable-security-cert-validator-helpers= to allow
  the bundled certverify helper(s) to be managed at build time just like any other.
 - this involves addition of the modules.m4, requires.m4 and Makefile.am
  infrastructire that helpers/ssl/ was previously lacking.

14514. By Alex Rousskov

Bug 4418: FlexibleArray compile error with GCC 6

14513. By Alex Rousskov

Fixed cleanup of a shared memory segment in an unusual configuration.

Squid was not removing squid-squid-page-pool.shm at exit when started
in non-daemon mode (-N). That segment is used in non-SMP mode if
memory_cache_shared is explicitly set to "on" (an unusual
configuration primarily useful for testing).

14512. By Markus Mayer <email address hidden>

Fixed handling of shared memory left over by Squid crashes or bugs.

A Squid instance may inherit an old shared memory segment from the
previous instance as the result of either a Squid crash or an at-exit
cleanup bug. This change fixes two problems triggered by old segments:

1. After an earlier OS X fix (bug 3805; trunk r13947), Squid stopped
   initializing previously used shared memory. Uninitialzed memory
   resulted in subtle bugs and crashes.

2. When called for an old Squid shared memory segment, OS X
   ftruncate() fails with EINVAL, preventing Squid from starting when
   the old segment is still around.

   More specifically: Darwin ftruncate() calls pshm_truncate().
   pshm_truncate() checks if the PSHM_ALLOCATED flag is already set on
   the memory region. If the flag is set, the call fails with EINVAL.
   Otherwise, pshm_truncate() sets PSHM_ALLOCATED for the region.
   Since Squid must call ftruncate() to size every new segment, all
   old Squid segments have that flag set, preventing ftruncate() calls
   for old segments in newer Sqid instances from succeeding.

   [1] http://www.opensource.apple.com/source/xnu/xnu-3248.20.55/bsd/kern/posix_shm.c

To fix both problems, Squid now uses shm_open(O_EXCL) to detect the
existence of an old segment and remove/recreate it as needed.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp://staging/~squid/squid/trunk
This branch contains Public information 
Everyone can see this information.

Subscribers