From d86293dbea3f8e3b85a227b46e257ab1fe86a069 Mon Sep 17 00:00:00 2001 From: Ruslan Ermilov Date: Tue, 21 Aug 2001 16:25:38 +0000 Subject: [PATCH] Added TFTP support. Submitted by: Joe Clarke MFC after: 2 weeks --- lib/libalias/alias.c | 9 +++++++++ sys/netinet/libalias/alias.c | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/libalias/alias.c b/lib/libalias/alias.c index c279a9ee575..575f369c8fa 100644 --- a/lib/libalias/alias.c +++ b/lib/libalias/alias.c @@ -134,6 +134,7 @@ #define CUSEEME_PORT_NUMBER 7648 #define RTSP_CONTROL_PORT_NUMBER_1 554 #define RTSP_CONTROL_PORT_NUMBER_2 7070 +#define TFTP_PORT_NUMBER 69 #define PPTP_CONTROL_PORT_NUMBER 1723 @@ -837,6 +838,14 @@ UdpAliasOut(struct ip *pip) || ntohs(ud->uh_sport) == NETBIOS_NS_PORT_NUMBER) AliasHandleUdpNbtNS(pip, link, &pip->ip_src, &ud->uh_sport, &alias_address, &alias_port); +/* + * We don't know in advance what TID the TFTP server will choose, + * so we create a wilcard link (destination port is unspecified) + * that will match any TID from a given destination. + */ + else if (ntohs(ud->uh_dport) == TFTP_PORT_NUMBER) + FindRtspOut(pip->ip_src, pip->ip_dst, + ud->uh_sport, alias_port, IPPROTO_UDP); /* If UDP checksum is not zero, adjust since source port is */ /* being aliased and source address is being altered */ diff --git a/sys/netinet/libalias/alias.c b/sys/netinet/libalias/alias.c index c279a9ee575..575f369c8fa 100644 --- a/sys/netinet/libalias/alias.c +++ b/sys/netinet/libalias/alias.c @@ -134,6 +134,7 @@ #define CUSEEME_PORT_NUMBER 7648 #define RTSP_CONTROL_PORT_NUMBER_1 554 #define RTSP_CONTROL_PORT_NUMBER_2 7070 +#define TFTP_PORT_NUMBER 69 #define PPTP_CONTROL_PORT_NUMBER 1723 @@ -837,6 +838,14 @@ UdpAliasOut(struct ip *pip) || ntohs(ud->uh_sport) == NETBIOS_NS_PORT_NUMBER) AliasHandleUdpNbtNS(pip, link, &pip->ip_src, &ud->uh_sport, &alias_address, &alias_port); +/* + * We don't know in advance what TID the TFTP server will choose, + * so we create a wilcard link (destination port is unspecified) + * that will match any TID from a given destination. + */ + else if (ntohs(ud->uh_dport) == TFTP_PORT_NUMBER) + FindRtspOut(pip->ip_src, pip->ip_dst, + ud->uh_sport, alias_port, IPPROTO_UDP); /* If UDP checksum is not zero, adjust since source port is */ /* being aliased and source address is being altered */