summaryrefslogtreecommitdiffstats
path: root/src/net/tcp.c
diff options
context:
space:
mode:
authorMichael Brown2007-05-26 22:41:23 +0200
committerMichael Brown2007-05-26 22:41:23 +0200
commit1311b4194caa2fdcc888e3fddee839aa09e9d2d6 (patch)
tree5f08473f3a4565d71738985e4304b4abe31af531 /src/net/tcp.c
parentModify data-xfer semantics: it is no longer necessary to call one of (diff)
downloadipxe-1311b4194caa2fdcc888e3fddee839aa09e9d2d6.tar.gz
ipxe-1311b4194caa2fdcc888e3fddee839aa09e9d2d6.tar.xz
ipxe-1311b4194caa2fdcc888e3fddee839aa09e9d2d6.zip
Eliminate PF_INET; just use the AF_INET from the struct sockaddr instead.
Diffstat (limited to 'src/net/tcp.c')
-rw-r--r--src/net/tcp.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/net/tcp.c b/src/net/tcp.c
index eaded14e..06c66c95 100644
--- a/src/net/tcp.c
+++ b/src/net/tcp.c
@@ -11,6 +11,7 @@
#include <gpxe/refcnt.h>
#include <gpxe/xfer.h>
#include <gpxe/open.h>
+#include <gpxe/uri.h>
#include <gpxe/tcpip.h>
#include <gpxe/tcp.h>
@@ -962,15 +963,28 @@ static struct xfer_interface_operations tcp_xfer_operations = {
***************************************************************************
*/
-#warning "Placeholder URI opener"
+/** TCP socket opener */
+struct socket_opener tcp_socket_opener __socket_opener = {
+ .semantics = SOCK_STREAM,
+ .family = AF_INET,
+ .open = tcp_open,
+};
+
+/**
+ * Open TCP URI
+ *
+ * @v xfer Data transfer interface
+ * @v uri URI
+ * @ret rc Return status code
+ */
static int tcp_open_uri ( struct xfer_interface *xfer, struct uri *uri ) {
- struct sockaddr_in peer;
+ struct sockaddr_tcpip peer;
memset ( &peer, 0, sizeof ( peer ) );
- peer.sin_family = AF_INET;
- peer.sin_addr.s_addr = htonl ( 0x0afefe02 );
- peer.sin_port = htons ( 12345 );
- return tcp_open ( xfer, &peer, NULL );
+ peer.st_port = htons ( uri_port ( uri, 0 ) );
+ return xfer_open_named_socket ( xfer, SOCK_STREAM,
+ ( struct sockaddr * ) &peer,
+ uri->host, NULL );
}
/** TCP URI opener */
@@ -979,9 +993,3 @@ struct uri_opener tcp_uri_opener __uri_opener = {
.open = tcp_open_uri,
};
-/** TCP socket opener */
-struct socket_opener tcp_socket_opener __socket_opener = {
- .domain = PF_INET,
- .type = SOCK_STREAM,
- .open = tcp_open,
-};