summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown2006-04-30 04:13:52 +0200
committerMichael Brown2006-04-30 04:13:52 +0200
commit7af478b30db5ccfb69573560d81bec7561fa0f64 (patch)
tree0e8f7c028ac1f8b9d0011673d29e1219e137aa07 /src
parentPut the TCP connection periodic processing in tcp.c, where it belongs. (diff)
downloadipxe-7af478b30db5ccfb69573560d81bec7561fa0f64.tar.gz
ipxe-7af478b30db5ccfb69573560d81bec7561fa0f64.tar.xz
ipxe-7af478b30db5ccfb69573560d81bec7561fa0f64.zip
Make tcp_connect() void; it will eventually have no failure case.
Diffstat (limited to 'src')
-rw-r--r--src/include/gpxe/hello.h2
-rw-r--r--src/include/gpxe/tcp.h2
-rw-r--r--src/net/tcp.c17
-rw-r--r--src/proto/iscsi.c3
4 files changed, 7 insertions, 17 deletions
diff --git a/src/include/gpxe/hello.h b/src/include/gpxe/hello.h
index de8127bf4..a31da3e12 100644
--- a/src/include/gpxe/hello.h
+++ b/src/include/gpxe/hello.h
@@ -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
diff --git a/src/include/gpxe/tcp.h b/src/include/gpxe/tcp.h
index 0aa209b7c..9b7ecc80e 100644
--- a/src/include/gpxe/tcp.h
+++ b/src/include/gpxe/tcp.h
@@ -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 );
diff --git a/src/net/tcp.c b/src/net/tcp.c
index 50c9731fe..ae9647483 100644
--- a/src/net/tcp.c
+++ b/src/net/tcp.c
@@ -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;
}
/**
diff --git a/src/proto/iscsi.c b/src/proto/iscsi.c
index 40e48e115..1a808b006 100644
--- a/src/proto/iscsi.c
+++ b/src/proto/iscsi.c
@@ -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: