#endif
#include <assert.h>
+#include <netdb.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
-#include <sys/types.h>
+#include <sys/socket.h>
#include <sys/stat.h>
+#include <sys/types.h>
#include <talloc/talloc.h>
#include <system/system.h>
void *async_data;
};
-static inline bool have_busybox(void)
-{
-#ifdef WITH_BUSYBOX
- return true;
-#else
- return false;
-#endif
-}
-
const char *mount_base(void)
{
return DEVICE_MOUNT_BASE;
#ifndef PETITBOOT_TEST
+#ifdef WITH_BUSYBOX
+static inline bool have_busybox(void) { return true; }
+#else
+static inline bool have_busybox(void) { return false; }
+#endif
+
static char *local_name(void *ctx)
{
char *ret, tmp[] = "/tmp/pb-XXXXXX";
} else {
result->status = LOAD_ERROR;
load_url_result_cleanup_local(result);
+ pb_debug("Download client stdout buffer:\n%s\n",
+ process->stdout_buf);
}
if (result->status == LOAD_OK && process->stdout_data)
p = procinfo_get_process(procinfo);
handler = p->stdout_data;
- rc = process_stdout_custom(procinfo, &line);
+ rc = process_process_stdout(procinfo, &line);
if (rc) {
/* Unregister ourselves from progress tracking */
}
}
- if (rc != 3)
+ if (rc != 3) {
percentage = size = 0;
+ suffix = ' ';
+ }
device_handler_status_download(handler, procinfo,
percentage, size, suffix);
{
struct load_url_result *result;
struct load_task *task;
+ struct addrinfo *res;
int flags = 0;
if (!url)
/* If the url is remote but network is not yet available queue up this
* load for later */
- if (!system_info_network_available() && url->scheme != pb_url_file) {
- pb_log("load task for %s queued pending network\n", url->full);
- pending_network_jobs_add(task, flags);
- task->result->status = LOAD_ASYNC;
- return task->result;
+ if (url->scheme != pb_url_file) {
+ if (getaddrinfo(url->host, NULL, NULL, &res) != 0) {
+ pb_log("load task for %s queued pending network\n", url->full);
+ pending_network_jobs_add(task, flags);
+ task->result->status = LOAD_ASYNC;
+ return task->result;
+ }
+ freeaddrinfo(res);
}
switch (url->scheme) {