Return-Path: Delivered-To: apmail-httpd-users-archive@httpd.apache.org Received: (qmail 68135 invoked by uid 500); 25 Apr 2002 22:37:25 -0000 Mailing-List: contact users-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: users@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list users@httpd.apache.org Received: (qmail 68116 invoked from network); 25 Apr 2002 22:37:25 -0000 Received: from mr0.sj.mailhost.seagate.com (204.160.183.25) by daedalus.apache.org with SMTP; 25 Apr 2002 22:37:25 -0000 Received: from mh0.sj.mailhost.seagate.com (mh0.sj.mailhost.seagate.com [10.26.8.221]) by mr0.sj.mailhost.seagate.com (8.12.2/8.12.0) with ESMTP id g3PMbVfD021306 for ; Thu, 25 Apr 2002 22:37:31 GMT Received: from sv-gw1.notes.seagate.com (sv-gw1.stsj.seagate.com [10.26.8.33]) by mh0.sj.mailhost.seagate.com (8.12.2/8.12.0) with ESMTP id g3PMbVDA017951 for ; Thu, 25 Apr 2002 22:37:31 GMT Subject: Re: mod_Auth_ldap and Apache 2.0.35 To: users@httpd.apache.org X-Mailer: Lotus Notes Release 5.0.8 June 18, 2001 Message-ID: From: Saqib.N.Ali@seagate.com Date: Thu, 25 Apr 2002 15:37:29 -0700 X-MIMETrack: Serialize by Router on SV-GW1/Seagate Internet(Release 5.0.8 |June 18, 2001) at 04/25/2002 03:37:31 PM MIME-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880" Content-Disposition: inline X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880 Content-type: text/plain; charset=us-ascii Hi Eduardo, I am still getting errors: [root@saqibali ldap-cache]# /usr/local/apache2/bin/apxs -i -a -c util_ldap.c util_ldap_cache.c util_ldap_cache_mgr.c /usr/local/apache2/build/libtool --silent --mode=compile gcc -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -c -o util_ldap.lo util_ldap.c && touch util_ldap.slo /usr/local/apache2/build/libtool --silent --mode=compile gcc -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE -g -O2 -pthread -I/usr/local/apache2/include -c -o util_ldap_cache.lo util_ldap_cache.c && touch util_ldap_cache.slo In file included from /usr/local/apache2/include/apr_pools.h:123, from /usr/local/apache2/include/apr_thread_mutex.h:59, from /usr/local/apache2/include/util_ldap.h:64, from util_ldap_cache.c:64: /usr/local/apache2/include/apr_allocator.h:162: parse error before `apr_thread_mutex_t' /usr/local/apache2/include/apr_allocator.h:168: parse error before `*' /usr/local/apache2/include/apr_allocator.h:169: warning: data definition has no type or storage class util_ldap_cache.c: In function `util_ldap_cache_init': util_ldap_cache.c:304: warning: passing arg 1 of `apr_shm_baseaddr_get' from incompatible pointer type apxs:Error: Command failed with rc=65536 util_ldap.c compiles but to util_ldap_cache or util_ldap_cache_mgr Any ideas? Thanks Saqib Ali ======================= "Do you believe in intuition?" "No, but I have a strange feeling that someday I will." http://davtest.seagate.com/b2 -> my daily BLOG Eduardo Garcia Lopez To: users@httpd.apache.org Subject: Re: mod_Auth_ldap and Apache 2.0.35 04/25/2002 02:25 PM Please respond to users Sure! You only need this three files (util_ldap.c is not changed). Tell me how it was... Saqib.N.Ali@seagate.com wrote: >Hi Eduardo, > >Is it possible for you to send the modified files as attachments? My mail >reader is messing up the display, and it very to figure out the code. >Thanks. > >In Peace >Saqib Ali >======================= > > > >--------------------------------------------------------------------- >The official User-To-User support forum of the Apache HTTP Server Project. >See for more info. >To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org >For additional commands, e-mail: users-help@httpd.apache.org > > (See attached file: util_ldap_cache.h) (See attached file: util_ldap_cache.c) (See attached file: util_ldap_cache_mgr.c) --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org --0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880 Content-type: application/octet-stream; name="util_ldap_cache.h" Content-Disposition: attachment; filename="util_ldap_cache.h" Content-transfer-encoding: base64 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEu MQogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5k YXRpb24uICBBbGwgcmlnaHRzCiAqIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQg dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZp Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zCiAqIGFyZSBtZXQ6CiAqCiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICoKICogMi4gUmVkaXN0 cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln aHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyIGluCiAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKICogICAgZGlzdHJpYnV0aW9uLgogKgogKiAzLiBUaGUg ZW5kLXVzZXIgZG9jdW1lbnRhdGlvbiBpbmNsdWRlZCB3aXRoIHRoZSByZWRpc3RyaWJ1dGlvbiwK ICogICAgaWYgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnbWVudDoK ICogICAgICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhl CiAqICAgICAgICBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUu b3JnLykuIgogKiAgICBBbHRlcm5hdGVseSwgdGhpcyBhY2tub3dsZWRnbWVudCBtYXkgYXBwZWFy IGluIHRoZSBzb2Z0d2FyZSBpdHNlbGYsCiAqICAgIGlmIGFuZCB3aGVyZXZlciBzdWNoIHRoaXJk LXBhcnR5IGFja25vd2xlZGdtZW50cyBub3JtYWxseSBhcHBlYXIuCiAqCiAqIDQuIFRoZSBuYW1l cyAiQXBhY2hlIiBhbmQgIkFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIiBtdXN0CiAqICAgIG5v dCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp cwogKiAgICBzb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdy aXR0ZW4KICogICAgcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcu CiAqCiAqIDUuIFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIG1heSBub3QgYmUg Y2FsbGVkICJBcGFjaGUiLAogKiAgICBub3IgbWF5ICJBcGFjaGUiIGFwcGVhciBpbiB0aGVpciBu YW1lLCB3aXRob3V0IHByaW9yIHdyaXR0ZW4KICogICAgcGVybWlzc2lvbiBvZiB0aGUgQXBhY2hl IFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBB UyBJUycnIEFORCBBTlkgRVhQUkVTU0VEIE9SIElNUExJRUQKICogV0FSUkFOVElFUywgSU5DTFVE SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKICogT0YgTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKICog RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09GVFdBUkUgRk9VTkRB VElPTiBPUgogKiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E SVJFQ1QsIElOQ0lERU5UQUwsCiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRgogKiBVU0UsIERBVEEsIE9S IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECiAq IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg TElBQklMSVRZLAogKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogKgogKiBUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250 cmlidXRpb25zIG1hZGUgYnkgbWFueQogKiBpbmRpdmlkdWFscyBvbiBiZWhhbGYgb2YgdGhlIEFw YWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgRm9yIG1vcmUKICogaW5mb3JtYXRpb24gb24gdGhl IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBwbGVhc2Ugc2VlCiAqIDxodHRwOi8vd3d3LmFw YWNoZS5vcmcvPi4KICovCgoKI2lmbmRlZiBBUFVfTERBUF9DQUNIRV9ICiNkZWZpbmUgQVBVX0xE QVBfQ0FDSEVfSAoKLyoKICogVGhpcyBzd2l0Y2hlcyBMREFQIHN1cHBvcnQgb24gb3Igb2ZmLgog Ki8KCi8qIHRoaXMgd2hvbGUgdGhpbmcgZGlzYXBwZWFycyBpZiBMREFQIGlzIG5vdCBlbmFibGVk ICovCiNpZmRlZiBBUFVfSEFTX0xEQVAKCgovKgogKiBMREFQIENhY2hlIE1hbmFnZXIKICovCgoj aW5jbHVkZSA8YXByX3NobS5oPgojaW5jbHVkZSA8YXByX3JtbS5oPiAvKiBFREQgKi8KCnR5cGVk ZWYgc3RydWN0IHV0aWxfY2FjaGVfbm9kZV90IHsKICAgIHZvaWQgKnBheWxvYWQ7CQkvKiBQb2lu dGVyIHRvIHRoZSBwYXlsb2FkICovCiAgICB0aW1lX3QgYWRkX3RpbWU7CQkvKiBUaW1lIG5vZGUg d2FzIGFkZGVkIHRvIGNhY2hlICovCiAgICBzdHJ1Y3QgdXRpbF9jYWNoZV9ub2RlX3QgKm5leHQ7 Cn0gdXRpbF9jYWNoZV9ub2RlX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1dGlsX2FsZF9jYWNoZV90IHsK ICAgIHVuc2lnbmVkIGxvbmcgc2l6ZTsJCS8qIFNpemUgb2YgY2FjaGUgYXJyYXkgKi8KICAgIHVu c2lnbmVkIGxvbmcgbWF4ZW50cmllczsJLyogTWF4aW11bSBudW1iZXIgb2YgY2FjaGUgZW50cmll cyAqLwogICAgdW5zaWduZWQgbG9uZyBudW1lbnRyaWVzOwkvKiBDdXJyZW50IG51bWJlciBvZiBj YWNoZSBlbnRyaWVzICovCiAgICB1bnNpZ25lZCBsb25nIGZ1bGxtYXJrOwkvKiBVc2VkIHRvIGtl ZXAgdHJhY2sgb2Ygd2hlbiBjYWNoZSBiZWNvbWVzIDMvNCBmdWxsICovCiAgICB0aW1lX3QgbWFy a3RpbWU7CQkvKiBUaW1lIHRoYXQgdGhlIGNhY2hlIGJlY2FtZSAzLzQgZnVsbCAqLwogICAgdW5z aWduZWQgbG9uZyAoKmhhc2gpKHZvaWQgKik7ICAvKiBGdW5jIHRvIGhhc2ggdGhlIHBheWxvYWQg Ki8KICAgIGludCAoKmNvbXBhcmUpKHZvaWQgKiwgdm9pZCAqKTsgLyogRnVuYyB0byBjb21wYXJl IHR3byBwYXlsb2FkcyAqLwogICAgdm9pZCAqICgqY29weSkodm9pZCAqKTsJLyogRnVuYyB0byBh bGxvYyBtZW0gYW5kIGNvcHkgcGF5bG9hZCB0byBuZXcgbWVtICovCiAgICB2b2lkICgqZnJlZSko dm9pZCAqKTsJCS8qIEZ1bmMgdG8gZnJlZSBtZW0gdXNlZCBieSB0aGUgcGF5bG9hZCAqLwogICAg dXRpbF9jYWNoZV9ub2RlX3QgKipub2RlczsKCiAgICB1bnNpZ25lZCBsb25nIG51bXB1cmdlczsJ LyogTm8uIG9mIHRpbWVzIHRoZSBjYWNoZSBoYXMgYmVlbiBwdXJnZWQgKi8KICAgIGRvdWJsZSBh dmdfcHVyZ2V0aW1lOwkJLyogQXZlcmFnZSB0aW1lIHRvIHB1cmdlIHRoZSBjYWNoZSAqLwogICAg dGltZV90IGxhc3RfcHVyZ2U7CQkvKiBUaW1lIG9mIHRoZSBsYXN0IHB1cmdlICovCiAgICB1bnNp Z25lZCBsb25nIG5wdXJnZWQ7CS8qIE51bWJlciBvZiBlbGVtZW50cyBwdXJnZWQgaW4gbGFzdCBw dXJnZS4gVGhpcyBpcyBub3QKCQkJCSAgIG9idmlvdXM6IGl0IHdvbid0IGJlIDMvNCB0aGUgc2l6 ZSBvZiB0aGUgY2FjaGUgaWYgCgkJCQkgICB0aGVyZSB3ZXJlIGEgbG90IG9mIGV4cGlyZWQgZW50 cmllcy4gKi8KCiAgICB1bnNpZ25lZCBsb25nIGZldGNoZXM7CS8qIE51bWJlciBvZiBmZXRjaGVz ICovCiAgICB1bnNpZ25lZCBsb25nIGhpdHM7CQkvKiBOdW1iZXIgb2YgY2FjaGUgaGl0cyAqLwog ICAgdW5zaWduZWQgbG9uZyBpbnNlcnRzOwkvKiBOdW1iZXIgb2YgaW5zZXJ0cyAqLwogICAgdW5z aWduZWQgbG9uZyByZW1vdmVzOwkvKiBOdW1iZXIgb2YgcmVtb3ZlcyAqLwp9IHV0aWxfYWxkX2Nh Y2hlX3Q7CgojaWYgQVBSX0hBU19TSEFSRURfTUVNT1JZCmFwcl9zaG1fdCAqdXRpbF9sZGFwX3No bTsKYXByX3JtbV90ICp1dGlsX2xkYXBfcm1tOwojZW5kaWYKdXRpbF9hbGRfY2FjaGVfdCAqdXRp bF9sZGFwX2NhY2hlOwphcHJfdGhyZWFkX3J3bG9ja190ICp1dGlsX2xkYXBfY2FjaGVfbG9jazsK CiNpZm5kZWYgV0lOMzIKI2RlZmluZSBBTERfTU1fRklMRV9NT0RFICggU19JUlVTUnxTX0lXVVNS ICkKI2Vsc2UKI2RlZmluZSBBTERfTU1fRklMRV9NT0RFICggX1NfSVJFQUR8X1NfSVdSSVRFICkK I2VuZGlmCgoKLyoKICogTERBUCBDYWNoZQogKi8KCi8qCiAqIE1haW50YWluIGEgY2FjaGUgb2Yg TERBUCBVUkxzIHRoYXQgdGhlIHNlcnZlciBoYW5kbGVzLiBFYWNoIG5vZGUgaW4KICogdGhlIGNh Y2hlIGNvbnRhaW5zIHRoZSBzZWFyY2ggY2FjaGUgZm9yIHRoYXQgVVJMLCBhbmQgYSBjb21wYXJl IGNhY2hlCiAqIGZvciB0aGUgVVJMLiBUaGUgY29tcGFyZSBjYXNoIGlzIHBvcHVsYXRlZCB3aGVu IGRvaW5nIHJlcXVpcmUgZ3JvdXAKICogY29tcGFyZXMuCiAqLwp0eXBlZGVmIHN0cnVjdCB1dGls X3VybF9ub2RlX3QgewogICAgY29uc3QgY2hhciAqdXJsOwogICAgdXRpbF9hbGRfY2FjaGVfdCAq c2VhcmNoX2NhY2hlOwogICAgdXRpbF9hbGRfY2FjaGVfdCAqY29tcGFyZV9jYWNoZTsKICAgIHV0 aWxfYWxkX2NhY2hlX3QgKmRuX2NvbXBhcmVfY2FjaGU7Cn0gdXRpbF91cmxfbm9kZV90OwoKLyoK ICogV2UgY2FjaGUgZXZlcnkgc3VjY2Vzc2Z1bCBzZWFyY2ggYW5kIGJpbmQgb3BlcmF0aW9uLCB1 c2luZyB0aGUgdXNlcm5hbWUgCiAqIGFzIHRoZSBrZXkuIEVhY2ggbm9kZSBpbiB0aGUgY2FjaGUg Y29udGFpbnMgdGhlIHJldHVybmVkIEROLCBwbHVzIHRoZSAKICogcGFzc3dvcmQgdXNlZCB0byBi aW5kLgogKi8KdHlwZWRlZiBzdHJ1Y3QgdXRpbF9zZWFyY2hfbm9kZV90IHsKICAgIGNvbnN0IGNo YXIgKnVzZXJuYW1lOwkJLyogQ2FjaGUga2V5ICovCiAgICBjb25zdCBjaGFyICpkbjsJCQkvKiBE TiByZXR1cm5lZCBmcm9tIHNlYXJjaCAqLwogICAgY29uc3QgY2hhciAqYmluZHB3OwkJCS8qIFRo ZSBtb3N0IHJlY2VudGx5IHVzZWQgYmluZCBwYXNzd29yZDsgCgkJCQkJICAgTlVMTCBpZiB0aGUg YmluZCBmYWlsZWQgKi8KICAgIGFwcl90aW1lX3QgbGFzdGJpbmQ7CQkvKiBUaW1lIG9mIGxhc3Qg c3VjY2Vzc2Z1bCBiaW5kICovCiAgICBjb25zdCBjaGFyICoqdmFsczsJCQkvKiBWYWx1ZXMgb2Yg cXVlcmllZCBhdHRyaWJ1dGVzICovCn0gdXRpbF9zZWFyY2hfbm9kZV90OwoKLyoKICogV2UgY2Fj aGUgZXZlcnkgc3VjY2Vzc2Z1bCBjb21wYXJlIG9wZXJhdGlvbiwgdXNpbmcgdGhlIEROLCBhdHRy aWIsIGFuZAogKiB2YWx1ZSBhcyB0aGUga2V5LiAKICovCnR5cGVkZWYgc3RydWN0IHV0aWxfY29t cGFyZV9ub2RlX3QgewogICAgY29uc3QgY2hhciAqZG47CQkJLyogRE4sIGF0dHJpYiBhbmQgdmFs dWUgY29tYmluZSB0byBiZSB0aGUga2V5ICovCiAgICBjb25zdCBjaGFyICphdHRyaWI7CQkJCiAg ICBjb25zdCBjaGFyICp2YWx1ZTsKICAgIGFwcl90aW1lX3QgbGFzdGNvbXBhcmU7CiAgICBpbnQg cmVzdWx0Owp9IHV0aWxfY29tcGFyZV9ub2RlX3Q7CgovKgogKiBXZSBjYWNoZSBldmVyeSBzdWNj ZXNzZnVsIGNvbXBhcmUgZG4gb3BlcmF0aW9uLCB1c2luZyB0aGUgZG4gaW4gdGhlIHJlcXVpcmUK ICogc3RhdGVtZW50IGFuZCB0aGUgZG4gZmV0Y2hlZCBiYXNlZCBvbiB0aGUgY2xpZW50LXByb3Zp ZGVkIHVzZXJuYW1lLgogKi8KdHlwZWRlZiBzdHJ1Y3QgdXRpbF9kbl9jb21wYXJlX25vZGVfdCB7 CiAgICBjb25zdCBjaGFyICpyZXFkbjsJCS8qIFRoZSBETiBpbiB0aGUgcmVxdWlyZSBkbiBzdGF0 ZW1lbnQgKi8KICAgIGNvbnN0IGNoYXIgKmRuOwkJCS8qIFRoZSBETiBmb3VuZCBpbiB0aGUgc2Vh cmNoICovCn0gdXRpbF9kbl9jb21wYXJlX25vZGVfdDsKCgovKgogKiBGdW5jdGlvbiBwcm90b3R5 cGVzIGZvciBMREFQIGNhY2hlCiAqLwoKLyogdXRpbF9sZGFwX2NhY2hlLmMgKi8KdW5zaWduZWQg bG9uZyB1dGlsX2xkYXBfdXJsX25vZGVfaGFzaCh2b2lkICpuKTsKaW50IHV0aWxfbGRhcF91cmxf bm9kZV9jb21wYXJlKHZvaWQgKmEsIHZvaWQgKmIpOwp2b2lkICp1dGlsX2xkYXBfdXJsX25vZGVf Y29weSh2b2lkICpjKTsKdm9pZCB1dGlsX2xkYXBfdXJsX25vZGVfZnJlZSh2b2lkICpuKTsKdW5z aWduZWQgbG9uZyB1dGlsX2xkYXBfc2VhcmNoX25vZGVfaGFzaCh2b2lkICpuKTsKaW50IHV0aWxf bGRhcF9zZWFyY2hfbm9kZV9jb21wYXJlKHZvaWQgKmEsIHZvaWQgKmIpOwp2b2lkICp1dGlsX2xk YXBfc2VhcmNoX25vZGVfY29weSh2b2lkICpjKTsKdm9pZCB1dGlsX2xkYXBfc2VhcmNoX25vZGVf ZnJlZSh2b2lkICpuKTsKdW5zaWduZWQgbG9uZyB1dGlsX2xkYXBfY29tcGFyZV9ub2RlX2hhc2go dm9pZCAqbik7CmludCB1dGlsX2xkYXBfY29tcGFyZV9ub2RlX2NvbXBhcmUodm9pZCAqYSwgdm9p ZCAqYik7CnZvaWQgKnV0aWxfbGRhcF9jb21wYXJlX25vZGVfY29weSh2b2lkICpjKTsKdm9pZCB1 dGlsX2xkYXBfY29tcGFyZV9ub2RlX2ZyZWUodm9pZCAqbik7CnVuc2lnbmVkIGxvbmcgdXRpbF9s ZGFwX2RuX2NvbXBhcmVfbm9kZV9oYXNoKHZvaWQgKm4pOwppbnQgdXRpbF9sZGFwX2RuX2NvbXBh cmVfbm9kZV9jb21wYXJlKHZvaWQgKmEsIHZvaWQgKmIpOwp2b2lkICp1dGlsX2xkYXBfZG5fY29t cGFyZV9ub2RlX2NvcHkodm9pZCAqYyk7CnZvaWQgdXRpbF9sZGFwX2RuX2NvbXBhcmVfbm9kZV9m cmVlKHZvaWQgKm4pOwoKCi8qIHV0aWxfbGRhcF9jYWNoZV9tZ3IuYyAqLwoKdm9pZCB1dGlsX2Fs ZF9mcmVlKGNvbnN0IHZvaWQgKnB0cik7CnZvaWQgKnV0aWxfYWxkX2FsbG9jKHVuc2lnbmVkIGxv bmcgc2l6ZSk7CmNvbnN0IGNoYXIgKnV0aWxfYWxkX3N0cmR1cChjb25zdCBjaGFyICpzKTsKdW5z aWduZWQgbG9uZyB1dGlsX2FsZF9oYXNoX3N0cmluZyhpbnQgbnN0ciwgLi4uKTsKdm9pZCB1dGls X2FsZF9jYWNoZV9wdXJnZSh1dGlsX2FsZF9jYWNoZV90ICpjYWNoZSk7CnV0aWxfdXJsX25vZGVf dCAqdXRpbF9hbGRfY3JlYXRlX2NhY2hlcyh1dGlsX2xkYXBfc3RhdGVfdCAqcywgY29uc3QgY2hh ciAqdXJsKTsKdXRpbF9hbGRfY2FjaGVfdCAqdXRpbF9hbGRfY3JlYXRlX2NhY2hlKHVuc2lnbmVk IGxvbmcgbWF4ZW50cmllcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nICgqaGFzaGZ1bmMpKHZvaWQgKiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCAoKmNvbXBhcmVmdW5jKSh2b2lkICosIHZvaWQgKiksCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAqICgqY29weWZ1bmMpKHZvaWQgKiksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdm9pZCAoKmZyZWVmdW5jKSh2b2lkICopKTsKdm9pZCB1dGlsX2Fs ZF9kZXN0cm95X2NhY2hlKHV0aWxfYWxkX2NhY2hlX3QgKmNhY2hlKTsKdm9pZCAqdXRpbF9hbGRf Y2FjaGVfZmV0Y2godXRpbF9hbGRfY2FjaGVfdCAqY2FjaGUsIHZvaWQgKnBheWxvYWQpOwp2b2lk IHV0aWxfYWxkX2NhY2hlX2luc2VydCh1dGlsX2FsZF9jYWNoZV90ICpjYWNoZSwgdm9pZCAqcGF5 bG9hZCk7CnZvaWQgdXRpbF9hbGRfY2FjaGVfcmVtb3ZlKHV0aWxfYWxkX2NhY2hlX3QgKmNhY2hl LCB2b2lkICpwYXlsb2FkKTsKY2hhciAqdXRpbF9hbGRfY2FjaGVfZGlzcGxheV9zdGF0cyhhcHJf cG9vbF90ICpwLCB1dGlsX2FsZF9jYWNoZV90ICpjYWNoZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hhciAqbmFtZSk7CgojZW5kaWYgLyogQVBVX0hBU19MREFQICovCiNlbmRp ZiAvKiBBUFVfTERBUF9DQUNIRV9IICovCg== --0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880 Content-type: application/octet-stream; name="util_ldap_cache.c" Content-Disposition: attachment; filename="util_ldap_cache.c" Content-transfer-encoding: base64 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEu MQogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5k YXRpb24uICBBbGwgcmlnaHRzCiAqIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQg dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZp Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zCiAqIGFyZSBtZXQ6CiAqCiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICoKICogMi4gUmVkaXN0 cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln aHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyIGluCiAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKICogICAgZGlzdHJpYnV0aW9uLgogKgogKiAzLiBUaGUg ZW5kLXVzZXIgZG9jdW1lbnRhdGlvbiBpbmNsdWRlZCB3aXRoIHRoZSByZWRpc3RyaWJ1dGlvbiwK ICogICAgaWYgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnbWVudDoK ICogICAgICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhl CiAqICAgICAgICBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUu b3JnLykuIgogKiAgICBBbHRlcm5hdGVseSwgdGhpcyBhY2tub3dsZWRnbWVudCBtYXkgYXBwZWFy IGluIHRoZSBzb2Z0d2FyZSBpdHNlbGYsCiAqICAgIGlmIGFuZCB3aGVyZXZlciBzdWNoIHRoaXJk LXBhcnR5IGFja25vd2xlZGdtZW50cyBub3JtYWxseSBhcHBlYXIuCiAqCiAqIDQuIFRoZSBuYW1l cyAiQXBhY2hlIiBhbmQgIkFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIiBtdXN0CiAqICAgIG5v dCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp cwogKiAgICBzb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdy aXR0ZW4KICogICAgcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcu CiAqCiAqIDUuIFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIG1heSBub3QgYmUg Y2FsbGVkICJBcGFjaGUiLAogKiAgICBub3IgbWF5ICJBcGFjaGUiIGFwcGVhciBpbiB0aGVpciBu YW1lLCB3aXRob3V0IHByaW9yIHdyaXR0ZW4KICogICAgcGVybWlzc2lvbiBvZiB0aGUgQXBhY2hl IFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBB UyBJUycnIEFORCBBTlkgRVhQUkVTU0VEIE9SIElNUExJRUQKICogV0FSUkFOVElFUywgSU5DTFVE SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKICogT0YgTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKICog RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09GVFdBUkUgRk9VTkRB VElPTiBPUgogKiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E SVJFQ1QsIElOQ0lERU5UQUwsCiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRgogKiBVU0UsIERBVEEsIE9S IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECiAq IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg TElBQklMSVRZLAogKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogKgogKiBUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250 cmlidXRpb25zIG1hZGUgYnkgbWFueQogKiBpbmRpdmlkdWFscyBvbiBiZWhhbGYgb2YgdGhlIEFw YWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgRm9yIG1vcmUKICogaW5mb3JtYXRpb24gb24gdGhl IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBwbGVhc2Ugc2VlCiAqIDxodHRwOi8vd3d3LmFw YWNoZS5vcmcvPi4KICovCgovKgogKiB1dGlsX2xkYXBfY2FjaGUuYzogTERBUCBjYWNoZSB0aGlu Z3MKICogCiAqIE9yaWdpbmFsIGNvZGUgZnJvbSBhdXRoX2xkYXAgbW9kdWxlIGZvciBBcGFjaGUg djEuMzoKICogQ29weXJpZ2h0IDE5OTgsIDE5OTkgRW5icmlkZ2UgUGlwZWxpbmVzIEluYy4gCiAq IENvcHlyaWdodCAxOTk5LTIwMDEgRGF2ZSBDYXJyaWdhbgogKi8KCiNpbmNsdWRlIDxhcHJfbGRh cC5oPgojaW5jbHVkZSAidXRpbF9sZGFwLmgiCiNpbmNsdWRlICJ1dGlsX2xkYXBfY2FjaGUuaCIK CiNpZmRlZiBBUFVfSEFTX0xEQVAKCgoKCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKdW5zaWduZWQgbG9uZyB1 dGlsX2xkYXBfdXJsX25vZGVfaGFzaCh2b2lkICpuKQp7CiAgICB1dGlsX3VybF9ub2RlX3QgKm5v ZGUgPSAodXRpbF91cmxfbm9kZV90ICopbjsKICAgIHJldHVybiB1dGlsX2FsZF9oYXNoX3N0cmlu ZygxLCBub2RlLT51cmwpOwp9CgppbnQgdXRpbF9sZGFwX3VybF9ub2RlX2NvbXBhcmUodm9pZCAq YSwgdm9pZCAqYikKewogICAgdXRpbF91cmxfbm9kZV90ICpuYSA9ICh1dGlsX3VybF9ub2RlX3Qg KilhOwogICAgdXRpbF91cmxfbm9kZV90ICpuYiA9ICh1dGlsX3VybF9ub2RlX3QgKiliOwoKICAg IHJldHVybihzdHJjbXAobmEtPnVybCwgbmItPnVybCkgPT0gMCk7Cn0KCnZvaWQgKnV0aWxfbGRh cF91cmxfbm9kZV9jb3B5KHZvaWQgKmMpCnsKICAgIHV0aWxfdXJsX25vZGVfdCAqbiA9ICh1dGls X3VybF9ub2RlX3QgKiljOwogICAgdXRpbF91cmxfbm9kZV90ICpub2RlID0gKHV0aWxfdXJsX25v ZGVfdCAqKXV0aWxfYWxkX2FsbG9jKHNpemVvZih1dGlsX3VybF9ub2RlX3QpKTsKCiAgICBpZiAo bm9kZSkgewogICAgICAgIGlmICghKG5vZGUtPnVybCA9IHV0aWxfYWxkX3N0cmR1cChuLT51cmwp KSkgewogICAgICAgICAgICB1dGlsX2FsZF9mcmVlKG5vZGUtPnVybCk7CiAgICAgICAgICAgIHJl dHVybiBOVUxMOwogICAgICAgIH0KICAgICAgICBub2RlLT5zZWFyY2hfY2FjaGUgPSBuLT5zZWFy Y2hfY2FjaGU7CiAgICAgICAgbm9kZS0+Y29tcGFyZV9jYWNoZSA9IG4tPmNvbXBhcmVfY2FjaGU7 CiAgICAgICAgbm9kZS0+ZG5fY29tcGFyZV9jYWNoZSA9IG4tPmRuX2NvbXBhcmVfY2FjaGU7CiAg ICAgICAgcmV0dXJuIG5vZGU7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gTlVMTDsK ICAgIH0KfQoKdm9pZCB1dGlsX2xkYXBfdXJsX25vZGVfZnJlZSh2b2lkICpuKQp7CiAgICB1dGls X3VybF9ub2RlX3QgKm5vZGUgPSAodXRpbF91cmxfbm9kZV90ICopbjsKCiAgICB1dGlsX2FsZF9m cmVlKG5vZGUtPnVybCk7CiAgICB1dGlsX2FsZF9kZXN0cm95X2NhY2hlKG5vZGUtPnNlYXJjaF9j YWNoZSk7CiAgICB1dGlsX2FsZF9kZXN0cm95X2NhY2hlKG5vZGUtPmNvbXBhcmVfY2FjaGUpOwog ICAgdXRpbF9hbGRfZGVzdHJveV9jYWNoZShub2RlLT5kbl9jb21wYXJlX2NhY2hlKTsKICAgIHV0 aWxfYWxkX2ZyZWUobm9kZSk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogQ2FjaGUgZnVuY3Rpb25z IGZvciBzZWFyY2ggbm9kZXMgKi8KdW5zaWduZWQgbG9uZyB1dGlsX2xkYXBfc2VhcmNoX25vZGVf aGFzaCh2b2lkICpuKQp7CiAgICB1dGlsX3NlYXJjaF9ub2RlX3QgKm5vZGUgPSAodXRpbF9zZWFy Y2hfbm9kZV90ICopbjsKICAgIHJldHVybiB1dGlsX2FsZF9oYXNoX3N0cmluZygxLCAoKHV0aWxf c2VhcmNoX25vZGVfdCAqKShub2RlKSktPnVzZXJuYW1lKTsKfQoKaW50IHV0aWxfbGRhcF9zZWFy Y2hfbm9kZV9jb21wYXJlKHZvaWQgKmEsIHZvaWQgKmIpCnsKICAgIHJldHVybihzdHJjbXAoKCh1 dGlsX3NlYXJjaF9ub2RlX3QgKilhKS0+dXNlcm5hbWUsCgkJICAoKHV0aWxfc2VhcmNoX25vZGVf dCAqKWIpLT51c2VybmFtZSkgPT0gMCk7Cn0KCnZvaWQgKnV0aWxfbGRhcF9zZWFyY2hfbm9kZV9j b3B5KHZvaWQgKmMpCnsKICAgIHV0aWxfc2VhcmNoX25vZGVfdCAqbm9kZSA9ICh1dGlsX3NlYXJj aF9ub2RlX3QgKiljOwogICAgdXRpbF9zZWFyY2hfbm9kZV90ICpuZXdub2RlID0gdXRpbF9hbGRf YWxsb2Moc2l6ZW9mKHV0aWxfc2VhcmNoX25vZGVfdCkpOwoKICAgIC8qIHNhZmV0eSBjaGVjayAq LwogICAgaWYgKG5ld25vZGUpIHsKCiAgICAgICAgLyogY29weSB2YWxzICovCiAgICAgICAgaWYg KG5vZGUtPnZhbHMpIHsKICAgICAgICAgICAgaW50IGsgPSAwOwogICAgICAgICAgICBpbnQgaSA9 IDA7CiAgICAgICAgICAgIHdoaWxlIChub2RlLT52YWxzW2srK10pOwogICAgICAgICAgICBpZiAo IShuZXdub2RlLT52YWxzID0gdXRpbF9hbGRfYWxsb2Moc2l6ZW9mKGNoYXIgKikgKiAoaysxKSkp KSB7CiAgICAgICAgICAgICAgICB1dGlsX2xkYXBfc2VhcmNoX25vZGVfZnJlZShuZXdub2RlKTsK ICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdo aWxlIChub2RlLT52YWxzW2ldKSB7CiAgICAgICAgICAgICAgICBpZiAoIShuZXdub2RlLT52YWxz W2ldID0gdXRpbF9hbGRfc3RyZHVwKG5vZGUtPnZhbHNbaV0pKSkgewogICAgICAgICAgICAgICAg ICAgIHV0aWxfbGRhcF9zZWFyY2hfbm9kZV9mcmVlKG5ld25vZGUpOwogICAgICAgICAgICAgICAg ICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaSsrOwog ICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBuZXdub2Rl LT52YWxzID0gTlVMTDsKICAgICAgICB9CiAgICAgICAgaWYgKCEobmV3bm9kZS0+dXNlcm5hbWUg PSB1dGlsX2FsZF9zdHJkdXAobm9kZS0+dXNlcm5hbWUpKSB8fAogICAgICAgICAgICAhKG5ld25v ZGUtPmRuID0gdXRpbF9hbGRfc3RyZHVwKG5vZGUtPmRuKSkgfHwKICAgICAgICAgICAgIShuZXdu b2RlLT5iaW5kcHcgPSB1dGlsX2FsZF9zdHJkdXAobm9kZS0+YmluZHB3KSkgKSB7CiAgICAgICAg ICAgIHV0aWxfbGRhcF9zZWFyY2hfbm9kZV9mcmVlKG5ld25vZGUpOwogICAgICAgICAgICByZXR1 cm4gTlVMTDsKICAgICAgICB9CiAgICAgICAgbmV3bm9kZS0+bGFzdGJpbmQgPSBub2RlLT5sYXN0 YmluZDsKCiAgICB9CiAgICByZXR1cm4gKHZvaWQgKiluZXdub2RlOwp9Cgp2b2lkIHV0aWxfbGRh cF9zZWFyY2hfbm9kZV9mcmVlKHZvaWQgKm4pCnsKICAgIGludCBpID0gMDsKICAgIHV0aWxfc2Vh cmNoX25vZGVfdCAqbm9kZSA9ICh1dGlsX3NlYXJjaF9ub2RlX3QgKiluOwogICAgaWYgKG5vZGUt PnZhbHMpIHsKICAgICAgICB3aGlsZSAobm9kZS0+dmFsc1tpXSkgewogICAgICAgICAgICB1dGls X2FsZF9mcmVlKG5vZGUtPnZhbHNbaSsrXSk7CiAgICAgICAgfQogICAgICAgIHV0aWxfYWxkX2Zy ZWUobm9kZS0+dmFscyk7CiAgICB9CiAgICB1dGlsX2FsZF9mcmVlKG5vZGUtPnVzZXJuYW1lKTsK ICAgIHV0aWxfYWxkX2ZyZWUobm9kZS0+ZG4pOwogICAgdXRpbF9hbGRfZnJlZShub2RlLT5iaW5k cHcpOwogICAgdXRpbF9hbGRfZnJlZShub2RlKTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgp1bnNpZ25l ZCBsb25nIHV0aWxfbGRhcF9jb21wYXJlX25vZGVfaGFzaCh2b2lkICpuKQp7CiAgICB1dGlsX2Nv bXBhcmVfbm9kZV90ICpub2RlID0gKHV0aWxfY29tcGFyZV9ub2RlX3QgKiluOwogICAgcmV0dXJu IHV0aWxfYWxkX2hhc2hfc3RyaW5nKDMsIG5vZGUtPmRuLCBub2RlLT5hdHRyaWIsIG5vZGUtPnZh bHVlKTsKfQoKaW50IHV0aWxfbGRhcF9jb21wYXJlX25vZGVfY29tcGFyZSh2b2lkICphLCB2b2lk ICpiKQp7CiAgICB1dGlsX2NvbXBhcmVfbm9kZV90ICpuYSA9ICh1dGlsX2NvbXBhcmVfbm9kZV90 ICopYTsKICAgIHV0aWxfY29tcGFyZV9ub2RlX3QgKm5iID0gKHV0aWxfY29tcGFyZV9ub2RlX3Qg KiliOwogICAgcmV0dXJuIChzdHJjbXAobmEtPmRuLCBuYi0+ZG4pID09IDAgJiYKCSAgICBzdHJj bXAobmEtPmF0dHJpYiwgbmItPmF0dHJpYikgPT0gMCAmJgoJICAgIHN0cmNtcChuYS0+dmFsdWUs IG5iLT52YWx1ZSkgPT0gMCk7Cn0KCnZvaWQgKnV0aWxfbGRhcF9jb21wYXJlX25vZGVfY29weSh2 b2lkICpjKQp7CiAgICB1dGlsX2NvbXBhcmVfbm9kZV90ICpuID0gKHV0aWxfY29tcGFyZV9ub2Rl X3QgKiljOwogICAgdXRpbF9jb21wYXJlX25vZGVfdCAqbm9kZSA9ICh1dGlsX2NvbXBhcmVfbm9k ZV90ICopdXRpbF9hbGRfYWxsb2Moc2l6ZW9mKHV0aWxfY29tcGFyZV9ub2RlX3QpKTsKCiAgICBp ZiAobm9kZSkgewogICAgICAgIGlmICghKG5vZGUtPmRuID0gdXRpbF9hbGRfc3RyZHVwKG4tPmRu KSkgfHwKICAgICAgICAgICAgIShub2RlLT5hdHRyaWIgPSB1dGlsX2FsZF9zdHJkdXAobi0+YXR0 cmliKSkgfHwKICAgICAgICAgICAgIShub2RlLT52YWx1ZSA9IHV0aWxfYWxkX3N0cmR1cChuLT52 YWx1ZSkpKSB7CiAgICAgICAgICAgIHV0aWxfbGRhcF9jb21wYXJlX25vZGVfZnJlZShub2RlKTsK ICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgfQogICAgICAgIG5vZGUtPmxhc3Rjb21w YXJlID0gbi0+bGFzdGNvbXBhcmU7CiAgICAgICAgbm9kZS0+cmVzdWx0ID0gbi0+cmVzdWx0Owog ICAgICAgIHJldHVybiBub2RlOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIE5VTEw7 CiAgICB9Cn0KCnZvaWQgdXRpbF9sZGFwX2NvbXBhcmVfbm9kZV9mcmVlKHZvaWQgKm4pCnsKICAg IHV0aWxfY29tcGFyZV9ub2RlX3QgKm5vZGUgPSAodXRpbF9jb21wYXJlX25vZGVfdCAqKW47CiAg ICB1dGlsX2FsZF9mcmVlKG5vZGUtPmRuKTsKICAgIHV0aWxfYWxkX2ZyZWUobm9kZS0+YXR0cmli KTsKICAgIHV0aWxfYWxkX2ZyZWUobm9kZS0+dmFsdWUpOwogICAgdXRpbF9hbGRfZnJlZShub2Rl KTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICovCgp1bnNpZ25lZCBsb25nIHV0aWxfbGRhcF9kbl9jb21wYXJl X25vZGVfaGFzaCh2b2lkICpuKQp7CiAgICByZXR1cm4gdXRpbF9hbGRfaGFzaF9zdHJpbmcoMSwg KCh1dGlsX2RuX2NvbXBhcmVfbm9kZV90ICopbiktPnJlcWRuKTsKfQoKaW50IHV0aWxfbGRhcF9k bl9jb21wYXJlX25vZGVfY29tcGFyZSh2b2lkICphLCB2b2lkICpiKQp7CiAgICByZXR1cm4gKHN0 cmNtcCgoKHV0aWxfZG5fY29tcGFyZV9ub2RlX3QgKilhKS0+cmVxZG4sCgkJICAgKCh1dGlsX2Ru X2NvbXBhcmVfbm9kZV90ICopYiktPnJlcWRuKSA9PSAwKTsKfQoKdm9pZCAqdXRpbF9sZGFwX2Ru X2NvbXBhcmVfbm9kZV9jb3B5KHZvaWQgKmMpCnsKICAgIHV0aWxfZG5fY29tcGFyZV9ub2RlX3Qg Km4gPSAodXRpbF9kbl9jb21wYXJlX25vZGVfdCAqKWM7CiAgICB1dGlsX2RuX2NvbXBhcmVfbm9k ZV90ICpub2RlID0gKHV0aWxfZG5fY29tcGFyZV9ub2RlX3QgKil1dGlsX2FsZF9hbGxvYyhzaXpl b2YodXRpbF9kbl9jb21wYXJlX25vZGVfdCkpOwogICAgaWYgKG5vZGUpIHsKICAgICAgICBpZiAo IShub2RlLT5yZXFkbiA9IHV0aWxfYWxkX3N0cmR1cChuLT5yZXFkbikpIHx8CiAgICAgICAgICAg ICEobm9kZS0+ZG4gPSB1dGlsX2FsZF9zdHJkdXAobi0+ZG4pKSkgewogICAgICAgICAgICB1dGls X2xkYXBfZG5fY29tcGFyZV9ub2RlX2ZyZWUobm9kZSk7CiAgICAgICAgICAgIHJldHVybiBOVUxM OwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZTsKICAgIH0KICAgIGVsc2UgewogICAgICAg IHJldHVybiBOVUxMOwogICAgfQp9Cgp2b2lkIHV0aWxfbGRhcF9kbl9jb21wYXJlX25vZGVfZnJl ZSh2b2lkICpuKQp7CiAgICB1dGlsX2RuX2NvbXBhcmVfbm9kZV90ICpub2RlID0gKHV0aWxfZG5f Y29tcGFyZV9ub2RlX3QgKiluOwogICAgdXRpbF9hbGRfZnJlZShub2RlLT5yZXFkbik7CiAgICB1 dGlsX2FsZF9mcmVlKG5vZGUtPmRuKTsKICAgIHV0aWxfYWxkX2ZyZWUobm9kZSk7Cn0KCgovKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gKi8KYXByX3N0YXR1c190IHV0aWxfbGRhcF9jYWNoZV9jaGlsZF9raWxsKHZvaWQg KmRhdGEpOwphcHJfc3RhdHVzX3QgdXRpbF9sZGFwX2NhY2hlX21vZHVsZV9raWxsKHZvaWQgKmRh dGEpOwoKYXByX3N0YXR1c190IHV0aWxfbGRhcF9jYWNoZV9tb2R1bGVfa2lsbCh2b2lkICpkYXRh KQp7CiNpZiBBUFJfSEFTX1NIQVJFRF9NRU1PUlkKICAgIGlmICh1dGlsX2xkYXBfc2htICE9IE5V TEwpIHsKICAgICAgICBhcHJfc3RhdHVzX3QgcmVzdWx0ID0gYXByX3NobV9kZXN0cm95KHV0aWxf bGRhcF9zaG0pOwogICAgICAgIHV0aWxfbGRhcF9zaG0gPSBOVUxMOwogICAgICAgIHJldHVybiBy ZXN1bHQ7CiAgICB9CiNlbmRpZgogICAgcmV0dXJuIEFQUl9TVUNDRVNTOwp9CgphcHJfc3RhdHVz X3QgdXRpbF9sZGFwX2NhY2hlX2luaXQoYXByX3Bvb2xfdCAqcG9vbCwgYXByX3NpemVfdCByZXFz aXplKQp7CiAgICBhcHJfYW55bG9ja190IHJtbV9sb2NrOwoKICAgIGFwcl9zdGF0dXNfdCByZXN1 bHQgPSBBUFJfU1VDQ0VTUzsKICAgIGFwcl9wb29sX2NsZWFudXBfcmVnaXN0ZXIocG9vbCwgTlVM TCwgdXRpbF9sZGFwX2NhY2hlX21vZHVsZV9raWxsLCBhcHJfcG9vbF9jbGVhbnVwX251bGwpOwoK I2lmIEFQUl9IQVNfU0hBUkVEX01FTU9SWQogICAgcmVzdWx0ID0gYXByX3NobV9jcmVhdGUoJnV0 aWxfbGRhcF9zaG0sIHJlcXNpemUsICIvdG1wL2xkYXBfY2FjaGUiLCBwb29sKTsKCiAgICAvKiBU aGlzIHdpbGwgY3JlYXRlIGEgcm1tICJoYW5kbGVyIiB0byBnZXQgaW50byB0aGUgc2hhcmVkIG1l bW9yeSBhcmVhICovCiAgICBhcHJfcm1tX2luaXQoJnV0aWxfbGRhcF9ybW0sICZybW1fbG9jaywg CgkJCSh2b2lkICopYXByX3NobV9iYXNlYWRkcl9nZXQoJnV0aWxfbGRhcF9zaG0pICwgcmVxc2l6 ZSwgcG9vbCk7CiNlbmRpZgogICAgdXRpbF9sZGFwX2NhY2hlID0gdXRpbF9hbGRfY3JlYXRlX2Nh Y2hlKDUwLAoJCQkJICAgICB1dGlsX2xkYXBfdXJsX25vZGVfaGFzaCwKCQkJCSAgICAgdXRpbF9s ZGFwX3VybF9ub2RlX2NvbXBhcmUsCgkJCQkgICAgIHV0aWxfbGRhcF91cmxfbm9kZV9jb3B5LAoJ CQkJICAgICB1dGlsX2xkYXBfdXJsX25vZGVfZnJlZSk7CiAgICByZXR1cm4gcmVzdWx0Owp9CgoK I2VuZGlmIC8qIEFQVV9IQVNfTERBUCAqLwo= --0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880 Content-type: application/octet-stream; name="util_ldap_cache_mgr.c" Content-Disposition: attachment; filename="util_ldap_cache_mgr.c" Content-transfer-encoding: base64 LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEu MQogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5k YXRpb24uICBBbGwgcmlnaHRzCiAqIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQg dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZp Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zCiAqIGFyZSBtZXQ6CiAqCiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICoKICogMi4gUmVkaXN0 cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln aHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyIGluCiAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKICogICAgZGlzdHJpYnV0aW9uLgogKgogKiAzLiBUaGUg ZW5kLXVzZXIgZG9jdW1lbnRhdGlvbiBpbmNsdWRlZCB3aXRoIHRoZSByZWRpc3RyaWJ1dGlvbiwK ICogICAgaWYgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnbWVudDoK ICogICAgICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhl CiAqICAgICAgICBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUu b3JnLykuIgogKiAgICBBbHRlcm5hdGVseSwgdGhpcyBhY2tub3dsZWRnbWVudCBtYXkgYXBwZWFy IGluIHRoZSBzb2Z0d2FyZSBpdHNlbGYsCiAqICAgIGlmIGFuZCB3aGVyZXZlciBzdWNoIHRoaXJk LXBhcnR5IGFja25vd2xlZGdtZW50cyBub3JtYWxseSBhcHBlYXIuCiAqCiAqIDQuIFRoZSBuYW1l cyAiQXBhY2hlIiBhbmQgIkFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIiBtdXN0CiAqICAgIG5v dCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp cwogKiAgICBzb2Z0d2FyZSB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdy aXR0ZW4KICogICAgcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcu CiAqCiAqIDUuIFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIG1heSBub3QgYmUg Y2FsbGVkICJBcGFjaGUiLAogKiAgICBub3IgbWF5ICJBcGFjaGUiIGFwcGVhciBpbiB0aGVpciBu YW1lLCB3aXRob3V0IHByaW9yIHdyaXR0ZW4KICogICAgcGVybWlzc2lvbiBvZiB0aGUgQXBhY2hl IFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBB UyBJUycnIEFORCBBTlkgRVhQUkVTU0VEIE9SIElNUExJRUQKICogV0FSUkFOVElFUywgSU5DTFVE SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKICogT0YgTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKICog RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09GVFdBUkUgRk9VTkRB VElPTiBPUgogKiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E SVJFQ1QsIElOQ0lERU5UQUwsCiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRgogKiBVU0UsIERBVEEsIE9S IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECiAq IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg TElBQklMSVRZLAogKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAqIFNVQ0ggREFNQUdFLgogKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogKgogKiBUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250 cmlidXRpb25zIG1hZGUgYnkgbWFueQogKiBpbmRpdmlkdWFscyBvbiBiZWhhbGYgb2YgdGhlIEFw YWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgRm9yIG1vcmUKICogaW5mb3JtYXRpb24gb24gdGhl IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBwbGVhc2Ugc2VlCiAqIDxodHRwOi8vd3d3LmFw YWNoZS5vcmcvPi4KICovCgovKgogKiB1dGlsX2xkYXBfY2FjaGVfbWdyLmM6IExEQVAgY2FjaGUg bWFuYWdlciB0aGluZ3MKICogCiAqIE9yaWdpbmFsIGNvZGUgZnJvbSBhdXRoX2xkYXAgbW9kdWxl IGZvciBBcGFjaGUgdjEuMzoKICogQ29weXJpZ2h0IDE5OTgsIDE5OTkgRW5icmlkZ2UgUGlwZWxp bmVzIEluYy4gCiAqIENvcHlyaWdodCAxOTk5LTIwMDEgRGF2ZSBDYXJyaWdhbgogKi8KCiNpbmNs dWRlIDxhcHJfbGRhcC5oPgojaW5jbHVkZSAidXRpbF9sZGFwLmgiCiNpbmNsdWRlICJ1dGlsX2xk YXBfY2FjaGUuaCIKI2luY2x1ZGUgPGFwcl9zdHJpbmdzLmg+CgojaWZkZWYgQVBVX0hBU19MREFQ CgovKiBvbmx5IGhlcmUgdW50aWwgc3RyZHVwIGlzIGdvbmUgKi8KI2luY2x1ZGUgPHN0cmluZy5o PgoKLyogaGVyZSB0aWxsIG1hbGxvYyBpcyBnb25lICovCiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0 YXRpYyBjb25zdCBpbnQgcHJpbWVzW10gPQp7CiAgMTEsCiAgMTksCiAgMzcsCiAgNzMsCiAgMTA5 LAogIDE2MywKICAyNTEsCiAgMzY3LAogIDU1NywKICA4MjMsCiAgMTIzNywKICAxODYxLAogIDI3 NzcsCiAgNDE3NywKICA2MjQ3LAogIDkzNzEsCiAgMTQwNTcsCiAgMjEwODksCiAgMzE2MjcsCiAg NDc0MzEsCiAgNzExNDMsCiAgMTA2NzIxLAogIDE2MDA3MywKICAyNDAxMDEsCiAgMzYwMTYzLAog IDU0MDIxNywKICA4MTAzNDMsCiAgMTIxNTQ5NywKICAxODIzMjMxLAogIDI3MzQ4NjcsCiAgNDEw MjI4MywKICA2MTUzNDA5LAogIDkyMzAxMTMsCiAgMTM4NDUxNjMsCiAgMAp9OwoKdm9pZCB1dGls X2FsZF9mcmVlKGNvbnN0IHZvaWQgKnB0cikKewojaWYgQVBSX0hBU19TSEFSRURfTUVNT1JZCiAg ICBpZiAodXRpbF9sZGFwX3NobSkgewogICAgICAgIGlmIChwdHIpCiAgICAgICAgICAgIGFwcl9y bW1fZnJlZSh1dGlsX2xkYXBfcm1tLCBhcHJfcm1tX29mZnNldF9nZXQodXRpbF9sZGFwX3JtbSwg KHZvaWQgKilwdHIpKTsKICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHB0cikKICAgICAgICAgICAg ZnJlZSgodm9pZCAqKXB0cik7CiAgICB9CiNlbHNlCiAgICBpZiAocHRyKQogICAgICAgIGZyZWUo KHZvaWQgKilwdHIpOwojZW5kaWYKfQoKdm9pZCAqdXRpbF9hbGRfYWxsb2ModW5zaWduZWQgbG9u ZyBzaXplKQp7CiAgICBpZiAoMCA9PSBzaXplKQogICAgICAgIHJldHVybiBOVUxMOwojaWYgQVBS X0hBU19TSEFSRURfTUVNT1JZCiAgICBpZiAodXRpbF9sZGFwX3NobSkgewogICAgICAgIHJldHVy biAodm9pZCAqKWFwcl9ybW1fYWRkcl9nZXQodXRpbF9sZGFwX3JtbSwgYXByX3JtbV9jYWxsb2Mo dXRpbF9sZGFwX3JtbSwgc2l6ZSkpOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKHZvaWQg KiljYWxsb2Moc2l6ZW9mKGNoYXIpLCBzaXplKTsKICAgIH0KI2Vsc2UKICAgIHJldHVybiAodm9p ZCAqKWNhbGxvYyhzaXplb2YoY2hhciksIHNpemUpOwojZW5kaWYKfQoKY29uc3QgY2hhciAqdXRp bF9hbGRfc3RyZHVwKGNvbnN0IGNoYXIgKnMpCnsKI2lmIEFQUl9IQVNfU0hBUkVEX01FTU9SWQog ICAgaWYgKHV0aWxfbGRhcF9zaG0pIHsKICAgICAgICBjaGFyICpidWYgPSAoY2hhciAqKWFwcl9y bW1fYWRkcl9nZXQodXRpbF9sZGFwX3JtbSwgYXByX3JtbV9jYWxsb2ModXRpbF9sZGFwX3JtbSwg c3RybGVuKHMpKzEpKTsKICAgICAgICBpZiAoYnVmKSB7CiAgICAgICAgICAgIHN0cmNweShidWYs IHMpOwogICAgICAgICAgICByZXR1cm4gYnVmOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAg ICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICByZXR1 cm4gc3RyZHVwKHMpOwogICAgfQojZWxzZQogICAgcmV0dXJuIHN0cmR1cChzKTsKI2VuZGlmCn0K CgovKgogKiBDb21wdXRlcyB0aGUgaGFzaCBvbiBhIHNldCBvZiBzdHJpbmdzLiBUaGUgZmlyc3Qg YXJndW1lbnQgaXMgdGhlIG51bWJlcgogKiBvZiBzdHJpbmdzIHRvIGhhc2gsIHRoZSByZXN0IG9m IHRoZSBhcmdzIGFyZSBzdHJpbmdzLiAKICogQWxnb3JpdGhtIHRha2VuIGZyb20gZ2xpYmMuCiAq Lwp1bnNpZ25lZCBsb25nIHV0aWxfYWxkX2hhc2hfc3RyaW5nKGludCBuc3RyLCAuLi4pCnsKICAg IGludCBpOwogICAgdmFfbGlzdCBhcmdzOwogICAgdW5zaWduZWQgbG9uZyBoPTAsIGc7CiAgICBj aGFyICpzdHIsICpwOwogIAogICAgdmFfc3RhcnQoYXJncywgbnN0cik7CiAgICBmb3IgKGk9MDsg aSA8IG5zdHI7ICsraSkgewogICAgICAgIHN0ciA9IHZhX2FyZyhhcmdzLCBjaGFyICopOwogICAg ICAgIGZvciAocCA9IHN0cjsgKnA7ICsrcCkgewogICAgICAgICAgICBoID0gKCBoIDw8IDQgKSAr ICpwOwogICAgICAgICAgICBpZiAoICggZyA9IGggJiAweGYwMDAwMDAwICkgKSB7CgkgICAgICAg IGggPSBoIF4gKGcgPj4gMjQpOwoJICAgICAgICBoID0gaCBeIGc7CiAgICAgICAgICAgIH0KICAg ICAgICB9CiAgICB9CiAgICB2YV9lbmQoYXJncyk7CgogICAgcmV0dXJuIGg7Cn0KCgovKgogIFB1 cmdlcyBhIGNhY2hlIHRoYXQgaGFzIGdvdHRlbiBmdWxsLiBXZSBrZWVwIHRyYWNrIG9mIHRoZSB0 aW1lIHRoYXQgd2UKICBhZGRlZCB0aGUgZW50cnkgdGhhdCBtYWRlIHRoZSBjYWNoZSAzLzQgZnVs bCwgdGhlbiBkZWxldGUgYWxsIGVudHJpZXMKICB0aGF0IHdlcmUgYWRkZWQgYmVmb3JlIHRoYXQg dGltZS4gSXQncyBwcmV0dHkgc2ltcGxpc3RpYywgYnV0IHRpbWUgdG8KICBwdXJnZSBpcyBvbmx5 IE8obiksIHdoaWNoIGlzIG1vcmUgaW1wb3J0YW50LgoqLwp2b2lkIHV0aWxfYWxkX2NhY2hlX3B1 cmdlKHV0aWxfYWxkX2NhY2hlX3QgKmNhY2hlKQp7CiAgICBpbnQgaTsKICAgIHV0aWxfY2FjaGVf bm9kZV90ICpwLCAqcTsKICAgIGFwcl90aW1lX3QgdDsKCiAgICBpZiAoIWNhY2hlKQogICAgICAg IHJldHVybjsKICAKICAgIGNhY2hlLT5sYXN0X3B1cmdlID0gYXByX3RpbWVfbm93KCk7CiAgICBj YWNoZS0+bnB1cmdlZCA9IDA7CiAgICBjYWNoZS0+bnVtcHVyZ2VzKys7CgogICAgZm9yIChpPTA7 IGkgPCBjYWNoZS0+c2l6ZTsgKytpKSB7CiAgICAgICAgcCA9IGNhY2hlLT5ub2Rlc1tpXTsKICAg ICAgICB3aGlsZSAocCAhPSBOVUxMKSB7CiAgICAgICAgICAgIGlmIChwLT5hZGRfdGltZSA8IGNh Y2hlLT5tYXJrdGltZSkgewoJICAgICAgICBxID0gcC0+bmV4dDsKCSAgICAgICAgKCpjYWNoZS0+ ZnJlZSkocC0+cGF5bG9hZCk7CgkgICAgICAgIHV0aWxfYWxkX2ZyZWUocCk7CgkgICAgICAgIGNh Y2hlLT5udW1lbnRyaWVzLS07CgkgICAgICAgIGNhY2hlLT5ucHVyZ2VkKys7CgkgICAgICAgIHAg PSBxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewoJICAgICAgICBwID0gcC0+bmV4 dDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICB0ID0gYXByX3RpbWVfbm93KCk7 CiAgICBjYWNoZS0+YXZnX3B1cmdldGltZSA9IAogICAgICAgICAoKHQgLSBjYWNoZS0+bGFzdF9w dXJnZSkgKyAoY2FjaGUtPmF2Z19wdXJnZXRpbWUgKiAoY2FjaGUtPm51bXB1cmdlcy0xKSkpIC8g CiAgICAgICAgIGNhY2hlLT5udW1wdXJnZXM7Cn0KCgovKgogKiBjcmVhdGUgY2FjaGVzCiAqLwp1 dGlsX3VybF9ub2RlX3QgKnV0aWxfYWxkX2NyZWF0ZV9jYWNoZXModXRpbF9sZGFwX3N0YXRlX3Qg KnN0LCBjb25zdCBjaGFyICp1cmwpCnsKICAgIHV0aWxfdXJsX25vZGVfdCAqY3VybCA9IE5VTEw7 CiAgICB1dGlsX2FsZF9jYWNoZV90ICpzZWFyY2hfY2FjaGU7CiAgICB1dGlsX2FsZF9jYWNoZV90 ICpjb21wYXJlX2NhY2hlOwogICAgdXRpbF9hbGRfY2FjaGVfdCAqZG5fY29tcGFyZV9jYWNoZTsK CiAgICAvKiBjcmVhdGUgdGhlIHRocmVlIGNhY2hlcyAqLwogICAgc2VhcmNoX2NhY2hlID0gdXRp bF9hbGRfY3JlYXRlX2NhY2hlKHN0LT5zZWFyY2hfY2FjaGVfc2l6ZSwKCQkJCQkgIHV0aWxfbGRh cF9zZWFyY2hfbm9kZV9oYXNoLAoJCQkJCSAgdXRpbF9sZGFwX3NlYXJjaF9ub2RlX2NvbXBhcmUs CgkJCQkJICB1dGlsX2xkYXBfc2VhcmNoX25vZGVfY29weSwKCQkJCQkgIHV0aWxfbGRhcF9zZWFy Y2hfbm9kZV9mcmVlKTsKICAgIGNvbXBhcmVfY2FjaGUgPSB1dGlsX2FsZF9jcmVhdGVfY2FjaGUo c3QtPmNvbXBhcmVfY2FjaGVfc2l6ZSwKCQkJCQkgICB1dGlsX2xkYXBfY29tcGFyZV9ub2RlX2hh c2gsCgkJCQkJICAgdXRpbF9sZGFwX2NvbXBhcmVfbm9kZV9jb21wYXJlLAoJCQkJCSAgIHV0aWxf bGRhcF9jb21wYXJlX25vZGVfY29weSwKCQkJCQkgICB1dGlsX2xkYXBfY29tcGFyZV9ub2RlX2Zy ZWUpOwogICAgZG5fY29tcGFyZV9jYWNoZSA9IHV0aWxfYWxkX2NyZWF0ZV9jYWNoZShzdC0+Y29t cGFyZV9jYWNoZV9zaXplLAoJCQkJCSAgICAgIHV0aWxfbGRhcF9kbl9jb21wYXJlX25vZGVfaGFz aCwKCQkJCQkgICAgICB1dGlsX2xkYXBfZG5fY29tcGFyZV9ub2RlX2NvbXBhcmUsCgkJCQkJICAg ICAgdXRpbF9sZGFwX2RuX2NvbXBhcmVfbm9kZV9jb3B5LAoJCQkJCSAgICAgIHV0aWxfbGRhcF9k bl9jb21wYXJlX25vZGVfZnJlZSk7CgogICAgLyogY2hlY2sgdGhhdCBhbGwgdGhlIGNhY2hlcyBp bml0aWFsaXNlZCBzdWNjZXNzZnVsbHkgKi8KICAgIGlmIChzZWFyY2hfY2FjaGUgJiYgY29tcGFy ZV9jYWNoZSAmJiBkbl9jb21wYXJlX2NhY2hlKSB7CgogICAgICAgIGN1cmwgPSAodXRpbF91cmxf bm9kZV90ICopYXByX3BjYWxsb2Moc3QtPnBvb2wsIHNpemVvZih1dGlsX3VybF9ub2RlX3QpKTsK ICAgICAgICBjdXJsLT51cmwgPSB1cmw7CiAgICAgICAgY3VybC0+c2VhcmNoX2NhY2hlID0gc2Vh cmNoX2NhY2hlOwogICAgICAgIGN1cmwtPmNvbXBhcmVfY2FjaGUgPSBjb21wYXJlX2NhY2hlOwog ICAgICAgIGN1cmwtPmRuX2NvbXBhcmVfY2FjaGUgPSBkbl9jb21wYXJlX2NhY2hlOwoKICAgICAg ICB1dGlsX2FsZF9jYWNoZV9pbnNlcnQodXRpbF9sZGFwX2NhY2hlLCBjdXJsKTsKCiAgICB9Cgog ICAgcmV0dXJuIGN1cmw7Cn0KCgp1dGlsX2FsZF9jYWNoZV90ICp1dGlsX2FsZF9jcmVhdGVfY2Fj aGUodW5zaWduZWQgbG9uZyBtYXhlbnRyaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgKCpoYXNoZnVuYykodm9pZCAqKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICgqY29tcGFyZWZ1bmMpKHZvaWQgKiwgdm9pZCAqKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICogKCpjb3B5ZnVuYykodm9pZCAqKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqZnJlZWZ1bmMpKHZvaWQgKikpCnsK ICAgIHV0aWxfYWxkX2NhY2hlX3QgKmNhY2hlOwogICAgaW50IGk7CgogICAgaWYgKG1heGVudHJp ZXMgPD0gMCkKICAgICAgICByZXR1cm4gTlVMTDsKCiAgICBjYWNoZSA9ICh1dGlsX2FsZF9jYWNo ZV90ICopdXRpbF9hbGRfYWxsb2Moc2l6ZW9mKHV0aWxfYWxkX2NhY2hlX3QpKTsKICAgIGlmICgh Y2FjaGUpCiAgICAgICAgcmV0dXJuIE5VTEw7CgogICAgY2FjaGUtPm1heGVudHJpZXMgPSBtYXhl bnRyaWVzOwogICAgY2FjaGUtPm51bWVudHJpZXMgPSAwOwogICAgY2FjaGUtPnNpemUgPSBtYXhl bnRyaWVzIC8gMzsKICAgIGlmIChjYWNoZS0+c2l6ZSA8IDY0KSBjYWNoZS0+c2l6ZSA9IDY0Owog ICAgICAgIGZvciAoaSA9IDA7IHByaW1lc1tpXSAmJiBwcmltZXNbaV0gPCBjYWNoZS0+c2l6ZTsg KytpKSA7CiAgICAgICAgICAgIGNhY2hlLT5zaXplID0gcHJpbWVzW2ldPyBwcmltZXNbaV0gOiBw cmltZXNbaS0xXTsKCiAgICBjYWNoZS0+bm9kZXMgPSAodXRpbF9jYWNoZV9ub2RlX3QgKiopdXRp bF9hbGRfYWxsb2MoY2FjaGUtPnNpemUgKiBzaXplb2YodXRpbF9jYWNoZV9ub2RlX3QgKikpOwog ICAgaWYgKCFjYWNoZS0+bm9kZXMpIHsKICAgICAgICB1dGlsX2FsZF9mcmVlKGNhY2hlKTsKICAg ICAgICByZXR1cm4gTlVMTDsKICAgIH0KCiAgICBmb3IgKGk9MDsgaSA8IGNhY2hlLT5zaXplOyAr K2kpCiAgICAgICAgY2FjaGUtPm5vZGVzW2ldID0gTlVMTDsKCiAgICBjYWNoZS0+aGFzaCA9IGhh c2hmdW5jOwogICAgY2FjaGUtPmNvbXBhcmUgPSBjb21wYXJlZnVuYzsKICAgIGNhY2hlLT5jb3B5 ID0gY29weWZ1bmM7CiAgICBjYWNoZS0+ZnJlZSA9IGZyZWVmdW5jOwoKICAgIGNhY2hlLT5mdWxs bWFyayA9IGNhY2hlLT5tYXhlbnRyaWVzIC8gNCAqIDM7CiAgICBjYWNoZS0+bWFya3RpbWUgPSAw OwogICAgY2FjaGUtPmF2Z19wdXJnZXRpbWUgPSAwLjA7CiAgICBjYWNoZS0+bnVtcHVyZ2VzID0g MDsKICAgIGNhY2hlLT5sYXN0X3B1cmdlID0gMDsKICAgIGNhY2hlLT5ucHVyZ2VkID0gMDsKCiAg ICBjYWNoZS0+ZmV0Y2hlcyA9IDA7CiAgICBjYWNoZS0+aGl0cyA9IDA7CiAgICBjYWNoZS0+aW5z ZXJ0cyA9IDA7CiAgICBjYWNoZS0+cmVtb3ZlcyA9IDA7CgogICAgcmV0dXJuIGNhY2hlOwp9Cgp2 b2lkIHV0aWxfYWxkX2Rlc3Ryb3lfY2FjaGUodXRpbF9hbGRfY2FjaGVfdCAqY2FjaGUpCnsKICAg IGludCBpOwogICAgdXRpbF9jYWNoZV9ub2RlX3QgKnAsICpxOwoKICAgIGlmIChjYWNoZSA9PSBO VUxMKQogICAgICAgIHJldHVybjsKCiAgICBmb3IgKGkgPSAwOyBpIDwgY2FjaGUtPnNpemU7ICsr aSkgewogICAgICAgIHAgPSBjYWNoZS0+bm9kZXNbaV07CiAgICAgICAgcSA9IE5VTEw7CiAgICAg ICAgd2hpbGUgKHAgIT0gTlVMTCkgewogICAgICAgICAgICBxID0gcC0+bmV4dDsKICAgICAgICAg ICAoKmNhY2hlLT5mcmVlKShwLT5wYXlsb2FkKTsKICAgICAgICAgICB1dGlsX2FsZF9mcmVlKHAp OwogICAgICAgICAgIHAgPSBxOwogICAgICAgIH0KICAgIH0KICAgIHV0aWxfYWxkX2ZyZWUoY2Fj aGUtPm5vZGVzKTsKfQoKdm9pZCAqdXRpbF9hbGRfY2FjaGVfZmV0Y2godXRpbF9hbGRfY2FjaGVf dCAqY2FjaGUsIHZvaWQgKnBheWxvYWQpCnsKICAgIGludCBoYXNodmFsOwogICAgdXRpbF9jYWNo ZV9ub2RlX3QgKnA7CgogICAgaWYgKGNhY2hlID09IE5VTEwpCiAgICAgICAgcmV0dXJuIE5VTEw7 CgogICAgY2FjaGUtPmZldGNoZXMrKzsKCiAgICBoYXNodmFsID0gKCpjYWNoZS0+aGFzaCkocGF5 bG9hZCkgJSBjYWNoZS0+c2l6ZTsKICAgIGZvciAocCA9IGNhY2hlLT5ub2Rlc1toYXNodmFsXTsg CiAgICAgICAgIHAgJiYgISgqY2FjaGUtPmNvbXBhcmUpKHAtPnBheWxvYWQsIHBheWxvYWQpOwog ICAgcCA9IHAtPm5leHQpIDsKCiAgICBpZiAocCAhPSBOVUxMKSB7CiAgICAgICAgY2FjaGUtPmhp dHMrKzsKICAgICAgICByZXR1cm4gcC0+cGF5bG9hZDsKICAgIH0KICAgIGVsc2UgewogICAgICAg IHJldHVybiBOVUxMOwogICAgfQp9CgovKgogKiBJbnNlcnQgYW4gaXRlbSBpbnRvIHRoZSBjYWNo ZS4gCiAqICoqKiBEb2VzIG5vdCBjYXRjaCBkdXBsaWNhdGVzISEhICoqKgogKi8Kdm9pZCB1dGls X2FsZF9jYWNoZV9pbnNlcnQodXRpbF9hbGRfY2FjaGVfdCAqY2FjaGUsIHZvaWQgKnBheWxvYWQp CnsKICAgIGludCBoYXNodmFsOwogICAgdXRpbF9jYWNoZV9ub2RlX3QgKm5vZGU7CgogICAgaWYg KGNhY2hlID09IE5VTEwgfHwgcGF5bG9hZCA9PSBOVUxMKQogICAgICAgIHJldHVybjsKCiAgICBj YWNoZS0+aW5zZXJ0cysrOwogICAgaGFzaHZhbCA9ICgqY2FjaGUtPmhhc2gpKHBheWxvYWQpICUg Y2FjaGUtPnNpemU7CiAgICBub2RlID0gKHV0aWxfY2FjaGVfbm9kZV90ICopdXRpbF9hbGRfYWxs b2Moc2l6ZW9mKHV0aWxfY2FjaGVfbm9kZV90KSk7CiAgICBub2RlLT5hZGRfdGltZSA9IGFwcl90 aW1lX25vdygpOwogICAgbm9kZS0+cGF5bG9hZCA9ICgqY2FjaGUtPmNvcHkpKHBheWxvYWQpOwog ICAgbm9kZS0+bmV4dCA9IGNhY2hlLT5ub2Rlc1toYXNodmFsXTsKICAgIGNhY2hlLT5ub2Rlc1to YXNodmFsXSA9IG5vZGU7CiAgICBpZiAoKytjYWNoZS0+bnVtZW50cmllcyA9PSBjYWNoZS0+ZnVs bG1hcmspIAogICAgICAgIGNhY2hlLT5tYXJrdGltZT1hcHJfdGltZV9ub3coKTsKICAgIGlmIChj YWNoZS0+bnVtZW50cmllcyA+PSBjYWNoZS0+bWF4ZW50cmllcykKICAgICAgICB1dGlsX2FsZF9j YWNoZV9wdXJnZShjYWNoZSk7Cn0KCnZvaWQgdXRpbF9hbGRfY2FjaGVfcmVtb3ZlKHV0aWxfYWxk X2NhY2hlX3QgKmNhY2hlLCB2b2lkICpwYXlsb2FkKQp7CiAgICBpbnQgaGFzaHZhbDsKICAgIHV0 aWxfY2FjaGVfbm9kZV90ICpwLCAqcTsKICAKICAgIGlmIChjYWNoZSA9PSBOVUxMKQogICAgICAg IHJldHVybjsKCiAgICBjYWNoZS0+cmVtb3ZlcysrOwogICAgaGFzaHZhbCA9ICgqY2FjaGUtPmhh c2gpKHBheWxvYWQpICUgY2FjaGUtPnNpemU7CiAgICBmb3IgKHAgPSBjYWNoZS0+bm9kZXNbaGFz aHZhbF0sIHE9TlVMTDsKICAgICAgICAgcCAmJiAhKCpjYWNoZS0+Y29tcGFyZSkocC0+cGF5bG9h ZCwgcGF5bG9hZCk7CiAgICAgICAgIHAgPSBwLT5uZXh0KSB7CiAgICAgICAgIHEgPSBwOwogICAg fQoKICAgIC8qIElmIHAgaXMgbnVsbCwgaXQgbWVhbnMgdGhhdCB3ZSBjb3VsZG4ndCBmaW5kIHRo ZSBub2RlLCBzbyBqdXN0IHJldHVybiAqLwogICAgaWYgKHAgPT0gTlVMTCkKICAgICAgICByZXR1 cm47CgogICAgaWYgKHEgPT0gTlVMTCkgewogICAgICAgIC8qIFdlIGZvdW5kIHRoZSBub2RlLCBh bmQgaXQncyB0aGUgZmlyc3QgaW4gdGhlIGxpc3QgKi8KICAgICAgICBjYWNoZS0+bm9kZXNbaGFz aHZhbF0gPSBwLT5uZXh0OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgLyogV2UgZm91bmQgdGhl IG5vZGUgYW5kIGl0J3Mgbm90IHRoZSBmaXJzdCBpbiB0aGUgbGlzdCAqLwogICAgICAgIHEtPm5l eHQgPSBwLT5uZXh0OwogICAgfQogICAgKCpjYWNoZS0+ZnJlZSkocC0+cGF5bG9hZCk7CiAgICB1 dGlsX2FsZF9mcmVlKHApOwogICAgY2FjaGUtPm51bWVudHJpZXMtLTsKfQoKY2hhciAqdXRpbF9h bGRfY2FjaGVfZGlzcGxheV9zdGF0cyhhcHJfcG9vbF90ICpwLCB1dGlsX2FsZF9jYWNoZV90ICpj YWNoZSwgY2hhciAqbmFtZSkKewogICAgaW50IGk7CiAgICBpbnQgdG90Y2hhaW5sZW4gPSAwOwog ICAgaW50IG5jaGFpbnMgPSAwOwogICAgZG91YmxlIGNoYWlubGVuOwogICAgdXRpbF9jYWNoZV9u b2RlX3QgKm47CiAgICBjaGFyICpidWY7CgogICAgaWYgKGNhY2hlID09IE5VTEwpIHsKICAgICAg ICByZXR1cm4gIiI7CiAgICB9CgogICAgZm9yIChpPTA7IGkgPCBjYWNoZS0+c2l6ZTsgKytpKSB7 CiAgICAgICAgaWYgKGNhY2hlLT5ub2Rlc1tpXSAhPSBOVUxMKSB7CiAgICAgICAgICAgIG5jaGFp bnMrKzsKICAgICAgICAgICAgZm9yIChuID0gY2FjaGUtPm5vZGVzW2ldOyBuICE9IE5VTEw7IG4g PSBuLT5uZXh0KQoJICAgICAgICB0b3RjaGFpbmxlbisrOwogICAgICAgIH0KICAgIH0KICAgIGNo YWlubGVuID0gbmNoYWlucz8gKGRvdWJsZSl0b3RjaGFpbmxlbiAvIChkb3VibGUpbmNoYWlucyA6 IDA7CgogICAgYnVmID0gYXByX3BzcHJpbnRmKHAsIAogICAgICAgICAgICAgIjx0ciB2YWxpZ249 J3RvcCc+IgogICAgICAgICAgICAgIjx0ZCBub3dyYXA+JXM8L3RkPiIKICAgICAgICAgICAgICI8 dGQgYWxpZ249J3JpZ2h0JyBub3dyYXA+JWx1ICglLjBmJSUgZnVsbCk8L3RkPiIKICAgICAgICAg ICAgICI8dGQgYWxpZ249J3JpZ2h0Jz4lLjFmPC90ZD4iCgkgICAgICI8dGQgYWxpZ249J3JpZ2h0 Jz4lbHUvJWx1PC90ZD4iCgkgICAgICI8dGQgYWxpZ249J3JpZ2h0Jz4lLjBmJSU8L3RkPiIKICAg ICAgICAgICAgICI8dGQgYWxpZ249J3JpZ2h0Jz4lbHUvJWx1PC90ZD4iLAogICAgICAgICAgICAg bmFtZSwKCSAgICAgY2FjaGUtPm51bWVudHJpZXMsIAoJICAgICAoZG91YmxlKWNhY2hlLT5udW1l bnRyaWVzIC8gKGRvdWJsZSljYWNoZS0+bWF4ZW50cmllcyAqIDEwMC4wLAogICAgICAgICAgICAg Y2hhaW5sZW4sCgkgICAgIGNhY2hlLT5oaXRzLCAJICAgICAKCSAgICAgY2FjaGUtPmZldGNoZXMs CgkgICAgIChjYWNoZS0+ZmV0Y2hlcyA+IDAgPyAoZG91YmxlKShjYWNoZS0+aGl0cykgLyAoZG91 YmxlKShjYWNoZS0+ZmV0Y2hlcykgKiAxMDAuMCA6IDEwMC4wKSwKCSAgICAgY2FjaGUtPmluc2Vy dHMsCgkgICAgIGNhY2hlLT5yZW1vdmVzKTsKCiAgICBpZiAoY2FjaGUtPm51bXB1cmdlcykgewog ICAgICAgIGNoYXIgc3RyX2N0aW1lW0FQUl9DVElNRV9MRU5dOwoKICAgICAgICBhcHJfY3RpbWUo c3RyX2N0aW1lLCBjYWNoZS0+bGFzdF9wdXJnZSk7CiAgICAgICAgYnVmID0gYXByX3BzcHJpbnRm KHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIKCSAgICAgICAgICAgICAgICAgICAi PHRkIGFsaWduPSdyaWdodCc+JWx1PC90ZD5cbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAg Ijx0ZCBhbGlnbj0ncmlnaHQnIG5vd3JhcD4lczwvdGQ+XG4iLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnVmLAoJICAgICAgICAgICAgICAgICAgIGNhY2hlLT5udW1wdXJnZXMsCgkgICAg ICAgICAgICAgICAgICAgc3RyX2N0aW1lKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGJ1ZiA9 IGFwcl9wc3ByaW50ZihwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzPHRkIGNvbHNw YW49JzInIGFsaWduPSdjZW50ZXInPihub25lKTwvdGQ+XG4iLAogICAgICAgICAgICAgICAgICAg ICAgICAgICBidWYpOwogICAgfQoKICAgIGJ1ZiA9IGFwcl9wc3ByaW50ZihwLCAiJXM8dGQgYWxp Z249J3JpZ2h0Jz4lLjJnPC90ZD5cbjwvdHI+IiwgYnVmLCBjYWNoZS0+YXZnX3B1cmdldGltZSk7 CgogICAgcmV0dXJuIGJ1ZjsKfQoKY2hhciAqdXRpbF9hbGRfY2FjaGVfZGlzcGxheShhcHJfcG9v bF90ICpwb29sKQp7CiAgICBpbnQgaTsKICAgIGNoYXIgKmJ1ZiwgKnQxLCAqdDIsICp0MzsKCiAg ICBpZiAoIXV0aWxfbGRhcF9jYWNoZSkgewogICAgICAgIHJldHVybiAiPHRyIHZhbGlnbj0ndG9w Jz48dGQgbm93cmFwIGNvbHNwYW49Nz5DYWNoZSBoYXMgbm90IGJlZW4gZW5hYmxlZC9pbml0aWFs aXNlZC48L3RkPjwvdHI+IjsKICAgIH0KCiAgICBidWYgPSB1dGlsX2FsZF9jYWNoZV9kaXNwbGF5 X3N0YXRzKHBvb2wsIHV0aWxfbGRhcF9jYWNoZSwgIkxEQVAgVVJMIENhY2hlIik7CgogICAgZm9y IChpPTA7IGkgPCB1dGlsX2xkYXBfY2FjaGUtPnNpemU7ICsraSkgewogICAgICAgIHV0aWxfY2Fj aGVfbm9kZV90ICpwOwogICAgICAgIGZvciAocCA9IHV0aWxfbGRhcF9jYWNoZS0+bm9kZXNbaV07 IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQpIHsKICAgICAgICAgICAgdXRpbF91cmxfbm9kZV90ICpu OwoKICAgICAgICAgICAgbiA9ICh1dGlsX3VybF9ub2RlX3QgKilwLT5wYXlsb2FkOwoKICAgICAg ICAgICAgdDEgPSBhcHJfcHNwcmludGYocG9vbCwgIiVzIChTZWFyY2hlcykiLCBuLT51cmwpOwog ICAgICAgICAgICB0MiA9IGFwcl9wc3ByaW50Zihwb29sLCAiJXMgKENvbXBhcmVzKSIsIG4tPnVy bCk7CiAgICAgICAgICAgIHQzID0gYXByX3BzcHJpbnRmKHBvb2wsICIlcyAoRE5Db21wYXJlcyki LCBuLT51cmwpOwoKICAgICAgICAgICAgYnVmID0gYXByX3BzcHJpbnRmKHBvb2wsICIlc1xuXG4i CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXNcblxuIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzXG5cbiIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIlc1xuXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbF9hbGRf Y2FjaGVfZGlzcGxheV9zdGF0cyhwb29sLCBuLT5zZWFyY2hfY2FjaGUsIHQxKSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxfYWxkX2NhY2hlX2Rpc3BsYXlfc3RhdHMo cG9vbCwgbi0+Y29tcGFyZV9jYWNoZSwgdDIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXRpbF9hbGRfY2FjaGVfZGlzcGxheV9zdGF0cyhwb29sLCBuLT5kbl9jb21wYXJl X2NhY2hlLCB0MykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICB9CiAg ICB9CiAgICByZXR1cm4gYnVmOwp9CgojZW5kaWYgLyogQVBVX0hBU19MREFQICovCg== --0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org --0__=88256BA6007C48808f9e8a93df938690918c88256BA6007C4880--