]> git.ozlabs.org Git - petitboot/blobdiff - ui/common/loader.c
Remove union in pb_opt_data
[petitboot] / ui / common / loader.c
index babca28a34950d0cd73fc88c8fa2f0be328f2b51..5c69533ff3cc821f96bbc313259bcb29d0cedf0f 100644 (file)
@@ -227,7 +227,7 @@ enum wget_flags {
 static char *pb_load_wget(void *ctx, struct pb_url *url, enum wget_flags flags)
 {
        int result;
 static char *pb_load_wget(void *ctx, struct pb_url *url, enum wget_flags flags)
 {
        int result;
-       const char *argv[6];
+       const char *argv[7];
        const char **p;
        char *local;
 
        const char **p;
        char *local;
 
@@ -238,12 +238,15 @@ static char *pb_load_wget(void *ctx, struct pb_url *url, enum wget_flags flags)
 
        p = argv;
        *p++ = pb_system_apps.wget;                     /* 1 */
 
        p = argv;
        *p++ = pb_system_apps.wget;                     /* 1 */
-       *p++ = "-O";                                    /* 2 */
-       *p++ = local;                                   /* 3 */
-       *p++ = url->full;                               /* 4 */
+#if !defined(DEBUG)
+       *p++ = "--quiet";                               /* 2 */
+#endif
+       *p++ = "-O";                                    /* 3 */
+       *p++ = local;                                   /* 4 */
+       *p++ = url->full;                               /* 5 */
        if (flags & wget_no_check_certificate)
        if (flags & wget_no_check_certificate)
-               *p++ = "--no-check-certificate";        /* 5 */
-       *p++ = NULL;                                    /* 6 */
+               *p++ = "--no-check-certificate";        /* 6 */
+       *p++ = NULL;                                    /* 7 */
 
        result = pb_run_cmd(argv);
 
 
        result = pb_run_cmd(argv);
 
@@ -260,16 +263,22 @@ fail:
 /**
  * pb_load_file - Loads a remote file and returns the local file path.
  * @ctx: The talloc context to associate with the returned string.
 /**
  * pb_load_file - Loads a remote file and returns the local file path.
  * @ctx: The talloc context to associate with the returned string.
+ * @remote: The remote file URL.
+ * @tempfile: An optional variable pointer to be set when a temporary local
+ *  file is created.
  *
  * Returns the local file path in a talloc'ed character string on success,
  * or NULL on error.
  */
 
  *
  * Returns the local file path in a talloc'ed character string on success,
  * or NULL on error.
  */
 
-char *pb_load_file(void *ctx, const char *remote)
+char *pb_load_file(void *ctx, const char *remote, unsigned int *tempfile)
 {
        char *local;
        struct pb_url *url = pb_url_parse(NULL, remote);
 
 {
        char *local;
        struct pb_url *url = pb_url_parse(NULL, remote);
 
+       if (tempfile)
+               *tempfile = 0;
+
        if (!url)
                return NULL;
 
        if (!url)
                return NULL;
 
@@ -277,19 +286,28 @@ char *pb_load_file(void *ctx, const char *remote)
        case pb_url_ftp:
        case pb_url_http:
                local = pb_load_wget(ctx, url, 0);
        case pb_url_ftp:
        case pb_url_http:
                local = pb_load_wget(ctx, url, 0);
+               if (tempfile && local)
+                       *tempfile = 1;
                break;
        case pb_url_https:
                break;
        case pb_url_https:
-               local = pb_load_wget(ctx, url,
-                       wget_no_check_certificate);
+               local = pb_load_wget(ctx, url, wget_no_check_certificate);
+               if (tempfile && local)
+                       *tempfile = 1;
                break;
        case pb_url_nfs:
                local = pb_load_nfs(ctx, url);
                break;
        case pb_url_nfs:
                local = pb_load_nfs(ctx, url);
+               if (tempfile && local)
+                       *tempfile = 1;
                break;
        case pb_url_sftp:
                local = pb_load_sftp(ctx, url);
                break;
        case pb_url_sftp:
                local = pb_load_sftp(ctx, url);
+               if (tempfile && local)
+                       *tempfile = 1;
                break;
        case pb_url_tftp:
                local = pb_load_tftp(ctx, url);
                break;
        case pb_url_tftp:
                local = pb_load_tftp(ctx, url);
+               if (tempfile && local)
+                       *tempfile = 1;
                break;
        default:
                local = talloc_strdup(ctx, url->full);
                break;
        default:
                local = talloc_strdup(ctx, url->full);