{"id":181,"date":"2012-03-21T12:43:29","date_gmt":"2012-03-21T12:43:29","guid":{"rendered":"http:\/\/blogs.kent.ac.uk\/unseenit\/?p=181"},"modified":"2015-01-15T16:15:05","modified_gmt":"2015-01-15T16:15:05","slug":"ldap_local_error","status":"publish","type":"post","link":"https:\/\/blogs.kent.ac.uk\/unseenit\/ldap_local_error\/","title":{"rendered":"LDAP_LOCAL_ERROR"},"content":{"rendered":"<p>Some unknown number of hours wasted&#8230; hopefully this will help someone else before they disappear too much into no-search-result darkness.<\/p>\n<p>Using Perl&#8217;s <a title=\"Net::LDAP\" href=\"http:\/\/search.cpan.org\/~gbarr\/perl-ldap-0.33\/lib\/Net\/LDAP.pod\" target=\"_blank\">Net::LDAP<\/a> to manage LDAP entries, I was getting the following error back after calling &#8220;update&#8221; on an Entry object<\/p>\n<pre>    LDAP error 82 (LDAP_LOCAL_ERROR: An error occurred in C&lt;Net::LDAP&gt;;)<\/pre>\n<p>This, it turns out, was because I was trying to update an entry without having put in any modifications with the following sort of code path:<\/p>\n<pre>    $entry-&gt;replace ( $attribute =&gt; $value )\r\n        unless $entry-&gt;get_value($attribute) eq $value;\r\n    $entry-&gt;update($ldap);<\/pre>\n<p>I (appear to) have fixed this by refactoring to:<\/p>\n<pre>    unless ($entry-&gt;get_value($attribute) eq $value) {\r\n        $entry-&gt;replace ( $attribute =&gt; $value );\r\n        $entry-&gt;update($ldap);\r\n    }<\/pre>\n<p>So, basically, don&#8217;t call update() unless you&#8217;ve got changes to make \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some unknown number of hours wasted&#8230; hopefully this will help someone else before they disappear too much into no-search-result darkness. Using Perl&#8217;s Net::LDAP to manage &hellip; <a href=\"https:\/\/blogs.kent.ac.uk\/unseenit\/ldap_local_error\/\">Read&nbsp;more<\/a><\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[152,706],"_links":{"self":[{"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/posts\/181"}],"collection":[{"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":1,"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":182,"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/posts\/181\/revisions\/182"}],"wp:attachment":[{"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.kent.ac.uk\/unseenit\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}