static void DoHTTP( uint8_t timed ) { switch( curhttp->state ) { case HTTP_STATE_NONE: //do nothing if no state. break; case HTTP_STATE_DATA_XFER: if( TCPCanSend( curhttp->socket, 1024 ) ) //TCPDoneSend { if( curhttp->is_dynamic ) { HTTPCustomCallback( ); } else { HTTPHandleInternalCallback( ); } } break; case HTTP_WAIT_CLOSE: if( TCPDoneSend( curhttp->socket ) ) { if( curhttp->keep_alive ) { curhttp->state = HTTP_STATE_WAIT_METHOD; } else { HTTPClose( ); } } break; case HTTP_STATE_DATA_WEBSOCKET: if( TCPCanSend( curhttp->socket, 1024 ) ) //TCPDoneSend { WebSocketTickInternal(); } break; default: if( timed ) { if( curhttp->timeout++ > HTTP_SERVER_TIMEOUT ) { HTTPClose( ); } } } }
uint8_t CanSend( uint8_t playerno ) //DUMBCRAFT { return TCPCanSend( playerno + HTTP_CONNECTIONS + 1 ); }