1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.http2.server;
20
21 import org.eclipse.jetty.http.BadMessageException;
22 import org.eclipse.jetty.http.HttpFields;
23 import org.eclipse.jetty.http.MetaData.Request;
24 import org.eclipse.jetty.io.Connection;
25 import org.eclipse.jetty.io.EndPoint;
26 import org.eclipse.jetty.server.ConnectionFactory;
27 import org.eclipse.jetty.server.Connector;
28 import org.eclipse.jetty.server.HttpConfiguration;
29 import org.eclipse.jetty.server.HttpConnectionFactory;
30 import org.eclipse.jetty.util.annotation.Name;
31 import org.eclipse.jetty.util.log.Log;
32 import org.eclipse.jetty.util.log.Logger;
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public class HTTP2CServerConnectionFactory extends HTTP2ServerConnectionFactory implements ConnectionFactory.Upgrading
49 {
50 private static final Logger LOG = Log.getLogger(HTTP2CServerConnectionFactory.class);
51
52 public HTTP2CServerConnectionFactory(@Name("config") HttpConfiguration httpConfiguration)
53 {
54 super(httpConfiguration,"h2c","h2c-17","h2c-16","h2c-15","h2c-14");
55 }
56
57 @Override
58 public boolean isAcceptable(String protocol, String tlsProtocol, String tlsCipher)
59 {
60
61 return false;
62 }
63
64 @Override
65 public Connection upgradeConnection(Connector connector, EndPoint endPoint, Request request, HttpFields response101) throws BadMessageException
66 {
67 if (LOG.isDebugEnabled())
68 LOG.debug("{} upgraded {}{}", this, request.toString(), request.getFields());
69
70 if (request.getContentLength() > 0)
71 return null;
72
73 HTTP2ServerConnection connection = (HTTP2ServerConnection)newConnection(connector, endPoint);
74 if (connection.upgrade(request))
75 return connection;
76 return null;
77 }
78 }