示例#1
0
/* 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);
}
示例#2
0
/* 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);
}