Changeset 4190


Ignore:
Timestamp:
03/10/08 17:33:00 (5 years ago)
Author:
thomas
Message:

opkg: use a single temporary directory for entire update transaction and remove
it when done.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/opkg/libopkg/opkg_cmd.c

    r4029 r4190  
    185185static int opkg_update_cmd(opkg_conf_t *conf, int argc, char **argv) 
    186186{ 
     187     char *tmp; 
    187188     int err; 
    188189     int failures; 
     
    213214 
    214215     failures = 0; 
     216 
     217 
     218     tmp = strdup ("/tmp/opkg.XXXXXX"); 
     219 
     220     if (mkdtemp (tmp) == NULL) { 
     221         perror ("mkdtemp"); 
     222         failures++; 
     223     } 
     224 
     225 
    215226     for (iter = conf->pkg_src_list.head; iter; iter = iter->next) { 
    216227          char *url, *list_file_name; 
     
    226237          sprintf_alloc(&list_file_name, "%s/%s", lists_dir, src->name); 
    227238          if (src->gzip) { 
    228               char *tmp; 
    229239              char *tmp_file_name; 
    230240              FILE *in, *out; 
    231  
    232               tmp = strdup ("/tmp/opkg.XXXXXX"); 
    233  
    234               if (mkdtemp (tmp) == NULL) { 
    235                   perror ("mkdtemp"); 
    236                   failures++; 
    237                   continue; 
    238               } 
    239241               
    240242              sprintf_alloc (&tmp_file_name, "%s/%s.gz", tmp, src->name); 
     
    253255                        fclose (out); 
    254256                   unlink (tmp_file_name); 
    255                    rmdir (tmp); 
    256                    free (tmp); 
    257257              } 
    258258          } else 
     
    275275              sprintf_alloc(&url, "%s/%s", src->value, "Packages.sig"); 
    276276 
    277           /* create temporary dir for it */ 
    278           char *tmp, *tmp_file_name; 
    279           tmp = strdup ("/tmp/opkg.XXXXXX"); 
    280           if (mkdtemp (tmp) == NULL) { 
    281                 perror ("mkdtemp"); 
    282                 failures++; 
    283                 continue; 
    284           } 
     277          /* create temporary file for it */ 
     278          char *tmp_file_name; 
     279 
    285280          sprintf_alloc (&tmp_file_name, "%s/%s", tmp, "Packages.sig"); 
    286281 
     
    298293          } 
    299294          unlink (tmp_file_name); 
    300           unlink (tmp); 
    301295          free (tmp_file_name); 
    302296 
     
    304298          free(list_file_name); 
    305299     } 
     300     rmdir (tmp); 
     301     free (tmp); 
    306302     free(lists_dir); 
    307303 
Note: See TracChangeset for help on using the changeset viewer.