[
https://issues.apache.org/jira/browse/TS-4882?focusedWorklogId=29473&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29473
]
ASF GitHub Bot logged work on TS-4882:
--------------------------------------
Author: ASF GitHub Bot
Created on: 21/Sep/16 23:43
Start Date: 21/Sep/16 23:43
Worklog Time Spent: 10m
Work Description: Github user bryancall commented on a diff in the pull
request:
https://github.com/apache/trafficserver/pull/1036#discussion_r79952516
--- Diff: iocore/net/BIO_fastopen.cc ---
@@ -0,0 +1,168 @@
+/** @file
+ *
+ * OpenSSL socket BIO that does TCP Fast Open.
+ *
+ * @section license License
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "P_Net.h"
+#include "I_SocketManager.h"
+#include "ts/ink_assert.h"
+
+#include "BIO_fastopen.h"
+
+static int
+fastopen_create(BIO *bio)
+{
+ bio->init = 0;
+ bio->num = NO_FD;
+ bio->flags = 0;
+ bio->ptr = NULL;
+
+ return 1;
+}
+
+static int
+fastopen_destroy(BIO *bio)
+{
+ if (bio) {
+ // We expect this BIO to not own the socket, so we must always
+ // be in NOCLOSE mode.
+ ink_assert(bio->shutdown == BIO_NOCLOSE);
+ fastopen_create(bio);
+ }
+
+ return 1;
+}
+
+static int
+fastopen_bwrite(BIO *bio, const char *in, int insz)
+{
+ int64_t err;
+
+ errno = 0;
+ BIO_clear_retry_flags(bio);
+ ink_assert(bio->num != NO_FD);
+
+ if (bio->ptr) {
+ // On the first write only, make a TFO request if TFO is enabled.
+ // The best documentation on the behavior of the Linux API is in
+ // RFC 7413. If we get EINPROGRESS it means that the SYN has been
+ // sent without data and we should retry.
--- End diff --
the server doesn't have a tfo cookie for the origin
Issue Time Tracking
-------------------
Worklog Id: (was: 29473)
Time Spent: 1h 40m (was: 1.5h)
> TCP Fast Open support for SSL server sessions.
> ----------------------------------------------
>
> Key: TS-4882
> URL: https://issues.apache.org/jira/browse/TS-4882
> Project: Traffic Server
> Issue Type: Improvement
> Components: Core, SSL
> Reporter: James Peach
> Assignee: James Peach
> Fix For: 7.1.0
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> Add support for using TCP Fast Open on TLS server sessions. This is mainly
> interesting for CONNECT tunnels where we can't use long running persistent
> sessions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)