******************************************************************************
*/
+/**
+ * Resume TX state machine
+ *
+ * @v tls TLS connection
+ */
+static void tls_tx_resume ( struct tls_connection *tls ) {
+ process_add ( &tls->process );
+}
+
+/**
+ * Resume TX state machine for all connections within a session
+ *
+ * @v session TLS session
+ */
+static void tls_tx_resume_all ( struct tls_session *session ) {
+ struct tls_connection *tls;
+
+ list_for_each_entry ( tls, &session->conn, list )
+ tls_tx_resume ( tls );
+}
+
/**
* Restart negotiation
*
/* (Re)start negotiation */
tls->tx_pending = TLS_TX_CLIENT_HELLO;
+ tls_tx_resume ( tls );
pending_get ( &tls->client_negotiation );
pending_get ( &tls->server_negotiation );
}
-/**
- * Resume TX state machine
- *
- * @v tls TLS connection
- */
-static void tls_tx_resume ( struct tls_connection *tls ) {
- process_add ( &tls->process );
-}
-
-/**
- * Resume TX state machine for all connections within a session
- *
- * @v session TLS session
- */
-static void tls_tx_resume_all ( struct tls_session *session ) {
- struct tls_connection *tls;
-
- list_for_each_entry ( tls, &session->conn, list )
- tls_tx_resume ( tls );
-}
-
/**
* Transmit Handshake record
*
intf_init ( &tls->plainstream, &tls_plainstream_desc, &tls->refcnt );
intf_init ( &tls->cipherstream, &tls_cipherstream_desc, &tls->refcnt );
intf_init ( &tls->validator, &tls_validator_desc, &tls->refcnt );
- process_init ( &tls->process, &tls_process_desc, &tls->refcnt );
+ process_init_stopped ( &tls->process, &tls_process_desc,
+ &tls->refcnt );
tls->version = TLS_VERSION_TLS_1_2;
tls_clear_cipher ( tls, &tls->tx_cipherspec );
tls_clear_cipher ( tls, &tls->tx_cipherspec_pending );