#5448 closed task (complete)

Add support for persistent connections into Control Agent using HTTP 1.1

Reported by: marcin Owned by: marcin
Priority: medium Milestone: Kea1.4
Component: remote-management Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: DHCP Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

The HA case requires that the connection between the server and the Control Agent of the other server remains open and multiple lease updates can be sent over this connection. The http://kea.isc.org/wiki/HADesign#ExtensionstoRESTfulAPI describes this in more detail.

Subtickets

Change History (7)

comment:1 Changed 19 months ago by marcin

  • Owner set to marcin
  • Status changed from new to accepted

comment:2 Changed 19 months ago by marcin

  • Component changed from high-availability to remote-management

comment:3 Changed 19 months ago by marcin

  • Owner changed from marcin to UnAssigned
  • Status changed from accepted to reviewing

I extended the HTTP library to support persistent HTTP 1.1 connections and also HTTP 1.0 keep-alive. The idle time after which persistent connection is closed is currently hardcoded, but there is a plan to add configuration parameter to control this time. The HTTP pipelining is currently not supported at this time.

Proposed ChangeLog entry:

13XX.	[func]		marcin
	Persistent HTTP/1.1 connections and HTTP/1.0 keep-alive
	are supported by RESTful API.
	(Trac #5448, git cafe)

comment:4 Changed 19 months ago by fdupont

  • Owner changed from UnAssigned to fdupont

comment:5 Changed 19 months ago by fdupont

Linked #5445 to this ticket as I think this ticket covers it.

comment:6 Changed 19 months ago by fdupont

  • Owner changed from fdupont to marcin

isConnectionAlive() uses read: I'd prefer it uses recv with the MSG_PEEK flag, now it is for a test...

Reading the code it seems fine. It builds and runs tests with success on my macOS. Please merge and close #5445.

comment:7 Changed 19 months ago by marcin

  • Resolution set to complete
  • Status changed from reviewing to closed

Merged with commit 05018f7cc0662d6956b9b7648646e0c17da948ba

Note: See TracTickets for help on using tickets.