diff options
| author | 2010-05-24 15:35:08 -0400 | |
|---|---|---|
| committer | 2010-05-24 15:35:08 -0400 | |
| commit | 92c2879d16148f47ff38f3490f24768bb8eb61f6 (patch) | |
| tree | 4357e98965ecdc2bbb8ce43ef4c8bfc9f2b17c0a /src/ipsw.c | |
| parent | db663abb4d7fd66b5433d46d46b7cdeda22fccdc (diff) | |
| download | idevicerestore-92c2879d16148f47ff38f3490f24768bb8eb61f6.tar.gz idevicerestore-92c2879d16148f47ff38f3490f24768bb8eb61f6.tar.bz2 | |
Have it sending DeviceTree now and started on ramdisk. Started to clean up a little bit, but not everything yet.
Diffstat (limited to 'src/ipsw.c')
| -rw-r--r-- | src/ipsw.c | 11 | 
1 files changed, 10 insertions, 1 deletions
| @@ -26,6 +26,13 @@  #include "ipsw.h"  #include "idevicerestore.h" +typedef struct { +	struct zip* zip; +} ipsw_archive; + +ipsw_archive* ipsw_open(const char* ipsw); +void ipsw_close(ipsw_archive* archive); +  ipsw_archive* ipsw_open(const char* ipsw) {  	int err = 0;  	ipsw_archive* archive = (ipsw_archive*) malloc(sizeof(ipsw_archive)); @@ -44,7 +51,8 @@ ipsw_archive* ipsw_open(const char* ipsw) {  	return archive;  } -ipsw_file* ipsw_extract_file(ipsw_archive* archive, const char* filename) { +ipsw_file* ipsw_extract_file(const char* ipsw, const char* filename) { +	ipsw_archive* archive = ipsw_open(ipsw);  	if(archive == NULL || archive->zip == NULL) {  		error("ERROR: Invalid archive\n");  		return NULL; @@ -95,6 +103,7 @@ ipsw_file* ipsw_extract_file(ipsw_archive* archive, const char* filename) {  	}  	zip_fclose(zfile); +	ipsw_close(archive);  	return file;  } | 
