These changes are the raw update to qemu-2.6.
[kvmfornfv.git] / qemu / roms / ipxe / src / core / uri.c
index 9ec21ce..3b5f270 100644 (file)
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  * 02110-1301, USA.
+ *
+ * You can also choose to distribute this program under the terms of
+ * the Unmodified Binary Distribution Licence (as given in the file
+ * COPYING.UBDL), provided that you have satisfied its requirements.
  */
 
-FILE_LICENCE ( GPL2_OR_LATER );
+FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 
 /** @file
  *
@@ -661,6 +665,7 @@ struct uri * resolve_uri ( const struct uri *base_uri,
  * Construct TFTP URI from next-server and filename
  *
  * @v next_server      Next-server address
+ * @v port             Port number, or zero to use the default port
  * @v filename         Filename
  * @ret uri            URI, or NULL on failure
  *
@@ -669,12 +674,18 @@ struct uri * resolve_uri ( const struct uri *base_uri,
  * generic URI parser.  We provide a mechanism for directly
  * constructing a TFTP URI from the next-server and filename.
  */
-struct uri * tftp_uri ( struct in_addr next_server, const char *filename ) {
+struct uri * tftp_uri ( struct in_addr next_server, unsigned int port,
+                       const char *filename ) {
+       char buf[ 6 /* "65535" + NUL */ ];
        struct uri uri;
 
        memset ( &uri, 0, sizeof ( uri ) );
        uri.scheme = "tftp";
        uri.host = inet_ntoa ( next_server );
+       if ( port ) {
+               snprintf ( buf, sizeof ( buf ), "%d", port );
+               uri.port = buf;
+       }
        uri.path = filename;
        return uri_dup ( &uri );
 }