diff options
Diffstat (limited to 'OpenSSL/Config.html')
-rw-r--r-- | OpenSSL/Config.html | 388 |
1 files changed, 192 insertions, 196 deletions
diff --git a/OpenSSL/Config.html b/OpenSSL/Config.html index 482dc11f..214c6ebf 100644 --- a/OpenSSL/Config.html +++ b/OpenSSL/Config.html @@ -84,10 +84,9 @@ <li ><a href="#method-c-parse">::parse</a> <li ><a href="#method-c-parse_config">::parse_config</a> <li ><a href="#method-i-5B-5D">#[]</a> - <li ><a href="#method-i-5B-5D-3D">#[]=</a> - <li ><a href="#method-i-add_value">#add_value</a> <li ><a href="#method-i-each">#each</a> <li ><a href="#method-i-get_value">#get_value</a> + <li ><a href="#method-i-initialize_copy">#initialize_copy</a> <li ><a href="#method-i-inspect">#inspect</a> <li ><a href="#method-i-sections">#sections</a> <li ><a href="#method-i-to_s">#to_s</a> @@ -104,8 +103,6 @@ <section class="description"> -<h1 id="class-OpenSSL::Config-label-OpenSSL-3A-3AConfig"><a href="Config.html"><code>OpenSSL::Config</code></a><span><a href="#class-OpenSSL::Config-label-OpenSSL-3A-3AConfig">¶</a> <a href="#top">↑</a></span></h1> - <p>Configuration for the openssl library.</p> <p>Many system’s installation of openssl library will depend on your system configuration. See the value of <a href="Config.html#DEFAULT_CONFIG_FILE"><code>OpenSSL::Config::DEFAULT_CONFIG_FILE</code></a> for the location of the file for your host.</p> @@ -123,13 +120,7 @@ </header> <dl> <dt id="DEFAULT_CONFIG_FILE">DEFAULT_CONFIG_FILE - <dd><p>The default system configuration file for openssl</p> - <dt id="ESCAPE_MAP">ESCAPE_MAP - <dd><p>escaped char map</p> - <dt id="QUOTE_REGEXP_DQ">QUOTE_REGEXP_DQ - <dd><p>escape with backslash and doubled dq</p> - <dt id="QUOTE_REGEXP_SQ">QUOTE_REGEXP_SQ - <dd><p>escape with backslash</p> + <dd><p>The default system configuration file for <a href="../OpenSSL.html"><code>OpenSSL</code></a>.</p> </dl> </section> @@ -142,32 +133,37 @@ <div id="method-c-new" class="method-detail "> <div class="method-heading"> - <span class="method-name">new</span><span - class="method-args">(filename = nil)</span> + <span class="method-callseq"> + new(filename) → OpenSSL::Config + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>Creates an instance of OpenSSL’s configuration class.</p> + <p>Creates an instance of <a href="Config.html"><code>OpenSSL::Config</code></a> from the content of the file specified by <em>filename</em>.</p> <p>This can be used in contexts like <a href="X509/ExtensionFactory.html#attribute-i-config"><code>OpenSSL::X509::ExtensionFactory.config=</code></a></p> -<p>If the optional <em>filename</em> parameter is provided, then it is read in and parsed via parse_config.</p> - <p>This can raise <a href="../IO.html"><code>IO</code></a> exceptions based on the access, or availability of the file. A <a href="ConfigError.html"><code>ConfigError</code></a> exception may be raised depending on the validity of the data being configured.</p> <div class="method-source-code" id="new-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 264</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">filename</span> = <span class="ruby-keyword">nil</span>) - <span class="ruby-ivar">@data</span> = {} - <span class="ruby-keyword">if</span> <span class="ruby-identifier">filename</span> - <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">filename</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span> - <span class="ruby-constant">Config</span>.<span class="ruby-identifier">parse_config</span>(<span class="ruby-identifier">file</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section</span>, <span class="ruby-identifier">hash</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">set_section</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">hash</span>) - <span class="ruby-keyword">end</span> - <span class="ruby-keyword">end</span> - <span class="ruby-keyword">end</span> -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_initialize(int argc, VALUE *argv, VALUE self) +{ + CONF *conf = GetConfig(self); + VALUE filename; + + /* 0-arguments call has no use-case, but is kept for compatibility */ + rb_scan_args(argc, argv, "01", &filename); + rb_check_frozen(self); + if (!NIL_P(filename)) { + BIO *bio = BIO_new_file(StringValueCStr(filename), "rb"); + if (!bio) + ossl_raise(eConfigError, "BIO_new_file"); + config_load_bio(conf, bio); /* Consumes BIO */ + } + return self; +}</pre> </div> </div> @@ -176,25 +172,27 @@ <div id="method-c-parse" class="method-detail "> <div class="method-heading"> - <span class="method-name">parse</span><span - class="method-args">(string)</span> + <span class="method-callseq"> + parse(string) → OpenSSL::Config + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <p>Parses a given <em>string</em> as a blob that contains configuration for <a href="../OpenSSL.html"><code>OpenSSL</code></a>.</p> -<p>If the source of the <a href="../IO.html"><code>IO</code></a> is a file, then consider using parse_config.</p> - <div class="method-source-code" id="parse-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 37</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">parse</span>(<span class="ruby-identifier">string</span>) - <span class="ruby-identifier">c</span> = <span class="ruby-identifier">new</span>() - <span class="ruby-identifier">parse_config</span>(<span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">string</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section</span>, <span class="ruby-identifier">hash</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">c</span>.<span class="ruby-identifier">set_section</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">hash</span>) - <span class="ruby-keyword">end</span> - <span class="ruby-identifier">c</span> -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_s_parse(VALUE klass, VALUE str) +{ + VALUE obj = config_s_alloc(klass); + CONF *conf = GetConfig(obj); + BIO *bio; + + bio = ossl_obj2bio(&str); + config_load_bio(conf, bio); /* Consumes BIO */ + return obj; +}</pre> </div> </div> @@ -203,25 +201,31 @@ <div id="method-c-parse_config" class="method-detail "> <div class="method-heading"> - <span class="method-name">parse_config</span><span - class="method-args">(io)</span> + <span class="method-callseq"> + parse_config(io) → hash + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>Parses the configuration data read from <em>io</em>, see also parse.</p> - -<p>Raises a <a href="ConfigError.html"><code>ConfigError</code></a> on invalid configuration data.</p> + <p>Parses the configuration data read from <em>io</em> and returns the whole content as a Hash.</p> <div class="method-source-code" id="parse_config-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 53</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">parse_config</span>(<span class="ruby-identifier">io</span>) - <span class="ruby-keyword">begin</span> - <span class="ruby-identifier">parse_config_lines</span>(<span class="ruby-identifier">io</span>) - <span class="ruby-keyword">rescue</span> <span class="ruby-operator">=></span> <span class="ruby-identifier">error</span> - <span class="ruby-identifier">raise</span> <span class="ruby-constant">ConfigError</span>, <span class="ruby-node">"error in line #{io.lineno}: "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">error</span>.<span class="ruby-identifier">message</span> - <span class="ruby-keyword">end</span> -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_s_parse_config(VALUE klass, VALUE io) +{ + VALUE obj, sections, ret; + long i; + + obj = config_s_parse(klass, io); + sections = config_get_sections(obj); + ret = rb_hash_new(); + for (i = 0; i < RARRAY_LEN(sections); i++) { + VALUE section = rb_ary_entry(sections, i); + rb_hash_aset(ret, section, config_get_section(obj, section)); + } + return ret; +}</pre> </div> </div> @@ -237,13 +241,14 @@ <div id="method-i-5B-5D" class="method-detail "> <div class="method-heading"> - <span class="method-name">[]</span><span - class="method-args">(section)</span> + <span class="method-callseq"> + config[section] → hash + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>Get a specific <em>section</em> from the current configuration</p> + <p>Gets all key-value pairs in a specific <em>section</em> from the current configuration.</p> <p>Given the following configurating file being loaded:</p> @@ -261,73 +266,78 @@ </pre> <div class="method-source-code" id="5B-5D-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 360</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">[]</span>(<span class="ruby-identifier">section</span>) - <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">section</span>] <span class="ruby-operator">||</span> {} -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_get_section(VALUE self, VALUE section) +{ + CONF *conf = GetConfig(self); + STACK_OF(CONF_VALUE) *sk; + int i, entries; + VALUE hash; + + hash = rb_hash_new(); + StringValueCStr(section); + if (!(sk = NCONF_get_section(conf, RSTRING_PTR(section)))) { + ossl_clear_error(); + return hash; + } + entries = sk_CONF_VALUE_num(sk); + for (i = 0; i < entries; i++) { + CONF_VALUE *entry = sk_CONF_VALUE_value(sk, i); + rb_hash_aset(hash, rb_str_new_cstr(entry->name), + rb_str_new_cstr(entry->value)); + } + return hash; +}</pre> </div> </div> </div> - <div id="method-i-5B-5D-3D" class="method-detail "> + <div id="method-i-each" class="method-detail "> <div class="method-heading"> - <span class="method-name">[]=</span><span - class="method-args">(section, pairs)</span> + <span class="method-callseq"> + each { |section, key, value| } + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>*Deprecated in v2.2.0*. This method will be removed in a future release.</p> + <p>Retrieves the section and its pairs for the current configuration.</p> -<p>Sets a specific <em>section</em> name with a Hash <em>pairs</em>.</p> - -<p>Given the following configuration being created:</p> - -<pre class="ruby"><span class="ruby-identifier">config</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span> - <span class="ruby-comment">#=> #<OpenSSL::Config sections=[]></span> -<span class="ruby-identifier">config</span>[<span class="ruby-string">'default'</span>] = {<span class="ruby-string">"foo"</span><span class="ruby-operator">=></span><span class="ruby-string">"bar"</span>,<span class="ruby-string">"baz"</span><span class="ruby-operator">=></span><span class="ruby-string">"buz"</span>} - <span class="ruby-comment">#=> {"foo"=>"bar", "baz"=>"buz"}</span> -<span class="ruby-identifier">puts</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">to_s</span> - <span class="ruby-comment">#=> [ default ]</span> - <span class="ruby-comment"># foo=bar</span> - <span class="ruby-comment"># baz=buz</span> +<pre class="ruby"><span class="ruby-identifier">config</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> + <span class="ruby-comment"># ...</span> +<span class="ruby-keyword">end</span> </pre> -<p>It’s important to note that this will essentially merge any of the keys in <em>pairs</em> with the existing <em>section</em>. For example:</p> + <div class="method-source-code" id="each-source"> + <pre>static VALUE +config_each(VALUE self) +{ + CONF *conf = GetConfig(self); -<pre class="ruby"><span class="ruby-identifier">config</span>[<span class="ruby-string">'default'</span>] - <span class="ruby-comment">#=> {"foo"=>"bar", "baz"=>"buz"}</span> -<span class="ruby-identifier">config</span>[<span class="ruby-string">'default'</span>] = {<span class="ruby-string">"foo"</span> <span class="ruby-operator">=></span> <span class="ruby-string">"changed"</span>} - <span class="ruby-comment">#=> {"foo"=>"changed"}</span> -<span class="ruby-identifier">config</span>[<span class="ruby-string">'default'</span>] - <span class="ruby-comment">#=> {"foo"=>"changed", "baz"=>"buz"}</span> -</pre> + RETURN_ENUMERATOR(self, 0, 0); - <div class="method-source-code" id="5B-5D-3D-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 399</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">[]=</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">pairs</span>) - <span class="ruby-identifier">check_modify</span> - <span class="ruby-identifier">set_section</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">pairs</span>) -<span class="ruby-keyword">end</span></pre> + lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(each_conf_value), + NULL); + return self; +}</pre> </div> </div> </div> - <div id="method-i-add_value" class="method-detail "> + <div id="method-i-get_value" class="method-detail "> <div class="method-heading"> - <span class="method-name">add_value</span><span - class="method-args">(section, key, value)</span> + <span class="method-callseq"> + get_value(section, key) → string + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>*Deprecated in v2.2.0*. This method will be removed in a future release.</p> - -<p>Set the target <em>key</em> with a given <em>value</em> under a specific <em>section</em>.</p> + <p>Gets the value of <em>key</em> from the given <em>section</em>.</p> <p>Given the following configurating file being loaded:</p> @@ -338,93 +348,60 @@ <span class="ruby-comment"># foo=bar</span> </pre> -<p>You can set the value of <em>foo</em> under the <em>default</em> section to a new value:</p> - -<pre class="ruby"><span class="ruby-identifier">config</span>.<span class="ruby-identifier">add_value</span>(<span class="ruby-string">'default'</span>, <span class="ruby-string">'foo'</span>, <span class="ruby-string">'buzz'</span>) - <span class="ruby-comment">#=> "buzz"</span> -<span class="ruby-identifier">puts</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">to_s</span> - <span class="ruby-comment">#=> [ default ]</span> - <span class="ruby-comment"># foo=buzz</span> -</pre> - - <div class="method-source-code" id="add_value-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 339</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">add_value</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>) - <span class="ruby-identifier">check_modify</span> - (<span class="ruby-ivar">@data</span>[<span class="ruby-identifier">section</span>] <span class="ruby-operator">||=</span> {})[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span> -<span class="ruby-keyword">end</span></pre> - </div> - </div> - - - </div> - - <div id="method-i-each" class="method-detail "> - <div class="method-heading"> - <span class="method-name">each</span><span - class="method-args">() { |section, key, value| ... }</span> - <span class="method-click-advice">click to toggle source</span> - </div> - - <div class="method-description"> - <p>For a block.</p> - -<p>Receive the section and its pairs for the current configuration.</p> +<p>You can get a specific value from the config if you know the <em>section</em> and <em>key</em> like so:</p> -<pre class="ruby"><span class="ruby-identifier">config</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> - <span class="ruby-comment"># ...</span> -<span class="ruby-keyword">end</span> +<pre class="ruby"><span class="ruby-identifier">config</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-string">'default'</span>,<span class="ruby-string">'foo'</span>) + <span class="ruby-comment">#=> "bar"</span> </pre> - <div class="method-source-code" id="each-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 464</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">each</span> - <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section</span>, <span class="ruby-identifier">hash</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> - <span class="ruby-keyword">yield</span> [<span class="ruby-identifier">section</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>] - <span class="ruby-keyword">end</span> - <span class="ruby-keyword">end</span> -<span class="ruby-keyword">end</span></pre> + <div class="method-source-code" id="get_value-source"> + <pre>static VALUE +config_get_value(VALUE self, VALUE section, VALUE key) +{ + CONF *conf = GetConfig(self); + const char *str, *sectionp; + + StringValueCStr(section); + StringValueCStr(key); + /* For compatibility; NULL means "default". */ + sectionp = RSTRING_LEN(section) ? RSTRING_PTR(section) : NULL; + str = NCONF_get_string(conf, sectionp, RSTRING_PTR(key)); + if (!str) { + ossl_clear_error(); + return Qnil; + } + return rb_str_new_cstr(str); +}</pre> </div> </div> </div> - <div id="method-i-get_value" class="method-detail "> + <div id="method-i-initialize_copy" class="method-detail "> <div class="method-heading"> - <span class="method-name">get_value</span><span - class="method-args">(section, key)</span> + <span class="method-name">initialize_copy</span><span + class="method-args">(p1)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>Gets the value of <em>key</em> from the given <em>section</em></p> - -<p>Given the following configurating file being loaded:</p> - -<pre class="ruby"><span class="ruby-identifier">config</span> = <span class="ruby-constant">OpenSSL</span><span class="ruby-operator">::</span><span class="ruby-constant">Config</span>.<span class="ruby-identifier">load</span>(<span class="ruby-string">'foo.cnf'</span>) - <span class="ruby-comment">#=> #<OpenSSL::Config sections=["default"]></span> -<span class="ruby-identifier">puts</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">to_s</span> - <span class="ruby-comment">#=> [ default ]</span> - <span class="ruby-comment"># foo=bar</span> -</pre> - -<p>You can get a specific value from the config if you know the <em>section</em> and <em>key</em> like so:</p> - -<pre class="ruby"><span class="ruby-identifier">config</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-string">'default'</span>,<span class="ruby-string">'foo'</span>) - <span class="ruby-comment">#=> "bar"</span> -</pre> - - <div class="method-source-code" id="get_value-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 292</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">get_value</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">key</span>) - <span class="ruby-keyword">if</span> <span class="ruby-identifier">section</span>.<span class="ruby-identifier">nil?</span> - <span class="ruby-identifier">raise</span> <span class="ruby-constant">TypeError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">'nil not allowed'</span>) - <span class="ruby-keyword">end</span> - <span class="ruby-identifier">section</span> = <span class="ruby-string">'default'</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">section</span>.<span class="ruby-identifier">empty?</span> - <span class="ruby-identifier">get_key_string</span>(<span class="ruby-identifier">section</span>, <span class="ruby-identifier">key</span>) -<span class="ruby-keyword">end</span></pre> + + + <div class="method-source-code" id="initialize_copy-source"> + <pre>static VALUE +config_initialize_copy(VALUE self, VALUE other) +{ + CONF *conf = GetConfig(self); + VALUE str; + BIO *bio; + + str = rb_funcall(other, rb_intern("to_s"), 0); + rb_check_frozen(self); + bio = ossl_obj2bio(&str); + config_load_bio(conf, bio); /* Consumes BIO */ + return self; +}</pre> </div> </div> @@ -433,8 +410,9 @@ <div id="method-i-inspect" class="method-detail "> <div class="method-heading"> - <span class="method-name">inspect</span><span - class="method-args">()</span> + <span class="method-callseq"> + inspect → string + </span> <span class="method-click-advice">click to toggle source</span> </div> @@ -442,10 +420,20 @@ <p>String representation of this configuration object, including the class name and its sections.</p> <div class="method-source-code" id="inspect-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 475</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">inspect</span> - <span class="ruby-node">"#<#{self.class.name} sections=#{sections.inspect}>"</span> -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_inspect(VALUE self) +{ + VALUE str, ary = config_get_sections(self); + const char *cname = rb_class2name(rb_obj_class(self)); + + str = rb_str_new_cstr("#<"); + rb_str_cat_cstr(str, cname); + rb_str_cat_cstr(str, " sections="); + rb_str_append(str, rb_inspect(ary)); + rb_str_cat_cstr(str, ">"); + + return str; +}</pre> </div> </div> @@ -454,19 +442,27 @@ <div id="method-i-sections" class="method-detail "> <div class="method-heading"> - <span class="method-name">sections</span><span - class="method-args">()</span> + <span class="method-callseq"> + sections → array of string + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>Get the names of all sections in the current configuration</p> + <p>Get the names of all sections in the current configuration.</p> <div class="method-source-code" id="sections-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 413</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">sections</span> - <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">keys</span> -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_get_sections(VALUE self) +{ + CONF *conf = GetConfig(self); + VALUE ary; + + ary = rb_ary_new(); + lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(get_conf_section), + &ary); + return ary; +}</pre> </div> </div> @@ -475,13 +471,14 @@ <div id="method-i-to_s" class="method-detail "> <div class="method-heading"> - <span class="method-name">to_s</span><span - class="method-args">()</span> + <span class="method-callseq"> + to_s → string + </span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> - <p>Get the parsable form of the current configuration</p> + <p>Gets the parsable form of the current configuration.</p> <p>Given the following configuration being created:</p> @@ -508,18 +505,17 @@ </pre> <div class="method-source-code" id="to_s-source"> - <pre><span class="ruby-comment"># File lib/openssl/config.rb, line 443</span> -<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">to_s</span> - <span class="ruby-identifier">ary</span> = [] - <span class="ruby-ivar">@data</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">ary</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"[ #{section} ]\n"</span> - <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">section</span>].<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> - <span class="ruby-identifier">ary</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{key}=#{@data[section][key]}\n"</span> - <span class="ruby-keyword">end</span> - <span class="ruby-identifier">ary</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"\n"</span> - <span class="ruby-keyword">end</span> - <span class="ruby-identifier">ary</span>.<span class="ruby-identifier">join</span> -<span class="ruby-keyword">end</span></pre> + <pre>static VALUE +config_to_s(VALUE self) +{ + CONF *conf = GetConfig(self); + VALUE str; + + str = rb_str_new(NULL, 0); + lh_doall_arg((_LHASH *)conf->data, LHASH_DOALL_ARG_FN(dump_conf_value), + &str); + return str; +}</pre> </div> </div> |