diff options
| author | 2013-09-26 22:39:04 +0200 | |
|---|---|---|
| committer | 2013-09-26 22:39:04 +0200 | |
| commit | 871ffcdcf06692fd306c8f63cd7796277c2b3d27 (patch) | |
| tree | 6d1fc3f266af3a99b984ecc627c512f582113321 /src/libirecovery.c | |
| parent | 6c329b7e20e7511e0be0445e6aeec46d588b2e4b (diff) | |
| download | libirecovery-871ffcdcf06692fd306c8f63cd7796277c2b3d27.tar.gz libirecovery-871ffcdcf06692fd306c8f63cd7796277c2b3d27.tar.bz2 | |
Make irecv_execute_script() use a script as argument instead of a filename
Diffstat (limited to 'src/libirecovery.c')
| -rw-r--r-- | src/libirecovery.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/libirecovery.c b/src/libirecovery.c index 54af81d..87ec520 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -1271,33 +1271,31 @@ irecv_error_t irecv_send_exploit(irecv_client_t client) { | |||
| 1271 | return IRECV_E_SUCCESS; | 1271 | return IRECV_E_SUCCESS; |
| 1272 | } | 1272 | } |
| 1273 | 1273 | ||
| 1274 | irecv_error_t irecv_execute_script(irecv_client_t client, const char* filename) { | 1274 | irecv_error_t irecv_execute_script(irecv_client_t client, const char* script) { |
| 1275 | irecv_error_t error = IRECV_E_SUCCESS; | 1275 | irecv_error_t error = IRECV_E_SUCCESS; |
| 1276 | if (check_context(client) != IRECV_E_SUCCESS) return IRECV_E_NO_DEVICE; | 1276 | if (check_context(client) != IRECV_E_SUCCESS) return IRECV_E_NO_DEVICE; |
| 1277 | 1277 | ||
| 1278 | char* file_data = NULL; | 1278 | char* body = strdup(script); |
| 1279 | unsigned int file_size = 0; | 1279 | char* line = strtok(body, "\n"); |
| 1280 | if(irecv_read_file(filename, &file_data, &file_size) < 0) { | ||
| 1281 | return IRECV_E_FILE_NOT_FOUND; | ||
| 1282 | } | ||
| 1283 | |||
| 1284 | char* line = strtok(file_data, "\n"); | ||
| 1285 | while(line != NULL) { | 1280 | while(line != NULL) { |
| 1286 | if(line[0] != '#') { | 1281 | if(line[0] != '#') { |
| 1287 | error = irecv_send_command(client, line); | 1282 | error = irecv_send_command(client, line); |
| 1288 | if(error != IRECV_E_SUCCESS) { | 1283 | if(error != IRECV_E_SUCCESS) { |
| 1289 | return error; | 1284 | break; |
| 1290 | } | 1285 | } |
| 1291 | 1286 | ||
| 1292 | error = irecv_receive(client); | 1287 | error = irecv_receive(client); |
| 1293 | if(error != IRECV_E_SUCCESS) { | 1288 | if(error != IRECV_E_SUCCESS) { |
| 1294 | return error; | 1289 | break; |
| 1295 | } | 1290 | } |
| 1296 | } | 1291 | } |
| 1297 | line = strtok(NULL, "\n"); | 1292 | line = strtok(NULL, "\n"); |
| 1298 | } | 1293 | } |
| 1299 | 1294 | ||
| 1300 | return IRECV_E_SUCCESS; | 1295 | if (body) |
| 1296 | free(body); | ||
| 1297 | |||
| 1298 | return error; | ||
| 1301 | } | 1299 | } |
| 1302 | 1300 | ||
| 1303 | irecv_error_t irecv_saveenv(irecv_client_t client) { | 1301 | irecv_error_t irecv_saveenv(irecv_client_t client) { |
