| 200 | } |
| 201 | |
| 202 | int TcpConnection::write(const char* data, int len, uint8_t apiflags) |
| 203 | { |
| 204 | err_t err; |
| 205 | |
| 206 | if(ssl != nullptr) { |
| 207 | len = ssl->write(reinterpret_cast<const uint8_t*>(data), len); |
| 208 | err = (len < 0) ? len : ERR_OK; |
| 209 | } else { |
| 210 | u16_t available = getAvailableWriteSize(); |
| 211 | if(available < len) { |
| 212 | if(available == 0) { |
| 213 | return ERR_MEM; |
| 214 | } |
| 215 | |
| 216 | len = available; |
| 217 | } |
| 218 | |
| 219 | err = tcp_write(tcp, data, len, apiflags); |
| 220 | } |
| 221 | |
| 222 | if(err < 0) { |
| 223 | debug_tcp_ext("connection failed with err %d (\"%s\")", err, lwip_strerr(err)); |
| 224 | return err; |
| 225 | } |
| 226 | |
| 227 | debug_tcp_ext("connection send: %d", len); |
| 228 | return len; |
| 229 | } |
| 230 | |
| 231 | int TcpConnection::write(IDataSourceStream* stream) |
| 232 | { |
no test coverage detected