Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jan 2007 14:00:15 -0800
From:      Bill Fenner <fenner@research.att.com>
To:        Randall Stewart <rrs@cisco.com>
Cc:        freebsd-net@freebsd.org, "Bruce M. Simpson" <bms@freebsd.org>, Ricardo Nabinger Sanchez <rnsanchez@wait4.org>, hugme@hugme.org
Subject:   Re: Problem with port 0
Message-ID:  <200701162200.l0GM0FkG011595@bright.research.att.com>
References:  <f9876c510701120903r65543ef4nafc7eeead2becb42@mail.gmail.com> <20070112163057.2a3ec8f0.rnsanchez@wait4.org> <45A807F8.7080603@FreeBSD.org> <45ACCFF4.4040709@cisco.com>

next in thread | previous in thread | raw e-mail | index | archive | help

I'd note that RFC 768 explicitly mentions this possibility:

Source Port is an optional field, when meaningful, it indicates the port
of the sending  process,  and may be assumed  to be the port  to which a
reply should  be addressed  in the absence of any other information.  If
not used, a value of zero is inserted.

I think Hug is saying that since the boot loader is the only thing that's
running on the box, it's got no reason to use a port number, so it's
not used.

Hug's error message:
>with default tftp - Jan 12 09:37:55 dukeengi01 tftpd[80898]: connect: Can't
>assign requested address

is consistent with the following code from in_pcbconnect_setup():

        if (sin->sin_port == 0)
                return (EADDRNOTAVAIL);

which dates back to BSD 4.4 and before.

This is probably not completely wrong, but it's not right in this particular
case - tftpd should be able to connect a UDP socket to a remote port 0 in
order to respond to this request.

(FreeBSD definitely can't send from port 0, but that's OK because we don't
want to.)

  Bill



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701162200.l0GM0FkG011595>