int freerdp_client_save_settings_to_rdp_file(wfContext* wfc, char* filename) { if (!filename) return 1; if (wfc->instance->settings->ConnectionFile) { free(wfc->instance->settings->ConnectionFile); } wfc->instance->settings->ConnectionFile = _strdup(filename); // Reuse existing rdpFile structure if available, to preserve unsupported settings when saving to disk. if (wfc->connectionRdpFile == NULL) { wfc->connectionRdpFile = freerdp_client_rdp_file_new(); } if (!freerdp_client_populate_rdp_file_from_settings(wfc->connectionRdpFile, wfc->instance->settings)) { return 1; } if (!freerdp_client_write_rdp_file(wfc->connectionRdpFile, filename, UNICODE)); { return 2; } return 0; }
int freerdp_client_settings_write_connection_file(const rdpSettings* settings, const char* filename, BOOL unicode) { rdpFile* file; file = freerdp_client_rdp_file_new(); if (!freerdp_client_populate_rdp_file_from_settings(file, settings)) return -1; if (!freerdp_client_write_rdp_file(file, filename, unicode)) return -1; freerdp_client_rdp_file_free(file); return 0; }
int freerdp_client_write_connection_file(rdpContext* context, const char* filename, BOOL unicode) { rdpFile* file; int status = -1; file = freerdp_client_rdp_file_new(); if (freerdp_client_populate_rdp_file_from_settings(file, context->settings)) { if (freerdp_client_write_rdp_file(file, filename, unicode)) { status = 0; } } freerdp_client_rdp_file_free(file); return status; }