<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:18:51 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CDRIVER-3723] Validate URI options on client/client pool creation</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-3723</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;URI options may be passed to a &lt;tt&gt;mongoc_uri_t&lt;/tt&gt; in three ways.&lt;/p&gt;

&lt;p&gt;1. Through the string passed to the &lt;tt&gt;mongoc_uri_new&lt;/tt&gt;&#160;call.&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;uri = mongoc_uri_new (&quot;mongodb://localhost:27017/?ssl=true&quot;);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;&#160;&lt;br/&gt;
2. After creation, through the &lt;tt&gt;mongoc_uri_set_option_as_*&lt;/tt&gt; helpers&#160;&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;uri = mongoc_uri_new (&quot;mongodb://localhost:27017/&quot;);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;mongoc_uri_set_option_as_bool (uri, &quot;ssl&quot;, false);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;
&lt;p&gt;&#160;&lt;br/&gt;
3. Via TXT records on a mongodb+srv URI.&lt;br/&gt;
&#160;&lt;br/&gt;
&lt;tt&gt;mongoc_uri_parse_options&lt;/tt&gt; validates that there are no conflicts between canonical and non-canonical values (e.g. having both ssl=true and tls=false). It is called for both (1) and (3).&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;mongoc_uri_finalize_tls&lt;/tt&gt;, &lt;tt&gt;mongoc_uri_finalize_auth&lt;/tt&gt;, &lt;tt&gt;mongoc_uri_finalize_directconnection&lt;/tt&gt; validate other state of URI options. It is only called for (1).&lt;/p&gt;

&lt;p&gt;Options set by (2) may not undergo validation unless they validated from options being applied by (3).&lt;/p&gt;

&lt;p&gt;URI options should be validated regardless of how options are set. The proposed solution is to validate URI options on client/client pool construction by introducing the new APIs:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;mongoc_client_t* mongoc_client_new_with_error (mongoc_uri_t* uri, bson_error_t* error);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;mongoc_client_pool_t* mongoc_client_pool_new_with_error (mongoc_uri_t* uri, bson_error_t* error);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</description>
                <environment></environment>
        <key id="1384145">CDRIVER-3723</key>
            <summary>Validate URI options on client/client pool creation</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="jmikola@mongodb.com">Jeremy Mikola</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Jun 2020 19:32:58 +0000</created>
                <updated>Sat, 28 Oct 2023 11:28:43 +0000</updated>
                            <resolved>Tue, 4 Jan 2022 20:04:12 +0000</resolved>
                                                    <fixVersion>1.21.0</fixVersion>
                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="4274876" author="xgen-internal-githook" created="Tue, 4 Jan 2022 20:02:33 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jeremy Mikola&apos;, &apos;email&apos;: &apos;jmikola@gmail.com&apos;, &apos;username&apos;: &apos;jmikola&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-3723&quot; title=&quot;Validate URI options on client/client pool creation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-3723&quot;&gt;&lt;del&gt;CDRIVER-3723&lt;/del&gt;&lt;/a&gt; finalize URI during client/pool construction (#921)&lt;/p&gt;

&lt;p&gt;Introduces new mongoc_client_new_from_uri_with_error and mongoc_client_pool_new_with_error methods. Also addresses topology leak in mongoc_client_new_from_uri (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4251&quot; title=&quot;mongoc_client_new_from_uri may leak topology&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4251&quot;&gt;&lt;del&gt;CDRIVER-4251&lt;/del&gt;&lt;/a&gt;).&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Remove redundant warnings about unused results&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Explain why we need not handle null result from _mongoc_client_new_from_topology&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Log URI errors in mongoc_client_new as warnings&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Clear logs between /Client/max_staleness assertions&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Set error instead of logging in mongoc_client_pool_new_with_error&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Remove test expecting a client with an invalid topology&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Revise assertions in /loadbalanced/client_uri_validation test&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This no longer requires constructing a client and expecting an error through server selection.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Use tracing macro for return statement&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Check MONGOC_ENABLE_SSL in mongoc_client_new_from_uri_with_error&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Moving the check up from _mongoc_client_new_from_topology makes mongoc_client_new_from_uri_with_error consistent with mongoc_client_pool_new_with_error. Additionally, we add log message assertions to corresponding tests.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Anticipate null pool or client in SRV error tests&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Remove obsolete tests for invalid LB topologies&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;These tests were previously introduced in &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-4184&quot; title=&quot;Assert in invalid topology in load balanced mode topology closed callback&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-4184&quot;&gt;&lt;del&gt;CDRIVER-4184&lt;/del&gt;&lt;/a&gt; but no longer apply now that we prohibit construction of clients and pools with an invalid topology.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;_mongoc_client_new_from_topology should require a valid topology&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Document precondition for _mongoc_client_new_from_topology&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Ezra Chung &amp;lt;88335979+eramongodb@users.noreply.github.com&amp;gt;&lt;br/&gt;
Co-authored-by: Kevin Albertson &amp;lt;kevin.albertson@mongodb.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/e7e15002d63cb57424f467c5f21eafa9ec0f018e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/e7e15002d63cb57424f467c5f21eafa9ec0f018e&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4266459" author="jmikola@gmail.com" created="Thu, 23 Dec 2021 19:31:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/pull/921&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/pull/921&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="3373137" author="kevin.albertson" created="Wed, 2 Sep 2020 19:53:51 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=pierremickael.gonzalo%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;pierremickael.gonzalo@gmail.com&quot;&gt;pierremickael.gonzalo@gmail.com&lt;/a&gt;, with the new proposed APIs, the &lt;tt&gt;mongoc_uri_t&lt;/tt&gt; is still created and parsed before the client. Avoiding double validation is a good point. Internally, the &lt;tt&gt;mongoc_uri_t&lt;/tt&gt; could track whether options were set after the initial parsing to avoid an unnecessary revalidation when constructing the client.&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;uri = mongoc_uri_new_with_error (&quot;mongodb://localhost:27017&quot;, &amp;amp;error);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;if (!uri) { /* handle error */ }&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;mongoc_uri_set_option_as_bool (uri, &quot;tls&quot;, true);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;client = mongoc_client_new_with_error (uri, &amp;amp;error);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;/* validation occurs again since set_option was called */&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Setting options via TXT records is referencing the &lt;a href=&quot;https://github.com/mongodb/specifications/tree/master/source/initial-dns-seedlist-discovery/initial-dns-seedlist-discovery.rst&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Initial DNS Seedlist Discovery specification&lt;/a&gt;. That sets additional options after a DNS lookup of TXT records, and has additional constraints.&lt;/p&gt;

&lt;p&gt;I&apos;m removing the &lt;tt&gt;new-eng&lt;/tt&gt; label from this ticket. I think this may require some more involved restructuring of mongoc-uri.c parsing.&lt;/p&gt;</comment>
                            <comment id="3326269" author="JIRAUSER1254435" created="Fri, 7 Aug 2020 13:40:44 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;I have a question about the new prototype function of the two news api:&lt;/p&gt;

&lt;p&gt;So the uri argument would be still not initialized when calling those apis ?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;3. Via TXT records on a mongodb+srv URI.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;you mean : initialize directly a mongoc_uri_t and set its attribute str ?&lt;/p&gt;

&lt;p&gt;So the thing is to call &quot;mongoc_uri_parse&quot; is these new api to validate URI options ?&lt;br/&gt;
Then call mongoc_client_new/mongoc_client_pool_new ?&lt;br/&gt;
But not exactly because by calling mongoc_client_new, the uri options will be validated twice.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1956978">CDRIVER-4253</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1956981">CDRIVER-4254</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1392373">PHPC-1647</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1956991">CDRIVER-4255</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="1956981">CDRIVER-4254</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1956001">CDRIVER-4251</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1954548">CDRIVER-4250</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1851985">PHPC-1950</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1080765">CDRIVER-3476</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hxdk47:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>