Make tcp_connect() void; it will eventually have no failure case.
authorMichael Brown <mcb30@etherboot.org>
Sun, 30 Apr 2006 02:13:52 +0000 (02:13 +0000)
committerMichael Brown <mcb30@etherboot.org>
Sun, 30 Apr 2006 02:13:52 +0000 (02:13 +0000)
src/include/gpxe/hello.h
src/include/gpxe/tcp.h
src/net/tcp.c
src/proto/iscsi.c

index de8127b..a31da3e 100644 (file)
@@ -41,6 +41,6 @@ struct hello_request {
        int complete;
 };
 
-extern int hello_connect ( struct hello_request *hello );
+extern void hello_connect ( struct hello_request *hello );
 
 #endif
index 0aa209b..9b7ecc8 100644 (file)
@@ -94,7 +94,7 @@ struct tcp_connection {
 
 extern void *tcp_buffer;
 extern size_t tcp_buflen;
-extern int tcp_connect ( struct tcp_connection *conn );
+extern void tcp_connect ( struct tcp_connection *conn );
 extern void tcp_send ( struct tcp_connection *conn, const void *data,
                       size_t len );
 extern void tcp_close ( struct tcp_connection *conn );
index 50c9731..ae96474 100644 (file)
@@ -64,18 +64,11 @@ size_t tcp_buflen = UIP_BUFSIZE - ( 40 + UIP_LLH_LEN );
  * Open a TCP connection
  *
  * @v conn     TCP connection
- * @ret 0      Success
- * @ret <0     Failure
  * 
  * This sets up a new TCP connection to the remote host specified in
- * tcp_connection::sin.  The actual SYN packet will not be sent out
- * until run_tcpip() is called for the first time.
- *
- * @todo Use linked lists instead of a static buffer, and thereby
- *       remove the only potential failure case, giving this function
- *       a void return type.
+ * tcp_connection::sin.
  */
-int tcp_connect ( struct tcp_connection *conn ) {
+void tcp_connect ( struct tcp_connection *conn ) {
        struct uip_conn *uip_conn;
        u16_t ipaddr[2];
 
@@ -86,11 +79,9 @@ int tcp_connect ( struct tcp_connection *conn ) {
 
        * ( ( uint32_t * ) ipaddr ) = conn->sin.sin_addr.s_addr;
        uip_conn = uip_connect ( ipaddr, conn->sin.sin_port );
-       if ( ! uip_conn )
-               return -1;
-
+#warning "Use linked lists so that uip_connect() cannot fail"
+       assert ( uip_conn != NULL );
        *( ( void ** ) uip_conn->appstate ) = conn;
-       return 0;
 }
 
 /**
index 40e48e1..1a808b0 100644 (file)
@@ -544,8 +544,7 @@ void iscsi_wakeup ( struct iscsi_session *iscsi ) {
        switch ( iscsi->state ) {
        case ISCSI_STATE_NOT_CONNECTED:
        case ISCSI_STATE_FAILED:
-               if ( tcp_connect ( &iscsi->tcp ) != 0 )
-                       iscsi_fail ( iscsi );
+               tcp_connect ( &iscsi->tcp );
                iscsi_start_login ( iscsi );
                break;
        case ISCSI_STATE_IDLE: