The code no longer assumes a net.TCPConn underlying the HTTP connection
in order to close attached streams.
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
| ... | ... |
@@ -1136,15 +1136,19 @@ func postContainerExecStart(eng *engine.Engine, version version.Version, w http. |
| 1136 | 1136 |
} |
| 1137 | 1137 |
|
| 1138 | 1138 |
defer func() {
|
| 1139 |
- if tcpc, ok := inStream.(*net.TCPConn); ok {
|
|
| 1140 |
- tcpc.CloseWrite() |
|
| 1139 |
+ if cw, ok := inStream.(interface {
|
|
| 1140 |
+ CloseWrite() error |
|
| 1141 |
+ }); ok {
|
|
| 1142 |
+ cw.CloseWrite() |
|
| 1141 | 1143 |
} else {
|
| 1142 | 1144 |
inStream.Close() |
| 1143 | 1145 |
} |
| 1144 | 1146 |
}() |
| 1145 | 1147 |
defer func() {
|
| 1146 |
- if tcpc, ok := outStream.(*net.TCPConn); ok {
|
|
| 1147 |
- tcpc.CloseWrite() |
|
| 1148 |
+ if cw, ok := outStream.(interface {
|
|
| 1149 |
+ CloseWrite() error |
|
| 1150 |
+ }); ok {
|
|
| 1151 |
+ cw.CloseWrite() |
|
| 1148 | 1152 |
} else if closer, ok := outStream.(io.Closer); ok {
|
| 1149 | 1153 |
closer.Close() |
| 1150 | 1154 |
} |