- bootfile = event_get_param(event, "bootfile");
- if (!bootfile) {
- pb_log("%s: bootfile param not found\n", __func__);
- return NULL;
- }
+ host = parse_host_addr(event);
+ if (!host) {
+ pb_log("%s: host address not found\n", __func__);
+ return NULL;
+ }
+
+ url_str = talloc_asprintf(ctx, "tftp://%s/", host);
+
+ /* if we have a pathprefix, use that directly.. */
+ if (pathprefix) {
+ /* strip leading slashes */
+ while (pathprefix[0] == '/')
+ pathprefix++;
+ url_str = talloc_asprintf_append(url_str, "%s", pathprefix);
+
+ /* ... otherwise, add a path based on the bootfile name, but only
+ * if conffile isn't an absolute path itself */
+ } else if (bootfile && !(conffile && conffile[0] == '/')) {