Protocol structure can now specify the default port.
authorMichael Brown <mcb30@etherboot.org>
Sun, 1 May 2005 23:57:09 +0000 (23:57 +0000)
committerMichael Brown <mcb30@etherboot.org>
Sun, 1 May 2005 23:57:09 +0000 (23:57 +0000)
src/include/proto.h
src/proto/nfs.c
src/proto/slam.c
src/proto/tftm.c
src/proto/tftp.c

index 38658ac..2c157ee 100644 (file)
@@ -2,9 +2,11 @@
 #define PROTO_H
 
 #include "tables.h"
+#include "in.h"
 
 struct protocol {
        char *name;
+       in_port_t default_port;
        int ( * load ) ( char *url,
                         struct sockaddr_in *server,
                         char *file,
index 7d32800..37331a9 100644 (file)
@@ -103,9 +103,6 @@ static int rpc_lookup(struct sockaddr_in *addr, int prog, int ver, int sport)
        *p++ = htonl(ver);
        *p++ = htonl(IP_UDP);
        *p++ = 0;
-       if ( ! addr->sin_port ) {
-               addr->sin_port = SUNRPC_PORT;
-       }
        for (retries = 0; retries < MAX_RPC_RETRIES; retries++) {
                long timeout;
                udp_transmit(addr->sin_addr.s_addr, sport, addr->sin_port,
@@ -623,5 +620,7 @@ nfssymlink:
 INIT_FN ( INIT_RPC, rpc_init, nfs_reset, nfs_reset );
 
 static struct protocol nfs_protocol __protocol = {
-       "nfs", nfs
+       .name = "nfs",
+       .default_port = SUNRPC_PORT,
+       .load = nfs,
 };
index 4ea296b..09d5317 100644 (file)
@@ -516,8 +516,6 @@ static int url_slam ( char *url __unused,
        struct slam_info info;
        /* Set the defaults */
        info.server = *server;
-       if ( ! info.server.sin_port )
-               info.server.sin_port = SLAM_PORT;
        info.multicast.sin_addr.s_addr = htonl(SLAM_MULTICAST_IP);
        info.multicast.sin_port      = SLAM_MULTICAST_PORT;
        info.local.sin_addr.s_addr   = arptable[ARP_CLIENT].ipaddr.s_addr;
@@ -532,5 +530,7 @@ static int url_slam ( char *url __unused,
 }
 
 static struct protocol slam_protocol __protocol = {
-       "x-slam", url_slam
+       .name = "x-slam",
+       .default_port = SLAM_PORT,
+       .load = url_slam,
 };
index 396be42..b96736a 100644 (file)
@@ -391,8 +391,6 @@ static int url_tftm ( char *url __unused,
 
        /* Set the defaults */
        info.server = *server;
-       if ( ! info.server.sin_port )
-               info.server.sin_port = TFTM_PORT;
        info.local.sin_addr.s_addr = arptable[ARP_CLIENT].ipaddr.s_addr;
        info.local.sin_port = TFTM_PORT; /* Does not matter. */
        info.multicast = info.local;
@@ -482,5 +480,7 @@ static int opt_get_multicast(struct tftp_t *tr, unsigned short *len,
 }
 
 static struct protocol tftm_protocol __protocol = {
-       "x-tftm", url_tftm
+       .name = "x-tftm",
+       .default_port = TFTM_PORT,
+       .load = url_tftm,
 };
index 9c0e556..c59807d 100644 (file)
@@ -50,8 +50,6 @@ int tftp_block ( struct tftpreq_info_t *request,
                blksize = TFTP_DEFAULTSIZE_PACKET;
                lport++; /* Use new local port */
                server = *(request->server);
-               if ( ! server.sin_port )
-                       server.sin_port = TFTP_PORT;
                if ( !udp_transmit(server.sin_addr.s_addr, lport,
                                   server.sin_port, xmitlen, &xmit) )
                        return (0);
@@ -170,5 +168,7 @@ int tftp ( char *url __unused,
 }
 
 struct protocol tftp_protocol __default_protocol = {
-       "tftp", tftp
+       .name = "tftp",
+       .default_port = TFTP_PORT,
+       .load = tftp,
 };