</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
The cc_time_t type is used to represent a time in seconds. The time must be stored as the number of seconds since midnight GMT on January 1, 1970.
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
<li>#define <a class="el" href="group__helper__macros.html#ga1bbc05414ad4c17cea9cd5e5c50c7cc">cc_ccache_remove_credentials</a>(ccache, credentials) ((ccache) -> functions -> remove_credentials (ccache, credentials))
<li>#define <a class="el" href="group__helper__macros.html#g893b31c419e71c2f528781d3036fa3ff">cc_ccache_new_credentials_iterator</a>(ccache, iterator) ((ccache) -> functions -> new_credentials_iterator (ccache, iterator))
<li>#define <a class="el" href="group__helper__macros.html#gb8c2624719ee1c4be5f1b1bc4844f0cc">cc_ccache_lock</a>(ccache, type, block) ((ccache) -> functions -> lock (ccache, type, block))
-<li>#define <a class="el" href="group__helper__macros.html#gc98101af7822d1c3d5612723140ea960">cc_ccache_unlock</a>(ccache, unlock) ((ccache) -> functions -> unlock (ccache, unlock))
+<li>#define <a class="el" href="group__helper__macros.html#ge9b13c950cb6ee636c4a73d6c569a811">cc_ccache_unlock</a>(ccache) ((ccache) -> functions -> unlock (ccache))
<li>#define <a class="el" href="group__helper__macros.html#g884b0c60718fa1057574a3cd844e96ee">cc_ccache_get_last_default_time</a>(ccache, last_default_time) ((ccache) -> functions -> get_last_default_time (ccache, last_default_time))
<li>#define <a class="el" href="group__helper__macros.html#gb19ef7d2b1bcfb474e18e157fb3bc9c6">cc_ccache_get_change_time</a>(ccache, change_time) ((ccache) -> functions -> get_change_time (ccache, change_time))
<li>#define <a class="el" href="group__helper__macros.html#ge1238f80c37ae89486f2ba29bcbcae38">cc_ccache_move</a>(source, destination) ((source) -> functions -> move (source, destination))
Helper macro for <a class="el" href="structcc__ccache__f.html">cc_ccache_f</a> lock()
</div>
</div><p>
-<a class="anchor" name="gc98101af7822d1c3d5612723140ea960"></a><!-- doxytag: member="CredentialsCache.h::cc_ccache_unlock" ref="gc98101af7822d1c3d5612723140ea960" args="(ccache, unlock)" -->
+<a class="anchor" name="ge9b13c950cb6ee636c4a73d6c569a811"></a><!-- doxytag: member="CredentialsCache.h::cc_ccache_unlock" ref="ge9b13c950cb6ee636c4a73d6c569a811" args="(ccache)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define cc_ccache_unlock </td>
<td>(</td>
- <td class="paramtype">ccache, <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unlock </td>
+ <td class="paramtype">ccache </td>
<td class="paramname"> </td>
<td> ) </td>
- <td width="100%"> ((ccache) -> functions -> unlock (ccache, unlock))</td>
+ <td width="100%"> ((ccache) -> functions -> unlock (ccache))</td>
</tr>
</table>
</div>
Helper macro for <a class="el" href="structcc__credentials__iterator__f.html">cc_credentials_iterator_f</a> clone()
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
The specifications below include the names for both the functions and the convenience macros, in that order. For clarity, it is recommended that clients using the API use the convenience macros, but that is merely a stylistic choice.<p>
Implementing the API in this manner allows us to extend and change the interface in the future, while preserving compatibility with older clients.<p>
For example, consider the case when the signature or the semantics of a cc_ccache_t function is changed. The API version number is incremented. The library implementation contains both a function with the old signature and semantics and a function with the new signature and semantics. When a context is created, the API version number used in that context is stored in the context, and therefore it can be used whenever a ccache is created in that context. When a ccache is created in a context with the old API version number, the function pointer structure for the ccache is filled with pointers to functions implementing the old semantics; when a ccache is created in a context with the new API version number, the function pointer structure for the ccache is filled with poitners to functions implementing the new semantics.<p>
-Similarly, if a function is added to the API, the version number in the context can be used to decide whether to include the implementation of the new function in the appropriate function pointer structure or not. <hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+Similarly, if a function is added to the API, the version number in the context can be used to decide whether to include the implementation of the new function in the appropriate function pointer structure or not. <hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#g893b31c419e71c2f528781d3036fa3ff">cc_ccache_new_credentials_iterator()</a></b>: Iterate over credentials in a ccache. <a href="#4efc19a7cd2ac6695da44cb7f7e9be14"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#d4e0dc020d293643405a07396b6f5942">move</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> io_source_ccache, <a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> io_destination_ccache)
<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#ge1238f80c37ae89486f2ba29bcbcae38">cc_ccache_move()</a></b>: Move the contents of one ccache into another, destroying the source. <a href="#d4e0dc020d293643405a07396b6f5942"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#731d262d2aa179451f824d320c460f58">lock</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> io_ccache, <a class="el" href="group__ccapi__types__reference.html#ga00783c3f4aa70580d0900b1a79aab9d">cc_uint32</a> in_lock_type, <a class="el" href="group__ccapi__types__reference.html#ga00783c3f4aa70580d0900b1a79aab9d">cc_uint32</a> in_block)
<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#gb8c2624719ee1c4be5f1b1bc4844f0cc">cc_ccache_lock()</a></b>: Lock a ccache. <a href="#731d262d2aa179451f824d320c460f58"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#bffbfe60a3e8da64224623df5235159a">unlock</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> io_ccache)
-<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#gc98101af7822d1c3d5612723140ea960">cc_ccache_unlock()</a></b>: Unlock a ccache. <a href="#bffbfe60a3e8da64224623df5235159a"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#c65301a0ef050524286130185c3ec06d">get_last_default_time</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> in_ccache, <a class="el" href="group__ccapi__types__reference.html#ge7a754cfe5664beadddaa100646c9742">cc_time_t</a> *out_last_default_time)
+<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#ge9b13c950cb6ee636c4a73d6c569a811">cc_ccache_unlock()</a></b>: Unlock a ccache. <a href="#bffbfe60a3e8da64224623df5235159a"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#c65301a0ef050524286130185c3ec06d">get_last_default_time</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> in_ccache, <a class="el" href="group__ccapi__types__reference.html#ge7a754cfe5664beadddaa100646c9742">cc_time_t</a> *out_last_default_time)
<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#gb19ef7d2b1bcfb474e18e157fb3bc9c6">cc_ccache_get_change_time()</a></b>: Get the last time a ccache was the default ccache. <a href="#c65301a0ef050524286130185c3ec06d"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#a73ffc6e33ca8155cd644aa5d702c36f">get_change_time</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> in_ccache, <a class="el" href="group__ccapi__types__reference.html#ge7a754cfe5664beadddaa100646c9742">cc_time_t</a> *out_change_time)
<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#gb19ef7d2b1bcfb474e18e157fb3bc9c6">cc_ccache_get_change_time()</a></b>: Get the last time a ccache changed. <a href="#a73ffc6e33ca8155cd644aa5d702c36f"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#30719ac8b49a62bf73cb2841e397a81d">compare</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> in_ccache, <a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> in_compare_to_ccache, <a class="el" href="group__ccapi__types__reference.html#ga00783c3f4aa70580d0900b1a79aab9d">cc_uint32</a> *out_equal)
<dl class="el"><dd class="mdescRight"><b><a class="el" href="group__helper__macros.html#g197ff60fac986634fbef8ca102ec54a5">cc_ccache_compare()</a></b>: Compare two ccache objects. <a href="#30719ac8b49a62bf73cb2841e397a81d"></a><br></dl><li><a class="el" href="group__ccapi__types__reference.html#g0ce639c8d65dc6367fb361d5bbcea874">cc_int32</a>(* <a class="el" href="structcc__ccache__f.html#106ee10feffc1681c7583d6aac4d33b4">get_kdc_time_offset</a> )(<a class="el" href="structcc__ccache__d.html">cc_ccache_t</a> in_ccache, <a class="el" href="group__ccapi__types__reference.html#ga00783c3f4aa70580d0900b1a79aab9d">cc_uint32</a> in_credentials_version, <a class="el" href="group__ccapi__types__reference.html#ge7a754cfe5664beadddaa100646c9742">cc_time_t</a> *out_time_offset)
</ul>
If block is cc_lock_block, <a class="el" href="structcc__ccache__f.html#731d262d2aa179451f824d320c460f58" title="cc_ccache_lock(): Lock a ccache.">lock()</a> will not return until the lock is acquired. If block is cc_lock_noblock, <a class="el" href="structcc__ccache__f.html#731d262d2aa179451f824d320c460f58" title="cc_ccache_lock(): Lock a ccache.">lock()</a> will return immediately, either acquiring the lock and returning ccNoError, or failing to acquire the lock and returning an error explaining why.<p>
To avoid having to deal with differences between thread semantics on different platforms, locks are granted per ccache, rather than per thread or per process. That means that different threads of execution have to acquire separate contexts in order to be able to synchronize with each other.<p>
-The lock should be unlocked by using <a class="el" href="group__helper__macros.html#gc98101af7822d1c3d5612723140ea960">cc_ccache_unlock()</a>.<p>
-<dl class="note" compact><dt><b>Note:</b></dt><dd>All locks are advisory. For example, callers which do not call <a class="el" href="group__helper__macros.html#gb8c2624719ee1c4be5f1b1bc4844f0cc">cc_ccache_lock()</a> and <a class="el" href="group__helper__macros.html#gc98101af7822d1c3d5612723140ea960">cc_ccache_unlock()</a> will not be prevented from writing to the ccache when you have a read lock. This is because the CCAPI locking was added later and thus adding mandatory locks would have changed the user experience and performance of existing applications. </dd></dl>
+The lock should be unlocked by using <a class="el" href="group__helper__macros.html#ge9b13c950cb6ee636c4a73d6c569a811">cc_ccache_unlock()</a>.<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>All locks are advisory. For example, callers which do not call <a class="el" href="group__helper__macros.html#gb8c2624719ee1c4be5f1b1bc4844f0cc">cc_ccache_lock()</a> and <a class="el" href="group__helper__macros.html#ge9b13c950cb6ee636c4a73d6c569a811">cc_ccache_unlock()</a> will not be prevented from writing to the ccache when you have a read lock. This is because the CCAPI locking was added later and thus adding mandatory locks would have changed the user experience and performance of existing applications. </dd></dl>
</div>
</div><p>
<div class="memdoc">
<p>
-<b><a class="el" href="group__helper__macros.html#gc98101af7822d1c3d5612723140ea960">cc_ccache_unlock()</a></b>: Unlock a ccache.
+<b><a class="el" href="group__helper__macros.html#ge9b13c950cb6ee636c4a73d6c569a811">cc_ccache_unlock()</a></b>: Unlock a ccache.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
The credentials.
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
Ticket data
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
Authorization data.
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
The data buffer.
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</div>
</div><p>
-<hr size="1"><address style="text-align: right;"><small>Generated on Thu Aug 23 12:45:25 2007 for Credentials Cache API by
+<hr size="1"><address style="text-align: right;"><small>Generated on Mon Sep 10 17:00:32 2007 for Credentials Cache API by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
#define cc_ccache_lock(ccache, type, block) \
((ccache) -> functions -> lock (ccache, type, block))
/*! Helper macro for cc_ccache_f unlock() */
-#define cc_ccache_unlock(ccache, unlock) \
- ((ccache) -> functions -> unlock (ccache, unlock))
+#define cc_ccache_unlock(ccache) \
+ ((ccache) -> functions -> unlock (ccache))
/*! Helper macro for cc_ccache_f get_last_default_time() */
#define cc_ccache_get_last_default_time(ccache, last_default_time) \
((ccache) -> functions -> get_last_default_time (ccache, last_default_time))