/* Read IOS configuraton from the files and push it to NVRAM (NULL to keep existing data) */ int vm_nvram_push_config(vm_instance_t *vm,const char *startup_filename,const char *private_filename) { u_char *startup_config = NULL; u_char *private_config = NULL; size_t startup_len = 0; size_t private_len = 0; int res = -1; /* Read configuration */ if (startup_filename) { if (m_read_file(startup_filename, &startup_config, &startup_len)) goto cleanup; } if (private_filename) { if (m_read_file(private_filename, &private_config, &private_len)) goto cleanup; } /* Push it! */ res = vm->platform->nvram_push_config(vm, startup_config, startup_len, private_config, private_len); cleanup: free(startup_config); free(private_config); return(res); }
/* Read an IOS configuraton from a file and push it to NVRAM */ int vm_nvram_push_config(vm_instance_t *vm,char *filename) { u_char *cfg_buffer; ssize_t len; int res; if (!vm->platform->nvram_push_config) return(-1); /* Read configuration */ if (((len = m_read_file(filename,&cfg_buffer)) <= 0) || !cfg_buffer) return(-1); /* Push it! */ res = vm->platform->nvram_push_config(vm,cfg_buffer,len); free(cfg_buffer); return(res); }