~ubuntu-branches/debian/jessie/openchange/jessie

« back to all changes in this revision

Viewing changes to apidocs/html/mapiproxy/mpm__cache_8c.html

  • Committer: Package Import Robot
  • Author(s): Jelmer Vernooij
  • Date: 2014-04-24 00:29:19 UTC
  • mfrom: (1.2.8) (4.1.6 experimental)
  • Revision ID: package-import@ubuntu.com-20140424002919-96es5uhyy3jjzgid
Tags: 1:2.1-1
* New upstream release.
 + Stop removing broken manpages, upstream on longer installs them.
* Add upstream signing key.
* Run test suite during build.
 + Add dependency on python-twisted-core for trial and python-testtools.
 + Add fix-tests patch, cherry-picked from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<html>
2
 
  <head>
3
 
    <title>MAPIProxy 2.0 API Documentation</title>
4
 
    <link href="doxygen.css" rel="stylesheet" type="text/css"/>
5
 
    <link href="apidocs.css" rel="stylesheet" type="text/css"/>
6
 
  </head>
7
 
  <body>
8
 
    <div id="website">
9
 
    <div class="header"></div>
10
 
      <div id="middle_side">
11
 
        <div id="right_side_home">
12
 
<!-- Generated by Doxygen 1.8.1.2 -->
13
 
  <div id="navrow1" class="tabs">
14
 
    <ul class="tablist">
15
 
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
16
 
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
17
 
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
18
 
      <li class="current"><a href="files.html"><span>Files</span></a></li>
19
 
    </ul>
20
 
  </div>
21
 
  <div id="navrow2" class="tabs2">
22
 
    <ul class="tablist">
23
 
      <li><a href="files.html"><span>File&#160;List</span></a></li>
24
 
      <li><a href="globals.html"><span>Globals</span></a></li>
25
 
    </ul>
26
 
  </div>
27
 
<div id="nav-path" class="navpath">
28
 
  <ul>
29
 
<li class="navelem"><a class="el" href="dir_4f343f6bd7925b18a2c3c13737f093b9.html">mapiproxy</a></li><li class="navelem"><a class="el" href="dir_4c35cb2dde09236b6b5ef740a040f283.html">modules</a></li>  </ul>
30
 
</div>
31
 
</div><!-- top -->
32
 
<div class="header">
33
 
  <div class="summary">
34
 
<a href="#func-members">Functions</a>  </div>
35
 
  <div class="headertitle">
36
 
<div class="title">mpm_cache.c File Reference</div>  </div>
37
 
</div><!--header-->
38
 
<div class="contents">
39
 
 
40
 
<p>Cache messages and attachments so we can reduce WAN traffic.  
41
 
<a href="#details">More...</a></p>
42
 
<div class="textblock"><code>#include &quot;libmapi/libmapi.h&quot;</code><br/>
43
 
<code>#include &quot;libmapi/libmapi_private.h&quot;</code><br/>
44
 
<code>#include &quot;mapiproxy/dcesrv_mapiproxy.h&quot;</code><br/>
45
 
<code>#include &quot;mapiproxy/libmapiproxy/libmapiproxy.h&quot;</code><br/>
46
 
<code>#include &quot;mapiproxy/modules/mpm_cache.h&quot;</code><br/>
47
 
</div><table class="memberdecls">
48
 
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
49
 
Functions</h2></td></tr>
50
 
<tr class="memitem:a9bb6adf0b5f931b4ae40ccad991e8413"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a9bb6adf0b5f931b4ae40ccad991e8413">cache_dispatch</a> (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r, struct mapiproxy *mapiproxy)</td></tr>
51
 
<tr class="memitem:aac46f4aa8bbafcc2e6b840e94f136741"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#aac46f4aa8bbafcc2e6b840e94f136741">cache_dump_stream_stat</a> (struct <a class="el" href="structmpm__stream.html">mpm_stream</a> *stream)</td></tr>
52
 
<tr class="memitem:ac7834a5d736527505f5236e1fd51e77c"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#ac7834a5d736527505f5236e1fd51e77c">cache_exec_sync_cmd</a> (struct <a class="el" href="structmpm__stream.html">mpm_stream</a> *stream)</td></tr>
53
 
<tr class="memitem:a343229637fac85431053d3a3fbce7568"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a343229637fac85431053d3a3fbce7568">cache_find_call_request_index</a> (uint8_t opnum, struct EcDoRpc_MAPI_REQ *mapi_req)</td></tr>
54
 
<tr class="memitem:a99a578fd0130e064c931b1bb52efa57c"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a99a578fd0130e064c931b1bb52efa57c">cache_init</a> (struct dcesrv_context *dce_ctx)</td></tr>
55
 
<tr class="memitem:afe28f63dd454143cf60ae816d86c65dc"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#afe28f63dd454143cf60ae816d86c65dc">cache_pull</a> (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)</td></tr>
56
 
<tr class="memitem:a7b80896ecf38bb5304c5b44d8961da49"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a7b80896ecf38bb5304c5b44d8961da49">cache_pull_OpenAttach</a> (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoRpc_MAPI_REQ mapi_req, struct EcDoRpc *EcDoRpc)</td></tr>
57
 
<tr class="memitem:af1c79ca9103ed25a4e49f79dad94a94f"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#af1c79ca9103ed25a4e49f79dad94a94f">cache_pull_OpenMessage</a> (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct OpenMessage_req request)</td></tr>
58
 
<tr class="memitem:a4f9f6d741698f8ee3034789b75b0b42d"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a4f9f6d741698f8ee3034789b75b0b42d">cache_pull_OpenStream</a> (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct EcDoRpc_MAPI_REQ mapi_req, struct EcDoRpc *EcDoRpc)</td></tr>
59
 
<tr class="memitem:a1094dee68b57146db1607a2c34753407"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a1094dee68b57146db1607a2c34753407">cache_pull_Release</a> (struct dcesrv_call_state *dce_call, struct EcDoRpc *EcDoRpc, uint32_t handle_idx)</td></tr>
60
 
<tr class="memitem:a97cf4f171b4d1a84fbf4da19605fb820"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push</a> (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)</td></tr>
61
 
<tr class="memitem:a070020d672d3850ca02df7fc92ab40d1"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a070020d672d3850ca02df7fc92ab40d1">cache_push_OpenAttach</a> (struct dcesrv_call_state *dce_call, struct EcDoRpc_MAPI_REQ mapi_req, struct EcDoRpc_MAPI_REPL mapi_repl, struct EcDoRpc *EcDoRpc)</td></tr>
62
 
<tr class="memitem:ab9d8132ba3576f237182f28bef9a9823"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#ab9d8132ba3576f237182f28bef9a9823">cache_push_OpenMessage</a> (struct dcesrv_call_state *dce_call, struct EcDoRpc_MAPI_REQ mapi_req, struct EcDoRpc_MAPI_REPL mapi_repl, struct EcDoRpc *EcDoRpc)</td></tr>
63
 
<tr class="memitem:a72233358ee75eb93e39e50320980cc89"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a72233358ee75eb93e39e50320980cc89">cache_push_OpenStream</a> (struct dcesrv_call_state *dce_call, struct EcDoRpc_MAPI_REQ mapi_req, struct EcDoRpc_MAPI_REPL mapi_repl, struct EcDoRpc *EcDoRpc)</td></tr>
64
 
<tr class="memitem:a50fabb5b2ee2552ee0410557e5f816ee"><td class="memItemLeft" align="right" valign="top">static NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#a50fabb5b2ee2552ee0410557e5f816ee">cache_push_ReadStream</a> (struct dcesrv_call_state *dce_call, struct EcDoRpc_MAPI_REQ mapi_req, struct EcDoRpc_MAPI_REPL mapi_repl, struct EcDoRpc *EcDoRpc)</td></tr>
65
 
<tr class="memitem:ab1730cf1108b8fda2c0d0a25b3a5133e"><td class="memItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mpm__cache_8c.html#ab1730cf1108b8fda2c0d0a25b3a5133e">samba_init_module</a> (void)</td></tr>
66
 
</table>
67
 
<a name="details" id="details"></a><h2>Detailed Description</h2>
68
 
<div class="textblock"><p>Cache messages and attachments so we can reduce WAN traffic. </p>
69
 
</div><h2>Function Documentation</h2>
70
 
<a class="anchor" id="a9bb6adf0b5f931b4ae40ccad991e8413"></a>
71
 
<div class="memitem">
72
 
<div class="memproto">
73
 
<table class="mlabels">
74
 
  <tr>
75
 
  <td class="mlabels-left">
76
 
      <table class="memname">
77
 
        <tr>
78
 
          <td class="memname">static NTSTATUS cache_dispatch </td>
79
 
          <td>(</td>
80
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
81
 
          <td class="paramname"><em>dce_call</em>, </td>
82
 
        </tr>
83
 
        <tr>
84
 
          <td class="paramkey"></td>
85
 
          <td></td>
86
 
          <td class="paramtype">TALLOC_CTX *&#160;</td>
87
 
          <td class="paramname"><em>mem_ctx</em>, </td>
88
 
        </tr>
89
 
        <tr>
90
 
          <td class="paramkey"></td>
91
 
          <td></td>
92
 
          <td class="paramtype">void *&#160;</td>
93
 
          <td class="paramname"><em>r</em>, </td>
94
 
        </tr>
95
 
        <tr>
96
 
          <td class="paramkey"></td>
97
 
          <td></td>
98
 
          <td class="paramtype">struct mapiproxy *&#160;</td>
99
 
          <td class="paramname"><em>mapiproxy</em>&#160;</td>
100
 
        </tr>
101
 
        <tr>
102
 
          <td></td>
103
 
          <td>)</td>
104
 
          <td></td><td></td>
105
 
        </tr>
106
 
      </table>
107
 
  </td>
108
 
  <td class="mlabels-right">
109
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
110
 
  </tr>
111
 
</table>
112
 
</div><div class="memdoc">
113
 
<p>Dispatch function.</p>
114
 
<p>This function avoids calling dcerpc_ndr_request - understand forwarding client request to remove server - when the client is reading a message/attachment stream available in the cache.</p>
115
 
<p>This function can also be used to loop over dcerpc_ndr_request and perform a read-ahead operation.</p>
116
 
<dl class="params"><dt>Parameters</dt><dd>
117
 
  <table class="params">
118
 
    <tr><td class="paramname">dce_call</td><td>the session context </td></tr>
119
 
    <tr><td class="paramname">mem_ctx</td><td>the memory context </td></tr>
120
 
    <tr><td class="paramname">r</td><td>pointer on EcDoRpc operation </td></tr>
121
 
    <tr><td class="paramname">mapiproxy</td><td>pointer to a mapiproxy structure controlling mapiproxy behavior.</td></tr>
122
 
  </table>
123
 
  </dd>
124
 
</dl>
125
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
126
 
 
127
 
<p>References <a class="el" href="mpm__cache_8c.html#aac46f4aa8bbafcc2e6b840e94f136741">cache_dump_stream_stat()</a>, <a class="el" href="mpm__cache__stream_8c.html#a142a0bfc3a59bf5eec9b020987e36557">mpm_cache_stream_read()</a>, <a class="el" href="mpm__cache__stream_8c.html#a2f3ef6ff42c705a117bad6dc0cb642a0">mpm_cache_stream_reset()</a>, <a class="el" href="mpm__cache__stream_8c.html#a6e6b36fee79d3f8505f2fdaa0ad994ba">mpm_cache_stream_write()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>.</p>
128
 
 
129
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#ab1730cf1108b8fda2c0d0a25b3a5133e">samba_init_module()</a>.</p>
130
 
 
131
 
</div>
132
 
</div>
133
 
<a class="anchor" id="aac46f4aa8bbafcc2e6b840e94f136741"></a>
134
 
<div class="memitem">
135
 
<div class="memproto">
136
 
<table class="mlabels">
137
 
  <tr>
138
 
  <td class="mlabels-left">
139
 
      <table class="memname">
140
 
        <tr>
141
 
          <td class="memname">static void cache_dump_stream_stat </td>
142
 
          <td>(</td>
143
 
          <td class="paramtype">struct <a class="el" href="structmpm__stream.html">mpm_stream</a> *&#160;</td>
144
 
          <td class="paramname"><em>stream</em></td><td>)</td>
145
 
          <td></td>
146
 
        </tr>
147
 
      </table>
148
 
  </td>
149
 
  <td class="mlabels-right">
150
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
151
 
  </tr>
152
 
</table>
153
 
</div><div class="memdoc">
154
 
<p>Dump time statistic between OpenStream and Release</p>
155
 
<p>This function monitors the effective time required to open, read and close a stream.</p>
156
 
<dl class="params"><dt>Parameters</dt><dd>
157
 
  <table class="params">
158
 
    <tr><td class="paramname">stream</td><td>the <a class="el" href="structmpm__stream.html" title="A stream can either be for a message or attachment.">mpm_stream</a> entry </td></tr>
159
 
  </table>
160
 
  </dd>
161
 
</dl>
162
 
 
163
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a9bb6adf0b5f931b4ae40ccad991e8413">cache_dispatch()</a>, and <a class="el" href="mpm__cache_8c.html#a50fabb5b2ee2552ee0410557e5f816ee">cache_push_ReadStream()</a>.</p>
164
 
 
165
 
</div>
166
 
</div>
167
 
<a class="anchor" id="ac7834a5d736527505f5236e1fd51e77c"></a>
168
 
<div class="memitem">
169
 
<div class="memproto">
170
 
<table class="mlabels">
171
 
  <tr>
172
 
  <td class="mlabels-left">
173
 
      <table class="memname">
174
 
        <tr>
175
 
          <td class="memname">static NTSTATUS cache_exec_sync_cmd </td>
176
 
          <td>(</td>
177
 
          <td class="paramtype">struct <a class="el" href="structmpm__stream.html">mpm_stream</a> *&#160;</td>
178
 
          <td class="paramname"><em>stream</em></td><td>)</td>
179
 
          <td></td>
180
 
        </tr>
181
 
      </table>
182
 
  </td>
183
 
  <td class="mlabels-right">
184
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
185
 
  </tr>
186
 
</table>
187
 
</div><div class="memdoc">
188
 
<ol type="1">
189
 
<li>close the existing FILE *</li>
190
 
<li>build complete file path</li>
191
 
<li>replace <b>FILE</b> arguments with complete file path</li>
192
 
<li>call execve</li>
193
 
<li>stat the sync'd file</li>
194
 
<li>open the stream again</li>
195
 
<li>mark the file as cached</li>
196
 
</ol>
197
 
<dl class="params"><dt>Parameters</dt><dd>
198
 
  <table class="params">
199
 
    <tr><td class="paramname">stream</td><td>pointer on the <a class="el" href="structmpm__stream.html" title="A stream can either be for a message or attachment.">mpm_stream</a> entry </td></tr>
200
 
  </table>
201
 
  </dd>
202
 
</dl>
203
 
 
204
 
<p>References <a class="el" href="mpm__cache__stream_8c.html#a724182ad6610fe42a5667ffa389a4b06">mpm_cache_stream_close()</a>, and <a class="el" href="mpm__cache__stream_8c.html#a1be8742bfcbebf3f1e58eab1a7b6010a">mpm_cache_stream_open()</a>.</p>
205
 
 
206
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a50fabb5b2ee2552ee0410557e5f816ee">cache_push_ReadStream()</a>.</p>
207
 
 
208
 
</div>
209
 
</div>
210
 
<a class="anchor" id="a343229637fac85431053d3a3fbce7568"></a>
211
 
<div class="memitem">
212
 
<div class="memproto">
213
 
<table class="mlabels">
214
 
  <tr>
215
 
  <td class="mlabels-left">
216
 
      <table class="memname">
217
 
        <tr>
218
 
          <td class="memname">static uint32_t cache_find_call_request_index </td>
219
 
          <td>(</td>
220
 
          <td class="paramtype">uint8_t&#160;</td>
221
 
          <td class="paramname"><em>opnum</em>, </td>
222
 
        </tr>
223
 
        <tr>
224
 
          <td class="paramkey"></td>
225
 
          <td></td>
226
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ *&#160;</td>
227
 
          <td class="paramname"><em>mapi_req</em>&#160;</td>
228
 
        </tr>
229
 
        <tr>
230
 
          <td></td>
231
 
          <td>)</td>
232
 
          <td></td><td></td>
233
 
        </tr>
234
 
      </table>
235
 
  </td>
236
 
  <td class="mlabels-right">
237
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
238
 
  </tr>
239
 
</table>
240
 
</div><div class="memdoc">
241
 
<p>Find the position of the given MAPI call in a serialized MAPI request.</p>
242
 
<p>If the request includes a Release call, then request and replies indexes for other calls will mismatch.</p>
243
 
<dl class="params"><dt>Parameters</dt><dd>
244
 
  <table class="params">
245
 
    <tr><td class="paramname">opnum</td><td>The MAPI opnum to seek </td></tr>
246
 
    <tr><td class="paramname">mapi_req</td><td>Pointer to the MAPI request calls array</td></tr>
247
 
  </table>
248
 
  </dd>
249
 
</dl>
250
 
<dl class="section return"><dt>Returns</dt><dd>On success, returns the call position, otherwise -1. </dd></dl>
251
 
 
252
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push()</a>.</p>
253
 
 
254
 
</div>
255
 
</div>
256
 
<a class="anchor" id="a99a578fd0130e064c931b1bb52efa57c"></a>
257
 
<div class="memitem">
258
 
<div class="memproto">
259
 
<table class="mlabels">
260
 
  <tr>
261
 
  <td class="mlabels-left">
262
 
      <table class="memname">
263
 
        <tr>
264
 
          <td class="memname">static NTSTATUS cache_init </td>
265
 
          <td>(</td>
266
 
          <td class="paramtype">struct dcesrv_context *&#160;</td>
267
 
          <td class="paramname"><em>dce_ctx</em></td><td>)</td>
268
 
          <td></td>
269
 
        </tr>
270
 
      </table>
271
 
  </td>
272
 
  <td class="mlabels-right">
273
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
274
 
  </tr>
275
 
</table>
276
 
</div><div class="memdoc">
277
 
<p>Initialize the cache module and retrieve configuration from smb.conf</p>
278
 
<p>Possible smb.conf parameters: mpm_cache:database</p>
279
 
<dl class="params"><dt>Parameters</dt><dd>
280
 
  <table class="params">
281
 
    <tr><td class="paramname">dce_ctx</td><td>the session context</td></tr>
282
 
  </table>
283
 
  </dd>
284
 
</dl>
285
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK on success otherwise NT_STATUS_INVALID_PARAMETER, NT_STATUS_NO_MEMORY </dd></dl>
286
 
 
287
 
<p>References <a class="el" href="mpm__cache__ldb_8c.html#a50c355d12cfef14722f5c714e6369996">mpm_cache_ldb_createdb()</a>.</p>
288
 
 
289
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#ab1730cf1108b8fda2c0d0a25b3a5133e">samba_init_module()</a>.</p>
290
 
 
291
 
</div>
292
 
</div>
293
 
<a class="anchor" id="afe28f63dd454143cf60ae816d86c65dc"></a>
294
 
<div class="memitem">
295
 
<div class="memproto">
296
 
<table class="mlabels">
297
 
  <tr>
298
 
  <td class="mlabels-left">
299
 
      <table class="memname">
300
 
        <tr>
301
 
          <td class="memname">static NTSTATUS cache_pull </td>
302
 
          <td>(</td>
303
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
304
 
          <td class="paramname"><em>dce_call</em>, </td>
305
 
        </tr>
306
 
        <tr>
307
 
          <td class="paramkey"></td>
308
 
          <td></td>
309
 
          <td class="paramtype">TALLOC_CTX *&#160;</td>
310
 
          <td class="paramname"><em>mem_ctx</em>, </td>
311
 
        </tr>
312
 
        <tr>
313
 
          <td class="paramkey"></td>
314
 
          <td></td>
315
 
          <td class="paramtype">void *&#160;</td>
316
 
          <td class="paramname"><em>r</em>&#160;</td>
317
 
        </tr>
318
 
        <tr>
319
 
          <td></td>
320
 
          <td>)</td>
321
 
          <td></td><td></td>
322
 
        </tr>
323
 
      </table>
324
 
  </td>
325
 
  <td class="mlabels-right">
326
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
327
 
  </tr>
328
 
</table>
329
 
</div><div class="memdoc">
330
 
<p>Analyze EcDoRpc MAPI requests</p>
331
 
<p>This function loops over EcDoRpc MAPI calls and search for the opnums required by the cache module to monitor Stream traffic properly.</p>
332
 
<dl class="params"><dt>Parameters</dt><dd>
333
 
  <table class="params">
334
 
    <tr><td class="paramname">dce_call</td><td>the session context </td></tr>
335
 
    <tr><td class="paramname">mem_ctx</td><td>the memory context </td></tr>
336
 
    <tr><td class="paramname">r</td><td>generic pointer on EcDoRpc operation</td></tr>
337
 
  </table>
338
 
  </dd>
339
 
</dl>
340
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
341
 
 
342
 
<p>References <a class="el" href="mpm__cache_8c.html#a7b80896ecf38bb5304c5b44d8961da49">cache_pull_OpenAttach()</a>, <a class="el" href="mpm__cache_8c.html#af1c79ca9103ed25a4e49f79dad94a94f">cache_pull_OpenMessage()</a>, <a class="el" href="mpm__cache_8c.html#a4f9f6d741698f8ee3034789b75b0b42d">cache_pull_OpenStream()</a>, and <a class="el" href="mpm__cache_8c.html#a1094dee68b57146db1607a2c34753407">cache_pull_Release()</a>.</p>
343
 
 
344
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#ab1730cf1108b8fda2c0d0a25b3a5133e">samba_init_module()</a>.</p>
345
 
 
346
 
</div>
347
 
</div>
348
 
<a class="anchor" id="a7b80896ecf38bb5304c5b44d8961da49"></a>
349
 
<div class="memitem">
350
 
<div class="memproto">
351
 
<table class="mlabels">
352
 
  <tr>
353
 
  <td class="mlabels-left">
354
 
      <table class="memname">
355
 
        <tr>
356
 
          <td class="memname">static NTSTATUS cache_pull_OpenAttach </td>
357
 
          <td>(</td>
358
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
359
 
          <td class="paramname"><em>dce_call</em>, </td>
360
 
        </tr>
361
 
        <tr>
362
 
          <td class="paramkey"></td>
363
 
          <td></td>
364
 
          <td class="paramtype">TALLOC_CTX *&#160;</td>
365
 
          <td class="paramname"><em>mem_ctx</em>, </td>
366
 
        </tr>
367
 
        <tr>
368
 
          <td class="paramkey"></td>
369
 
          <td></td>
370
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ&#160;</td>
371
 
          <td class="paramname"><em>mapi_req</em>, </td>
372
 
        </tr>
373
 
        <tr>
374
 
          <td class="paramkey"></td>
375
 
          <td></td>
376
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
377
 
          <td class="paramname"><em>EcDoRpc</em>&#160;</td>
378
 
        </tr>
379
 
        <tr>
380
 
          <td></td>
381
 
          <td>)</td>
382
 
          <td></td><td></td>
383
 
        </tr>
384
 
      </table>
385
 
  </td>
386
 
  <td class="mlabels-right">
387
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
388
 
  </tr>
389
 
</table>
390
 
</div><div class="memdoc">
391
 
<p>Monitor OpenAttach requests and register an attachment in the mpm_messages list.</p>
392
 
<p>This is the first step for attachment registration. This function first ensures the attachment is not already registered, otherwise delete it. It next creates the attachment entry in the global mpm_message structure.</p>
393
 
<dl class="params"><dt>Parameters</dt><dd>
394
 
  <table class="params">
395
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
396
 
    <tr><td class="paramname">mem_ctx</td><td>the memory context </td></tr>
397
 
    <tr><td class="paramname">mapi_req</td><td>reference to the OpenAttach EcDoRpc_MAPI_REQ entry </td></tr>
398
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the EcDoRpc operation</td></tr>
399
 
  </table>
400
 
  </dd>
401
 
</dl>
402
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK on success, otherwise NT_STATUS_NO_MEMORY </dd></dl>
403
 
 
404
 
<p>References <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a4f128e06425202bbc1971bf000ae2ab1">mpm_session_init()</a>.</p>
405
 
 
406
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#afe28f63dd454143cf60ae816d86c65dc">cache_pull()</a>.</p>
407
 
 
408
 
</div>
409
 
</div>
410
 
<a class="anchor" id="af1c79ca9103ed25a4e49f79dad94a94f"></a>
411
 
<div class="memitem">
412
 
<div class="memproto">
413
 
<table class="mlabels">
414
 
  <tr>
415
 
  <td class="mlabels-left">
416
 
      <table class="memname">
417
 
        <tr>
418
 
          <td class="memname">static NTSTATUS cache_pull_OpenMessage </td>
419
 
          <td>(</td>
420
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
421
 
          <td class="paramname"><em>dce_call</em>, </td>
422
 
        </tr>
423
 
        <tr>
424
 
          <td class="paramkey"></td>
425
 
          <td></td>
426
 
          <td class="paramtype">TALLOC_CTX *&#160;</td>
427
 
          <td class="paramname"><em>mem_ctx</em>, </td>
428
 
        </tr>
429
 
        <tr>
430
 
          <td class="paramkey"></td>
431
 
          <td></td>
432
 
          <td class="paramtype">struct OpenMessage_req&#160;</td>
433
 
          <td class="paramname"><em>request</em>&#160;</td>
434
 
        </tr>
435
 
        <tr>
436
 
          <td></td>
437
 
          <td>)</td>
438
 
          <td></td><td></td>
439
 
        </tr>
440
 
      </table>
441
 
  </td>
442
 
  <td class="mlabels-right">
443
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
444
 
  </tr>
445
 
</table>
446
 
</div><div class="memdoc">
447
 
<p>Monitor OpenMessage requests and register a message in the mpm_messages list.</p>
448
 
<p>This is the first step for message registration: set Folder ID and Message ID set the handle to 0xFFFFFFFF Insert the message to the list</p>
449
 
<dl class="params"><dt>Parameters</dt><dd>
450
 
  <table class="params">
451
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
452
 
    <tr><td class="paramname">mem_ctx</td><td>the memory context </td></tr>
453
 
    <tr><td class="paramname">request</td><td>reference to the OpenMessage request</td></tr>
454
 
  </table>
455
 
  </dd>
456
 
</dl>
457
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK on success </dd></dl>
458
 
 
459
 
<p>References <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a4f128e06425202bbc1971bf000ae2ab1">mpm_session_init()</a>.</p>
460
 
 
461
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#afe28f63dd454143cf60ae816d86c65dc">cache_pull()</a>.</p>
462
 
 
463
 
</div>
464
 
</div>
465
 
<a class="anchor" id="a4f9f6d741698f8ee3034789b75b0b42d"></a>
466
 
<div class="memitem">
467
 
<div class="memproto">
468
 
<table class="mlabels">
469
 
  <tr>
470
 
  <td class="mlabels-left">
471
 
      <table class="memname">
472
 
        <tr>
473
 
          <td class="memname">static NTSTATUS cache_pull_OpenStream </td>
474
 
          <td>(</td>
475
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
476
 
          <td class="paramname"><em>dce_call</em>, </td>
477
 
        </tr>
478
 
        <tr>
479
 
          <td class="paramkey"></td>
480
 
          <td></td>
481
 
          <td class="paramtype">TALLOC_CTX *&#160;</td>
482
 
          <td class="paramname"><em>mem_ctx</em>, </td>
483
 
        </tr>
484
 
        <tr>
485
 
          <td class="paramkey"></td>
486
 
          <td></td>
487
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ&#160;</td>
488
 
          <td class="paramname"><em>mapi_req</em>, </td>
489
 
        </tr>
490
 
        <tr>
491
 
          <td class="paramkey"></td>
492
 
          <td></td>
493
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
494
 
          <td class="paramname"><em>EcDoRpc</em>&#160;</td>
495
 
        </tr>
496
 
        <tr>
497
 
          <td></td>
498
 
          <td>)</td>
499
 
          <td></td><td></td>
500
 
        </tr>
501
 
      </table>
502
 
  </td>
503
 
  <td class="mlabels-right">
504
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
505
 
  </tr>
506
 
</table>
507
 
</div><div class="memdoc">
508
 
<p>Monitor OpenStream requests and register a stream in the mpm_streams list.</p>
509
 
<p>We are only interested in monitoring streams related to attachments or messages. This is the first step for stream registration:</p>
510
 
<p>Look whether this stream inherits from a message or attachment Fill the stream element according to previous statement Add it to the <a class="el" href="structmpm__stream.html" title="A stream can either be for a message or attachment.">mpm_stream</a> list</p>
511
 
<dl class="params"><dt>Parameters</dt><dd>
512
 
  <table class="params">
513
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
514
 
    <tr><td class="paramname">mem_ctx</td><td>the memory context </td></tr>
515
 
    <tr><td class="paramname">mapi_req</td><td>reference to the OpenStream MAPI request </td></tr>
516
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the current EcDoRpc operation</td></tr>
517
 
  </table>
518
 
  </dd>
519
 
</dl>
520
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK on success, otherwise NT_STATUS_NO_MEMORY </dd></dl>
521
 
 
522
 
<p>References <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a4f128e06425202bbc1971bf000ae2ab1">mpm_session_init()</a>.</p>
523
 
 
524
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#afe28f63dd454143cf60ae816d86c65dc">cache_pull()</a>.</p>
525
 
 
526
 
</div>
527
 
</div>
528
 
<a class="anchor" id="a1094dee68b57146db1607a2c34753407"></a>
529
 
<div class="memitem">
530
 
<div class="memproto">
531
 
<table class="mlabels">
532
 
  <tr>
533
 
  <td class="mlabels-left">
534
 
      <table class="memname">
535
 
        <tr>
536
 
          <td class="memname">static NTSTATUS cache_pull_Release </td>
537
 
          <td>(</td>
538
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
539
 
          <td class="paramname"><em>dce_call</em>, </td>
540
 
        </tr>
541
 
        <tr>
542
 
          <td class="paramkey"></td>
543
 
          <td></td>
544
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
545
 
          <td class="paramname"><em>EcDoRpc</em>, </td>
546
 
        </tr>
547
 
        <tr>
548
 
          <td class="paramkey"></td>
549
 
          <td></td>
550
 
          <td class="paramtype">uint32_t&#160;</td>
551
 
          <td class="paramname"><em>handle_idx</em>&#160;</td>
552
 
        </tr>
553
 
        <tr>
554
 
          <td></td>
555
 
          <td>)</td>
556
 
          <td></td><td></td>
557
 
        </tr>
558
 
      </table>
559
 
  </td>
560
 
  <td class="mlabels-right">
561
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
562
 
  </tr>
563
 
</table>
564
 
</div><div class="memdoc">
565
 
<p>Track down Release calls and update the mpm_cache global list - removing associated entries.</p>
566
 
<p>This function recursively remove child entries whenever necessary.</p>
567
 
<dl class="params"><dt>Parameters</dt><dd>
568
 
  <table class="params">
569
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
570
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the EcDoRpc operation </td></tr>
571
 
    <tr><td class="paramname">handle_idx</td><td>the handle to track down</td></tr>
572
 
  </table>
573
 
  </dd>
574
 
</dl>
575
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
576
 
 
577
 
<p>References <a class="el" href="mpm__cache__stream_8c.html#a724182ad6610fe42a5667ffa389a4b06">mpm_cache_stream_close()</a>, <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a012505f633c42b3bef76acb3101e9c2d">mpm_session_release()</a>.</p>
578
 
 
579
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#afe28f63dd454143cf60ae816d86c65dc">cache_pull()</a>.</p>
580
 
 
581
 
</div>
582
 
</div>
583
 
<a class="anchor" id="a97cf4f171b4d1a84fbf4da19605fb820"></a>
584
 
<div class="memitem">
585
 
<div class="memproto">
586
 
<table class="mlabels">
587
 
  <tr>
588
 
  <td class="mlabels-left">
589
 
      <table class="memname">
590
 
        <tr>
591
 
          <td class="memname">static NTSTATUS cache_push </td>
592
 
          <td>(</td>
593
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
594
 
          <td class="paramname"><em>dce_call</em>, </td>
595
 
        </tr>
596
 
        <tr>
597
 
          <td class="paramkey"></td>
598
 
          <td></td>
599
 
          <td class="paramtype">TALLOC_CTX *&#160;</td>
600
 
          <td class="paramname"><em>mem_ctx</em>, </td>
601
 
        </tr>
602
 
        <tr>
603
 
          <td class="paramkey"></td>
604
 
          <td></td>
605
 
          <td class="paramtype">void *&#160;</td>
606
 
          <td class="paramname"><em>r</em>&#160;</td>
607
 
        </tr>
608
 
        <tr>
609
 
          <td></td>
610
 
          <td>)</td>
611
 
          <td></td><td></td>
612
 
        </tr>
613
 
      </table>
614
 
  </td>
615
 
  <td class="mlabels-right">
616
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
617
 
  </tr>
618
 
</table>
619
 
</div><div class="memdoc">
620
 
<p>Analyze EcDoRpc MAPI responses</p>
621
 
<p>This function loops over EcDoRpc MAPI calls and search for the opnums required by the cache module to monitor Stream traffic properly.</p>
622
 
<dl class="params"><dt>Parameters</dt><dd>
623
 
  <table class="params">
624
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
625
 
    <tr><td class="paramname">mem_ctx</td><td>the memory context </td></tr>
626
 
    <tr><td class="paramname">r</td><td>generic pointer on EcDoRpc operation</td></tr>
627
 
  </table>
628
 
  </dd>
629
 
</dl>
630
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
631
 
 
632
 
<p>References <a class="el" href="mpm__cache_8c.html#a343229637fac85431053d3a3fbce7568">cache_find_call_request_index()</a>, <a class="el" href="mpm__cache_8c.html#a070020d672d3850ca02df7fc92ab40d1">cache_push_OpenAttach()</a>, <a class="el" href="mpm__cache_8c.html#ab9d8132ba3576f237182f28bef9a9823">cache_push_OpenMessage()</a>, <a class="el" href="mpm__cache_8c.html#a72233358ee75eb93e39e50320980cc89">cache_push_OpenStream()</a>, and <a class="el" href="mpm__cache_8c.html#a50fabb5b2ee2552ee0410557e5f816ee">cache_push_ReadStream()</a>.</p>
633
 
 
634
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#ab1730cf1108b8fda2c0d0a25b3a5133e">samba_init_module()</a>.</p>
635
 
 
636
 
</div>
637
 
</div>
638
 
<a class="anchor" id="a070020d672d3850ca02df7fc92ab40d1"></a>
639
 
<div class="memitem">
640
 
<div class="memproto">
641
 
<table class="mlabels">
642
 
  <tr>
643
 
  <td class="mlabels-left">
644
 
      <table class="memname">
645
 
        <tr>
646
 
          <td class="memname">static NTSTATUS cache_push_OpenAttach </td>
647
 
          <td>(</td>
648
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
649
 
          <td class="paramname"><em>dce_call</em>, </td>
650
 
        </tr>
651
 
        <tr>
652
 
          <td class="paramkey"></td>
653
 
          <td></td>
654
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ&#160;</td>
655
 
          <td class="paramname"><em>mapi_req</em>, </td>
656
 
        </tr>
657
 
        <tr>
658
 
          <td class="paramkey"></td>
659
 
          <td></td>
660
 
          <td class="paramtype">struct EcDoRpc_MAPI_REPL&#160;</td>
661
 
          <td class="paramname"><em>mapi_repl</em>, </td>
662
 
        </tr>
663
 
        <tr>
664
 
          <td class="paramkey"></td>
665
 
          <td></td>
666
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
667
 
          <td class="paramname"><em>EcDoRpc</em>&#160;</td>
668
 
        </tr>
669
 
        <tr>
670
 
          <td></td>
671
 
          <td>)</td>
672
 
          <td></td><td></td>
673
 
        </tr>
674
 
      </table>
675
 
  </td>
676
 
  <td class="mlabels-right">
677
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
678
 
  </tr>
679
 
</table>
680
 
</div><div class="memdoc">
681
 
<p>Monitor OpenAttach replies and store OpenAttach MAPI handle.</p>
682
 
<p>This is the second step for attachment registration:</p>
683
 
<p>Seek for a given parent_handle/attachmentID in the mpm_attachments list.</p>
684
 
<p>if a match is found (expected) and MAPI retval is set to MAPI_E_SUCCESS, update the handle parameter for the element and commit this attachment in the tdb store.</p>
685
 
<p>If retval is different from MAPI_E_SUCCESS, then delete the element.</p>
686
 
<dl class="params"><dt>Parameters</dt><dd>
687
 
  <table class="params">
688
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
689
 
    <tr><td class="paramname">mapi_req</td><td>reference to the OpenAttach request entry </td></tr>
690
 
    <tr><td class="paramname">mapi_repl</td><td>reference to the OpenAttach MAPI response entry </td></tr>
691
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the current EcDoRpc operation</td></tr>
692
 
  </table>
693
 
  </dd>
694
 
</dl>
695
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
696
 
 
697
 
<p>References <a class="el" href="mpm__cache__ldb_8c.html#a8904cd5afe0afdc51b6dbde0969c4d07">mpm_cache_ldb_add_attachment()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>.</p>
698
 
 
699
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push()</a>.</p>
700
 
 
701
 
</div>
702
 
</div>
703
 
<a class="anchor" id="ab9d8132ba3576f237182f28bef9a9823"></a>
704
 
<div class="memitem">
705
 
<div class="memproto">
706
 
<table class="mlabels">
707
 
  <tr>
708
 
  <td class="mlabels-left">
709
 
      <table class="memname">
710
 
        <tr>
711
 
          <td class="memname">static NTSTATUS cache_push_OpenMessage </td>
712
 
          <td>(</td>
713
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
714
 
          <td class="paramname"><em>dce_call</em>, </td>
715
 
        </tr>
716
 
        <tr>
717
 
          <td class="paramkey"></td>
718
 
          <td></td>
719
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ&#160;</td>
720
 
          <td class="paramname"><em>mapi_req</em>, </td>
721
 
        </tr>
722
 
        <tr>
723
 
          <td class="paramkey"></td>
724
 
          <td></td>
725
 
          <td class="paramtype">struct EcDoRpc_MAPI_REPL&#160;</td>
726
 
          <td class="paramname"><em>mapi_repl</em>, </td>
727
 
        </tr>
728
 
        <tr>
729
 
          <td class="paramkey"></td>
730
 
          <td></td>
731
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
732
 
          <td class="paramname"><em>EcDoRpc</em>&#160;</td>
733
 
        </tr>
734
 
        <tr>
735
 
          <td></td>
736
 
          <td>)</td>
737
 
          <td></td><td></td>
738
 
        </tr>
739
 
      </table>
740
 
  </td>
741
 
  <td class="mlabels-right">
742
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
743
 
  </tr>
744
 
</table>
745
 
</div><div class="memdoc">
746
 
<p>Monitor OpenMessage replies and store OpenMessage MAPI handle.</p>
747
 
<p>This is the second step for message registration:</p>
748
 
<p>Seek for a given FolderId/MessageId in the mpm_message list</p>
749
 
<p>If a match is found (expected) and MAPI retval is set to MAPI_E_SUCCESS, update the handle field for the element and commit this message in the tdb store.</p>
750
 
<p>If retval is different from MAPI_E_SUCCESS, then delete the record</p>
751
 
<dl class="params"><dt>Parameters</dt><dd>
752
 
  <table class="params">
753
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
754
 
    <tr><td class="paramname">mapi_req</td><td>reference to the OpenMessage MAPI request entry </td></tr>
755
 
    <tr><td class="paramname">mapi_repl</td><td>reference to the OpenMessage MAPI response entry </td></tr>
756
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the current EcDoRpc operation</td></tr>
757
 
  </table>
758
 
  </dd>
759
 
</dl>
760
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
761
 
 
762
 
<p>References <a class="el" href="mpm__cache__ldb_8c.html#ab48c2b5474f93ac2e5b8479b48b9f24e">mpm_cache_ldb_add_message()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>.</p>
763
 
 
764
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push()</a>.</p>
765
 
 
766
 
</div>
767
 
</div>
768
 
<a class="anchor" id="a72233358ee75eb93e39e50320980cc89"></a>
769
 
<div class="memitem">
770
 
<div class="memproto">
771
 
<table class="mlabels">
772
 
  <tr>
773
 
  <td class="mlabels-left">
774
 
      <table class="memname">
775
 
        <tr>
776
 
          <td class="memname">static NTSTATUS cache_push_OpenStream </td>
777
 
          <td>(</td>
778
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
779
 
          <td class="paramname"><em>dce_call</em>, </td>
780
 
        </tr>
781
 
        <tr>
782
 
          <td class="paramkey"></td>
783
 
          <td></td>
784
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ&#160;</td>
785
 
          <td class="paramname"><em>mapi_req</em>, </td>
786
 
        </tr>
787
 
        <tr>
788
 
          <td class="paramkey"></td>
789
 
          <td></td>
790
 
          <td class="paramtype">struct EcDoRpc_MAPI_REPL&#160;</td>
791
 
          <td class="paramname"><em>mapi_repl</em>, </td>
792
 
        </tr>
793
 
        <tr>
794
 
          <td class="paramkey"></td>
795
 
          <td></td>
796
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
797
 
          <td class="paramname"><em>EcDoRpc</em>&#160;</td>
798
 
        </tr>
799
 
        <tr>
800
 
          <td></td>
801
 
          <td>)</td>
802
 
          <td></td><td></td>
803
 
        </tr>
804
 
      </table>
805
 
  </td>
806
 
  <td class="mlabels-right">
807
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
808
 
  </tr>
809
 
</table>
810
 
</div><div class="memdoc">
811
 
<p>Monitor OpenStream replies and store the OpenStream MAPI handle.</p>
812
 
<p>This is the second step for stream registration:</p>
813
 
<p>Seek the parent_handle/PropertyTag couple in the mpm_streams list.</p>
814
 
<p>If a match is found (expected) and MAPI retval is set to MAPI_E_SUCCESS, update the handle field and StreamSize parameters for the element and commit this stream in the tdb store.</p>
815
 
<p>If retval is different from MAPI_E_SUCCESS, then delete the element.</p>
816
 
<dl class="params"><dt>Parameters</dt><dd>
817
 
  <table class="params">
818
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
819
 
    <tr><td class="paramname">mapi_req</td><td>reference to the OpenStream MAPI request entry </td></tr>
820
 
    <tr><td class="paramname">mapi_repl</td><td>reference to the OpenStream MAPI response entry </td></tr>
821
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the current EcDoRpc operation</td></tr>
822
 
  </table>
823
 
  </dd>
824
 
</dl>
825
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK </dd></dl>
826
 
 
827
 
<p>References <a class="el" href="mpm__cache__ldb_8c.html#adc33f2a14113997d485ed48e4375f1d1">mpm_cache_ldb_add_stream()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>.</p>
828
 
 
829
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push()</a>.</p>
830
 
 
831
 
</div>
832
 
</div>
833
 
<a class="anchor" id="a50fabb5b2ee2552ee0410557e5f816ee"></a>
834
 
<div class="memitem">
835
 
<div class="memproto">
836
 
<table class="mlabels">
837
 
  <tr>
838
 
  <td class="mlabels-left">
839
 
      <table class="memname">
840
 
        <tr>
841
 
          <td class="memname">static NTSTATUS cache_push_ReadStream </td>
842
 
          <td>(</td>
843
 
          <td class="paramtype">struct dcesrv_call_state *&#160;</td>
844
 
          <td class="paramname"><em>dce_call</em>, </td>
845
 
        </tr>
846
 
        <tr>
847
 
          <td class="paramkey"></td>
848
 
          <td></td>
849
 
          <td class="paramtype">struct EcDoRpc_MAPI_REQ&#160;</td>
850
 
          <td class="paramname"><em>mapi_req</em>, </td>
851
 
        </tr>
852
 
        <tr>
853
 
          <td class="paramkey"></td>
854
 
          <td></td>
855
 
          <td class="paramtype">struct EcDoRpc_MAPI_REPL&#160;</td>
856
 
          <td class="paramname"><em>mapi_repl</em>, </td>
857
 
        </tr>
858
 
        <tr>
859
 
          <td class="paramkey"></td>
860
 
          <td></td>
861
 
          <td class="paramtype">struct EcDoRpc *&#160;</td>
862
 
          <td class="paramname"><em>EcDoRpc</em>&#160;</td>
863
 
        </tr>
864
 
        <tr>
865
 
          <td></td>
866
 
          <td>)</td>
867
 
          <td></td><td></td>
868
 
        </tr>
869
 
      </table>
870
 
  </td>
871
 
  <td class="mlabels-right">
872
 
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
873
 
  </tr>
874
 
</table>
875
 
</div><div class="memdoc">
876
 
<p>Monitor ReadStream replies.</p>
877
 
<p>This function writes ReadStream data received from remote server and associated to messages or attachments to the opened associated file. This function only writes data if the file is not already cached, otherwise it just returns.</p>
878
 
<dl class="params"><dt>Parameters</dt><dd>
879
 
  <table class="params">
880
 
    <tr><td class="paramname">dce_call</td><td>pointer to the session context </td></tr>
881
 
    <tr><td class="paramname">mapi_req</td><td>reference to the ReadStream MAPI request </td></tr>
882
 
    <tr><td class="paramname">mapi_repl</td><td>reference to the ReadStream MAPI reply </td></tr>
883
 
    <tr><td class="paramname">EcDoRpc</td><td>pointer to the current EcDoRpc operation</td></tr>
884
 
  </table>
885
 
  </dd>
886
 
</dl>
887
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK</dd></dl>
888
 
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="mpm__cache_8c.html#a9bb6adf0b5f931b4ae40ccad991e8413">cache_dispatch</a> </dd></dl>
889
 
 
890
 
<p>References <a class="el" href="mpm__cache_8c.html#aac46f4aa8bbafcc2e6b840e94f136741">cache_dump_stream_stat()</a>, <a class="el" href="mpm__cache_8c.html#ac7834a5d736527505f5236e1fd51e77c">cache_exec_sync_cmd()</a>, <a class="el" href="mpm__cache__stream_8c.html#a6e6b36fee79d3f8505f2fdaa0ad994ba">mpm_cache_stream_write()</a>, and <a class="el" href="dcesrv__mapiproxy__session_8c.html#a27de5ee88fd54850ea413e20774029b0">mpm_session_cmp()</a>.</p>
891
 
 
892
 
<p>Referenced by <a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push()</a>.</p>
893
 
 
894
 
</div>
895
 
</div>
896
 
<a class="anchor" id="ab1730cf1108b8fda2c0d0a25b3a5133e"></a>
897
 
<div class="memitem">
898
 
<div class="memproto">
899
 
      <table class="memname">
900
 
        <tr>
901
 
          <td class="memname">NTSTATUS samba_init_module </td>
902
 
          <td>(</td>
903
 
          <td class="paramtype">void&#160;</td>
904
 
          <td class="paramname"></td><td>)</td>
905
 
          <td></td>
906
 
        </tr>
907
 
      </table>
908
 
</div><div class="memdoc">
909
 
<p>Entry point for the cache mapiproxy module</p>
910
 
<dl class="section return"><dt>Returns</dt><dd>NT_STATUS_OK on success, otherwise NTSTATUS error </dd></dl>
911
 
 
912
 
<p>References <a class="el" href="mpm__cache_8c.html#a9bb6adf0b5f931b4ae40ccad991e8413">cache_dispatch()</a>, <a class="el" href="mpm__cache_8c.html#a99a578fd0130e064c931b1bb52efa57c">cache_init()</a>, <a class="el" href="mpm__cache_8c.html#afe28f63dd454143cf60ae816d86c65dc">cache_pull()</a>, and <a class="el" href="mpm__cache_8c.html#a97cf4f171b4d1a84fbf4da19605fb820">cache_push()</a>.</p>
913
 
 
914
 
</div>
915
 
</div>
916
 
</div><!-- contents -->
917
 
</div>
918
 
<br/>
919
 
<table style="clear:both; margin: 0.5em auto; width:80%; text-align: center; background-color:#f8f8f8; border:2px solid #e0e0e0; padding:5px;">
920
 
<tr>
921
 
<td> 
922
 
  <img alt="Creative Commons License" src="CC_SomeRightsReserved.png" width="90" height="30" border="0" /><br />
923
 
  <img alt="Creative Commons Attribution icon" src="24px-Cc-by_white.svg.png" width="24" height="24" border="0" />
924
 
  <img alt="Creative Commons Share Alike icon" src="24px-Cc-sa_white.svg.png" width="24" height="24" border="0" />
925
 
</td>
926
 
<td> <i><strong class="selflink">This content</strong> is licensed under the Creative Commons<br />
927
 
Attribution ShareAlike License v. 3.0:<br />
928
 
<a href="http://creativecommons.org/licenses/by-sa/3.0/" class="external free" title="http://creativecommons.org/licenses/by-sa/3.0/" rel="nofollow">http://creativecommons.org/licenses/by-sa/3.0/</a></i>
929
 
</td></tr></table>
930
 
<br/>
931
 
</div>
932
 
</div>
933
 
</body>
934
 
</html>