/usr/share/gtk-doc/html/libsecret-1/c-remove-example.html is in libsecret-1-dev 0.18.6-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>C example: Remove a password: Libsecret Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Libsecret Library Reference Manual">
<link rel="up" href="c-examples.html" title="C examples">
<link rel="prev" href="c-lookup-example.html" title="C example: Lookup a password">
<link rel="next" href="js-examples.html" title="Javascript examples">
<meta name="generator" content="GTK-Doc V1.27.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="c-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="c-lookup-example.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="js-examples.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="c-remove-example"></a>C example: Remove a password</h2></div></div></div>
<p>Here's how to remove a password from the running secret service,
like gnome-keyring or ksecretservice.</p>
<p>Each stored password has a set of attributes which are
used to find which password to remove. If multiple passwords match the
attributes, then the one stored most recently is removed.</p>
<p>These examples use <a class="link" href="c-examples.html#c-schema-example" title="C example: Define a password schema">the example
schema</a>.</p>
<p>This first example removes a password asynchronously, and is
appropriate for GUI applications so that the UI does not block.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">on_password_cleared</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">source</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">GAsyncResult</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">result</span><span class="symbol">,</span>
<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> unused</span><span class="symbol">)</span>
<span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> NULL</span><span class="symbol">;</span>
<span class="normal"> </span><span class="usertype">gboolean</span><span class="normal"> removed </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="libsecret-Password-storage.html#secret-password-clear-finish">secret_password_clear_finish</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">result</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> NULL</span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="comment">/* ... handle the failure here */</span>
<span class="normal"> </span><span class="function">g_error_free</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal"> </span><span class="cbracket">}</span><span class="normal"> </span><span class="keyword">else</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="comment">/* removed will be TRUE if a password was removed */</span>
<span class="normal"> </span><span class="cbracket">}</span>
<span class="cbracket">}</span>
<span class="comment">/*</span>
<span class="comment"> * The variable argument list is the attributes used to later</span>
<span class="comment"> * lookup the password. These attributes must conform to the schema.</span>
<span class="comment"> */</span>
<span class="function"><a href="libsecret-Password-storage.html#secret-password-clear">secret_password_clear</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">EXAMPLE_SCHEMA</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">,</span><span class="normal"> on_password_cleard</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"string"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"nine"</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"even"</span><span class="symbol">,</span><span class="normal"> FALSE</span><span class="symbol">,</span>
<span class="normal"> NULL</span><span class="symbol">);</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p>This next example looks up a password synchronously. The function
call will block until the lookup completes. So this is appropriate for
non GUI applications.</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> NULL</span><span class="symbol">;</span>
<span class="comment">/*</span>
<span class="comment"> * The variable argument list is the attributes used to later</span>
<span class="comment"> * lookup the password. These attributes must conform to the schema.</span>
<span class="comment"> */</span>
<span class="usertype">gboolean</span><span class="normal"> removed </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="libsecret-Password-storage.html#secret-password-clear-sync">secret_password_clear_sync</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">EXAMPLE_SCHEMA</span><span class="symbol">,</span><span class="normal"> NULL</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&</span><span class="normal">error</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"string"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"nine"</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"even"</span><span class="symbol">,</span><span class="normal"> FALSE</span><span class="symbol">,</span>
<span class="normal"> NULL</span><span class="symbol">);</span>
<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> NULL</span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="comment">/* ... handle the failure here */</span>
<span class="normal"> </span><span class="function">g_error_free</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="cbracket">}</span><span class="normal"> </span><span class="keyword">else</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal"> </span><span class="comment">/* removed will be TRUE if a password was removed */</span>
<span class="cbracket">}</span></pre></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27.1</div>
</body>
</html>
|