~lefteris-nikoltsios/+junk/samba-lp1016895

« back to all changes in this revision

Viewing changes to source3/librpc/gen_ndr/ndr_trkwks_c.c

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2011-12-21 13:18:04 UTC
  • mfrom: (0.39.21 sid)
  • Revision ID: package-import@ubuntu.com-20111221131804-xtlr39wx6njehxxr
Tags: 2:3.6.1-3ubuntu1
* Merge from Debian testing.  Remaining changes:
  + debian/patches/VERSION.patch:
    - set SAMBA_VERSION_SUFFIX to Ubuntu.
  + debian/patches/error-trans.fix-276472:
    - Add the translation of Unix Error code -ENOTSUP to NT Error Code
    - NT_STATUS_NOT_SUPPORTED to prevent the Permission denied error.
  + debian/smb.conf:
    - add "(Samba, Ubuntu)" to server string.
    - comment out the default [homes] share, and add a comment about
      "valid users = %S" to show users how to restrict access to
      \\server\username to only username.
    - Set 'usershare allow guests', so that usershare admins are 
      allowed to create public shares in addition to authenticated
      ones.
    - add map to guest = Bad user, maps bad username to guest access.
  + debian/samba-common.config:
    - Do not change priority to high if dhclient3 is installed.
    - Use priority medium instead of high for the workgroup question.
  + debian/control:
    - Don't build against or suggest ctdb.
    - Add dependency on samba-common-bin to samba.
  + Add ufw integration:
    - Created debian/samba.ufw.profile
    - debian/rules, debian/samba.dirs, debian/samba.files: install
      profile
    - debian/control: have samba suggest ufw
  + Add apport hook:
    - Created debian/source_samba.py.
    - debian/rules, debian/samba.dirs, debian/samba-common-bin.files: install
  + Switch to upstart:
    - Add debian/samba.{nmbd,smbd}.upstart.
  + debian/samba.logrotate, debian/samba-common.dhcp, debian/samba.if-up:
    - Make them upstart compatible
  + debian/samba.postinst: 
    - Avoid scary pdbedit warnings on first import.
  + debian/samba-common.postinst: Add more informative error message for
    the case where smb.conf was manually deleted
  + debian/patches/fix-debuglevel-name-conflict.patch: don't use 'debug_level'
    as a global variable name in an NSS module 
  + Dropped:
    - debian/patches/error-trans.fix-276472
    - debian/patches/fix-debuglevel-name-conflict.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* client functions auto-generated by pidl */
 
2
 
 
3
#include "includes.h"
 
4
#include <tevent.h>
 
5
#include "lib/util/tevent_ntstatus.h"
 
6
#include "librpc/gen_ndr/ndr_trkwks.h"
 
7
#include "librpc/gen_ndr/ndr_trkwks_c.h"
 
8
 
 
9
/* trkwks - client functions generated by pidl */
 
10
 
 
11
struct dcerpc_trkwks_Unknown0_r_state {
 
12
        TALLOC_CTX *out_mem_ctx;
 
13
};
 
14
 
 
15
static void dcerpc_trkwks_Unknown0_r_done(struct tevent_req *subreq);
 
16
 
 
17
struct tevent_req *dcerpc_trkwks_Unknown0_r_send(TALLOC_CTX *mem_ctx,
 
18
        struct tevent_context *ev,
 
19
        struct dcerpc_binding_handle *h,
 
20
        struct trkwks_Unknown0 *r)
 
21
{
 
22
        struct tevent_req *req;
 
23
        struct dcerpc_trkwks_Unknown0_r_state *state;
 
24
        struct tevent_req *subreq;
 
25
 
 
26
        req = tevent_req_create(mem_ctx, &state,
 
27
                                struct dcerpc_trkwks_Unknown0_r_state);
 
28
        if (req == NULL) {
 
29
                return NULL;
 
30
        }
 
31
 
 
32
        state->out_mem_ctx = NULL;
 
33
 
 
34
        subreq = dcerpc_binding_handle_call_send(state, ev, h,
 
35
                        NULL, &ndr_table_trkwks,
 
36
                        NDR_TRKWKS_UNKNOWN0, state, r);
 
37
        if (tevent_req_nomem(subreq, req)) {
 
38
                return tevent_req_post(req, ev);
 
39
        }
 
40
        tevent_req_set_callback(subreq, dcerpc_trkwks_Unknown0_r_done, req);
 
41
 
 
42
        return req;
 
43
}
 
44
 
 
45
static void dcerpc_trkwks_Unknown0_r_done(struct tevent_req *subreq)
 
46
{
 
47
        struct tevent_req *req =
 
48
                tevent_req_callback_data(subreq,
 
49
                struct tevent_req);
 
50
        NTSTATUS status;
 
51
 
 
52
        status = dcerpc_binding_handle_call_recv(subreq);
 
53
        if (!NT_STATUS_IS_OK(status)) {
 
54
                tevent_req_nterror(req, status);
 
55
                return;
 
56
        }
 
57
 
 
58
        tevent_req_done(req);
 
59
}
 
60
 
 
61
NTSTATUS dcerpc_trkwks_Unknown0_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
 
62
{
 
63
        struct dcerpc_trkwks_Unknown0_r_state *state =
 
64
                tevent_req_data(req,
 
65
                struct dcerpc_trkwks_Unknown0_r_state);
 
66
        NTSTATUS status;
 
67
 
 
68
        if (tevent_req_is_nterror(req, &status)) {
 
69
                tevent_req_received(req);
 
70
                return status;
 
71
        }
 
72
 
 
73
        talloc_steal(mem_ctx, state->out_mem_ctx);
 
74
 
 
75
        tevent_req_received(req);
 
76
        return NT_STATUS_OK;
 
77
}
 
78
 
 
79
NTSTATUS dcerpc_trkwks_Unknown0_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct trkwks_Unknown0 *r)
 
80
{
 
81
        NTSTATUS status;
 
82
 
 
83
        status = dcerpc_binding_handle_call(h,
 
84
                        NULL, &ndr_table_trkwks,
 
85
                        NDR_TRKWKS_UNKNOWN0, mem_ctx, r);
 
86
 
 
87
        return status;
 
88
}
 
89
 
 
90
struct dcerpc_trkwks_Unknown0_state {
 
91
        struct trkwks_Unknown0 orig;
 
92
        struct trkwks_Unknown0 tmp;
 
93
        TALLOC_CTX *out_mem_ctx;
 
94
};
 
95
 
 
96
static void dcerpc_trkwks_Unknown0_done(struct tevent_req *subreq);
 
97
 
 
98
struct tevent_req *dcerpc_trkwks_Unknown0_send(TALLOC_CTX *mem_ctx,
 
99
                                               struct tevent_context *ev,
 
100
                                               struct dcerpc_binding_handle *h)
 
101
{
 
102
        struct tevent_req *req;
 
103
        struct dcerpc_trkwks_Unknown0_state *state;
 
104
        struct tevent_req *subreq;
 
105
 
 
106
        req = tevent_req_create(mem_ctx, &state,
 
107
                                struct dcerpc_trkwks_Unknown0_state);
 
108
        if (req == NULL) {
 
109
                return NULL;
 
110
        }
 
111
        state->out_mem_ctx = NULL;
 
112
 
 
113
        /* In parameters */
 
114
 
 
115
        /* Out parameters */
 
116
 
 
117
        /* Result */
 
118
        ZERO_STRUCT(state->orig.out.result);
 
119
 
 
120
        /* make a temporary copy, that we pass to the dispatch function */
 
121
        state->tmp = state->orig;
 
122
 
 
123
        subreq = dcerpc_trkwks_Unknown0_r_send(state, ev, h, &state->tmp);
 
124
        if (tevent_req_nomem(subreq, req)) {
 
125
                return tevent_req_post(req, ev);
 
126
        }
 
127
        tevent_req_set_callback(subreq, dcerpc_trkwks_Unknown0_done, req);
 
128
        return req;
 
129
}
 
130
 
 
131
static void dcerpc_trkwks_Unknown0_done(struct tevent_req *subreq)
 
132
{
 
133
        struct tevent_req *req = tevent_req_callback_data(
 
134
                subreq, struct tevent_req);
 
135
        struct dcerpc_trkwks_Unknown0_state *state = tevent_req_data(
 
136
                req, struct dcerpc_trkwks_Unknown0_state);
 
137
        NTSTATUS status;
 
138
        TALLOC_CTX *mem_ctx;
 
139
 
 
140
        if (state->out_mem_ctx) {
 
141
                mem_ctx = state->out_mem_ctx;
 
142
        } else {
 
143
                mem_ctx = state;
 
144
        }
 
145
 
 
146
        status = dcerpc_trkwks_Unknown0_r_recv(subreq, mem_ctx);
 
147
        TALLOC_FREE(subreq);
 
148
        if (!NT_STATUS_IS_OK(status)) {
 
149
                tevent_req_nterror(req, status);
 
150
                return;
 
151
        }
 
152
 
 
153
        /* Copy out parameters */
 
154
 
 
155
        /* Copy result */
 
156
        state->orig.out.result = state->tmp.out.result;
 
157
 
 
158
        /* Reset temporary structure */
 
159
        ZERO_STRUCT(state->tmp);
 
160
 
 
161
        tevent_req_done(req);
 
162
}
 
163
 
 
164
NTSTATUS dcerpc_trkwks_Unknown0_recv(struct tevent_req *req,
 
165
                                     TALLOC_CTX *mem_ctx,
 
166
                                     WERROR *result)
 
167
{
 
168
        struct dcerpc_trkwks_Unknown0_state *state = tevent_req_data(
 
169
                req, struct dcerpc_trkwks_Unknown0_state);
 
170
        NTSTATUS status;
 
171
 
 
172
        if (tevent_req_is_nterror(req, &status)) {
 
173
                tevent_req_received(req);
 
174
                return status;
 
175
        }
 
176
 
 
177
        /* Steal possible out parameters to the callers context */
 
178
        talloc_steal(mem_ctx, state->out_mem_ctx);
 
179
 
 
180
        /* Return result */
 
181
        *result = state->orig.out.result;
 
182
 
 
183
        tevent_req_received(req);
 
184
        return NT_STATUS_OK;
 
185
}
 
186
 
 
187
NTSTATUS dcerpc_trkwks_Unknown0(struct dcerpc_binding_handle *h,
 
188
                                TALLOC_CTX *mem_ctx,
 
189
                                WERROR *result)
 
190
{
 
191
        struct trkwks_Unknown0 r;
 
192
        NTSTATUS status;
 
193
 
 
194
        /* In parameters */
 
195
 
 
196
        status = dcerpc_trkwks_Unknown0_r(h, mem_ctx, &r);
 
197
        if (!NT_STATUS_IS_OK(status)) {
 
198
                return status;
 
199
        }
 
200
 
 
201
        /* Return variables */
 
202
 
 
203
        /* Return result */
 
204
        *result = r.out.result;
 
205
 
 
206
        return NT_STATUS_OK;
 
207
}
 
208