diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-03-23 15:53:05 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2010-05-19 11:22:05 +0200 |
commit | edc1af5f670bcedce49e6b2e88caac35422aad7b (patch) | |
tree | 2b4cfa8078b4a74d5eea543f413a47e6455b42cf | |
parent | 25bca7a286d88c3eded5b5c7b6685d788e99dcae (diff) | |
download | spice-edc1af5f670bcedce49e6b2e88caac35422aad7b.tar.gz spice-edc1af5f670bcedce49e6b2e88caac35422aad7b.tar.xz spice-edc1af5f670bcedce49e6b2e88caac35422aad7b.zip |
zap spice_parse_args + spice_usage_str
First step to throw out the old interface.
-rw-r--r-- | server/reds.c | 333 | ||||
-rw-r--r-- | server/spice.h | 3 |
2 files changed, 0 insertions, 336 deletions
diff --git a/server/reds.c b/server/reds.c index fdada686..42b88c38 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3728,39 +3728,6 @@ static void reds_do_set_playback_compression_2(const VDICmdArg *args) reds_do_set_playback_compression(args[0].string_val); } -static OptionsMap _spice_options[] = { - {"port", SPICE_OPTION_PORT}, - {"sport", SPICE_OPTION_SPORT}, - {"host", SPICE_OPTION_HOST}, - {"ic", SPICE_OPTION_IMAGE_COMPRESSION}, - {"password", SPICE_OPTION_PASSWORD}, - {"disable-ticketing", SPICE_OPTION_DISABLE_TICKET}, - {"renderer", SPICE_OPTION_RENDERER}, - {"sslkey", SPICE_OPTION_SSLKEY}, - {"sslcert", SPICE_OPTION_SSLCERTS}, - {"sslcafile", SPICE_OPTION_SSLCAFILE}, - {"ssldhfile", SPICE_OPTION_SSLDHFILE}, - {"sslpassword", SPICE_OPTION_SSLPASSWORD}, - {"sslciphersuite", SPICE_OPTION_SSLCIPHERSUITE}, - {"secure-channels", SPICE_SECURED_CHANNELS}, - {"unsecure-channels", SPICE_UNSECURED_CHANNELS}, - {"sv", SPICE_OPTION_STREAMING_VIDEO}, - {"agent-mouse", SPICE_OPTION_AGENT_MOUSE}, - {"playback-compression", SPICE_OPTION_PLAYBACK_COMPRESSION}, - {NULL, 0}, -}; - -static OptionsMap _channel_map[] = { - {"all", SPICE_CHANNEL_NAME_ALL}, - {"main", SPICE_CHANNEL_NAME_MAIN}, - {"display", SPICE_CHANNEL_NAME_DISPLAY}, - {"inputs", SPICE_CHANNEL_NAME_INPUTS}, - {"cursor", SPICE_CHANNEL_NAME_CURSOR}, - {"playback", SPICE_CHANNEL_NAME_PLAYBACK}, - {"record", SPICE_CHANNEL_NAME_RECORD}, - {NULL, 0}, -}; - static void set_all_channels_security(uint32_t security) { while (channels_security) { @@ -3786,306 +3753,6 @@ static void set_one_channel_security(int id, uint32_t security) channels_security = security_options; } -static int set_channels_security(const char *channels, uint32_t security) -{ - char *local_str; - int channel_name; - char *str; - char *val; - int all = 0; - int specific = 0; - - local_str = spice_strdup(channels); - str = local_str; - do { - switch (channel_name = get_option(&str, &val, _channel_map, '+')) { - case SPICE_CHANNEL_NAME_ALL: - all++; - break; - case SPICE_CHANNEL_NAME_MAIN: - specific++; - set_one_channel_security(SPICE_CHANNEL_MAIN, security); - break; - case SPICE_CHANNEL_NAME_DISPLAY: - specific++; - set_one_channel_security(SPICE_CHANNEL_DISPLAY, security); - break; - case SPICE_CHANNEL_NAME_INPUTS: - specific++; - set_one_channel_security(SPICE_CHANNEL_INPUTS, security); - break; - case SPICE_CHANNEL_NAME_CURSOR: - specific++; - set_one_channel_security(SPICE_CHANNEL_CURSOR, security); - break; - case SPICE_CHANNEL_NAME_PLAYBACK: - specific++; - set_one_channel_security(SPICE_CHANNEL_PLAYBACK, security); - break; - case SPICE_CHANNEL_NAME_RECORD: - specific++; - set_one_channel_security(SPICE_CHANNEL_RECORD, security); - break; - default: - goto error; - } - if (val) { - goto error; - } - } while (str); - - if (all) { - if (specific || all > 1) { - goto error; - } - set_all_channels_security(security); - return TRUE; - } - return TRUE; - -error: - free(local_str); - return FALSE; -} - -int __attribute__ ((visibility ("default"))) spice_parse_args(const char *in_args) -{ - char *local_args; - char *args; - int option; - char *val; - int renderers_opt = FALSE; - - int ssl_port = FALSE; - int ssl_key = FALSE; - int ssl_certs = FALSE; - int ssl_ciphersuite = FALSE; - int ssl_cafile = FALSE; - int ssl_dhfile = FALSE; - - memset(&ssl_parameters, 0, sizeof(ssl_parameters)); - - local_args = spice_strdup(in_args); - - args = local_args; - do { - switch (option = get_option(&args, &val, _spice_options, ',')) { - case SPICE_OPTION_PORT: { - char *endptr; - long int port; - - if (!val) { - goto error; - } - port = strtol(val, &endptr, 0); - if (endptr != val + strlen(val) || port < 0 || port > 0xffff) { - goto error; - } - spice_port = port; - break; - } - case SPICE_OPTION_SPORT: { - char *endptr; - long int port; - - if (!val) { - goto error; - } - port = strtol(val, &endptr, 0); - if (endptr != val + strlen(val) || port < 0 || port > 0xffff) { - goto error; - } - - ssl_port = TRUE; - spice_secure_port = port; - break; - } - case SPICE_OPTION_HOST: { - if (val) { - strncpy(spice_addr, val, sizeof(spice_addr)); - /* force ipv4 here for backward compatibility */ - spice_family = PF_INET; - } - break; - } - case SPICE_OPTION_IMAGE_COMPRESSION: - if (!val) { - goto error; - } - image_compression = reds_get_image_compression(val); - if (image_compression == SPICE_IMAGE_COMPRESS_INVALID) { - goto error; - } - break; - case SPICE_OPTION_PASSWORD: - ticketing_enabled = 1; - - if (val) { - strncpy(taTicket.password, val, sizeof taTicket.password); - //todo: add expiration option - taTicket.expiration_time = INT_MAX; - } - - break; - case SPICE_OPTION_DISABLE_TICKET: - ticketing_enabled = 0; - break; - case SPICE_OPTION_RENDERER: - renderers_opt = TRUE; - if (!val) { - goto error; - } - while (val) { - char *now = val; - if ((val = strchr(now, '+'))) { - *val++ = 0; - } - if (!red_dispatcher_add_renderer(now)) { - goto error; - } - } - - break; - case SPICE_OPTION_SSLCIPHERSUITE: - ssl_ciphersuite = TRUE; - - if (val) { - strncpy(ssl_parameters.ciphersuite, val, sizeof(ssl_parameters.ciphersuite)); - } - - break; - case SPICE_OPTION_SSLPASSWORD: - if (val) { - strncpy(ssl_parameters.keyfile_password, val, - sizeof(ssl_parameters.keyfile_password)); - } - break; - case SPICE_OPTION_SSLKEY: - ssl_key = TRUE; - - if (val) { - strncpy(ssl_parameters.private_key_file, val, - sizeof(ssl_parameters.private_key_file)); - } - break; - case SPICE_OPTION_SSLCERTS: - ssl_certs = TRUE; - - if (val) { - strncpy(ssl_parameters.certs_file, val, sizeof(ssl_parameters.certs_file)); - } - break; - case SPICE_OPTION_SSLCAFILE: - ssl_cafile = TRUE; - - if (val) { - strncpy(ssl_parameters.ca_certificate_file, val, - sizeof(ssl_parameters.ca_certificate_file)); - } - break; - case SPICE_OPTION_SSLDHFILE: - ssl_dhfile = TRUE; - - if (val) { - strncpy(ssl_parameters.dh_key_file, val, sizeof(ssl_parameters.dh_key_file)); - } - break; - case SPICE_SECURED_CHANNELS: - if (!val || !set_channels_security(val, SPICE_CHANNEL_SECURITY_SSL)) { - goto error; - } - break; - case SPICE_UNSECURED_CHANNELS: - if (!val || !set_channels_security(val, SPICE_CHANNEL_SECURITY_NONE)) { - goto error; - } - break; - case SPICE_OPTION_STREAMING_VIDEO: - if (!val) { - goto error; - } - streaming_video = reds_get_streaming_video(val); - if (streaming_video == STREAM_VIDEO_INVALID) { - goto error; - } - break; - case SPICE_OPTION_PLAYBACK_COMPRESSION: - if (!val) { - goto error; - } - if (strcmp(val, "on") == 0) { - snd_set_playback_compression(TRUE); - } else if (strcmp(val, "off") == 0) { - snd_set_playback_compression(FALSE); - } else { - goto error; - } - break; - case SPICE_OPTION_AGENT_MOUSE: - if (!val) { - goto error; - } - if (strcmp(val, "on") == 0) { - agent_mouse = TRUE; - } else if (strcmp(val, "off") == 0) { - agent_mouse = FALSE; - } else { - goto error; - } - break; - default: - goto error; - } - } while (args); - - if (!renderers_opt && !red_dispatcher_add_renderer("sw")) { - goto error; - } - - // All SSL parameters should be either on or off. - if (ssl_port != ssl_key || ssl_key != ssl_certs || ssl_certs != ssl_cafile || - ssl_cafile != ssl_dhfile || ssl_dhfile != ssl_ciphersuite) { - - goto error; - } - free(local_args); - return TRUE; - -error: - free(local_args); - return FALSE; -} - -const char *spice_usage_str[] __attribute__ ((visibility ("default"))) = { - "[port=<port>][,sport=<port>][,host=<host>]", - "[,ic=on|auto_glz|auto_lz|quic|glz|lz|off]", - "[,playback-compression=on|off]", - "[,password=password][,disable-ticketing]", - "[,renderer=oglpbuf+oglpixmap+sw]", - "[,sslkeys=key directory,sslcerts=certs directory,sslpassword=pem password,", - " sslciphersuite=cipher suite]", - "[,secure-channels=all|channel+channel+...]", - "[,unsecure-channels=all|channel+channel+...]", - "[,vs=on|off] [,ac=on|off]", - " listen on interface address <host> port <port> and/or sport <port>", - " setting ticket password using \"ticket\" option", - " setting image compression using \"ic\" option [default=auto_local]", - " setting playback compression using \"playback-compression\" option [default=on]", - " select renderers using \"renderer\" option", - " sslkeys - set directory where ssl key file resides.", - " sslcerts - set directory where ssl cert file resides.", - " sslpassword - set the password to open the private key file.", - " sslciphersuite - set the cipher suite to use.", - " setting streaming video using \"sv\" option [default=on]", - " setting audio compression codec using \"ac\" option [default=off]", - " secure-channels - force secure connection on all/specific chnnels.", - " channels names: main, inputs, display, cursor,", - " playback and record.", - " unsecure-channels - force unsecure connection on all/specific chnnels.", - " channels names as in secure-channels.", - NULL, -}; - #define REDS_SAVE_VERSION 1 static OptionsMap spice_mig_options[] = { diff --git a/server/spice.h b/server/spice.h index dda21349..b2a09b31 100644 --- a/server/spice.h +++ b/server/spice.h @@ -22,9 +22,6 @@ #include "vd_interface.h" /* old interface */ -extern const char *spice_usage_str[]; - -int spice_parse_args(const char *args); void spice_init(CoreInterface *core); /* new interface */ |