00001
00002
00003
00004
00005
00006 #include "includes.h"
00007 #include "nterr.h"
00008
00009 #undef DBGC_CLASS
00010 #define DBGC_CLASS DBGC_RPC
00011
00012
00013
00014
00015
00016 static BOOL api_dfs_GetManagerVersion(pipes_struct *p)
00017 {
00018 NETDFS_Q_DFS_GETMANAGERVERSION q_u;
00019 NETDFS_R_DFS_GETMANAGERVERSION r_u;
00020 prs_struct *data = &p->in_data.data;
00021 prs_struct *rdata = &p->out_data.rdata;
00022
00023 ZERO_STRUCT(q_u);
00024 ZERO_STRUCT(r_u);
00025
00026 if (!netdfs_io_q_dfs_GetManagerVersion("", &q_u, data, 0))
00027 return False;
00028
00029 _dfs_GetManagerVersion(p, &q_u, &r_u);
00030
00031 if (!netdfs_io_r_dfs_GetManagerVersion("", &r_u, rdata, 0))
00032 return False;
00033
00034 return True;
00035 }
00036
00037
00038
00039
00040 static BOOL api_dfs_Add(pipes_struct *p)
00041 {
00042 NETDFS_Q_DFS_ADD q_u;
00043 NETDFS_R_DFS_ADD r_u;
00044 prs_struct *data = &p->in_data.data;
00045 prs_struct *rdata = &p->out_data.rdata;
00046
00047 ZERO_STRUCT(q_u);
00048 ZERO_STRUCT(r_u);
00049
00050 if (!netdfs_io_q_dfs_Add("", &q_u, data, 0))
00051 return False;
00052
00053 r_u.status = _dfs_Add(p, &q_u, &r_u);
00054
00055 if (!netdfs_io_r_dfs_Add("", &r_u, rdata, 0))
00056 return False;
00057
00058 return True;
00059 }
00060
00061
00062
00063
00064 static BOOL api_dfs_Remove(pipes_struct *p)
00065 {
00066 NETDFS_Q_DFS_REMOVE q_u;
00067 NETDFS_R_DFS_REMOVE r_u;
00068 prs_struct *data = &p->in_data.data;
00069 prs_struct *rdata = &p->out_data.rdata;
00070
00071 ZERO_STRUCT(q_u);
00072 ZERO_STRUCT(r_u);
00073
00074 if (!netdfs_io_q_dfs_Remove("", &q_u, data, 0))
00075 return False;
00076
00077 r_u.status = _dfs_Remove(p, &q_u, &r_u);
00078
00079 if (!netdfs_io_r_dfs_Remove("", &r_u, rdata, 0))
00080 return False;
00081
00082 return True;
00083 }
00084
00085
00086
00087
00088 static BOOL api_dfs_SetInfo(pipes_struct *p)
00089 {
00090 NETDFS_Q_DFS_SETINFO q_u;
00091 NETDFS_R_DFS_SETINFO r_u;
00092 prs_struct *data = &p->in_data.data;
00093 prs_struct *rdata = &p->out_data.rdata;
00094
00095 ZERO_STRUCT(q_u);
00096 ZERO_STRUCT(r_u);
00097
00098 if (!netdfs_io_q_dfs_SetInfo("", &q_u, data, 0))
00099 return False;
00100
00101 r_u.status = _dfs_SetInfo(p, &q_u, &r_u);
00102
00103 if (!netdfs_io_r_dfs_SetInfo("", &r_u, rdata, 0))
00104 return False;
00105
00106 return True;
00107 }
00108
00109
00110
00111
00112 static BOOL api_dfs_GetInfo(pipes_struct *p)
00113 {
00114 NETDFS_Q_DFS_GETINFO q_u;
00115 NETDFS_R_DFS_GETINFO r_u;
00116 prs_struct *data = &p->in_data.data;
00117 prs_struct *rdata = &p->out_data.rdata;
00118
00119 ZERO_STRUCT(q_u);
00120 ZERO_STRUCT(r_u);
00121
00122 if (!netdfs_io_q_dfs_GetInfo("", &q_u, data, 0))
00123 return False;
00124
00125 r_u.status = _dfs_GetInfo(p, &q_u, &r_u);
00126
00127 if (!netdfs_io_r_dfs_GetInfo("", &r_u, rdata, 0))
00128 return False;
00129
00130 return True;
00131 }
00132
00133
00134
00135
00136 static BOOL api_dfs_Enum(pipes_struct *p)
00137 {
00138 NETDFS_Q_DFS_ENUM q_u;
00139 NETDFS_R_DFS_ENUM r_u;
00140 prs_struct *data = &p->in_data.data;
00141 prs_struct *rdata = &p->out_data.rdata;
00142
00143 ZERO_STRUCT(q_u);
00144 ZERO_STRUCT(r_u);
00145
00146 if (!netdfs_io_q_dfs_Enum("", &q_u, data, 0))
00147 return False;
00148
00149 r_u.status = _dfs_Enum(p, &q_u, &r_u);
00150
00151 if (!netdfs_io_r_dfs_Enum("", &r_u, rdata, 0))
00152 return False;
00153
00154 return True;
00155 }
00156
00157
00158
00159
00160 static BOOL api_dfs_Rename(pipes_struct *p)
00161 {
00162 NETDFS_Q_DFS_RENAME q_u;
00163 NETDFS_R_DFS_RENAME r_u;
00164 prs_struct *data = &p->in_data.data;
00165 prs_struct *rdata = &p->out_data.rdata;
00166
00167 ZERO_STRUCT(q_u);
00168 ZERO_STRUCT(r_u);
00169
00170 if (!netdfs_io_q_dfs_Rename("", &q_u, data, 0))
00171 return False;
00172
00173 r_u.status = _dfs_Rename(p, &q_u, &r_u);
00174
00175 if (!netdfs_io_r_dfs_Rename("", &r_u, rdata, 0))
00176 return False;
00177
00178 return True;
00179 }
00180
00181
00182
00183
00184 static BOOL api_dfs_Move(pipes_struct *p)
00185 {
00186 NETDFS_Q_DFS_MOVE q_u;
00187 NETDFS_R_DFS_MOVE r_u;
00188 prs_struct *data = &p->in_data.data;
00189 prs_struct *rdata = &p->out_data.rdata;
00190
00191 ZERO_STRUCT(q_u);
00192 ZERO_STRUCT(r_u);
00193
00194 if (!netdfs_io_q_dfs_Move("", &q_u, data, 0))
00195 return False;
00196
00197 r_u.status = _dfs_Move(p, &q_u, &r_u);
00198
00199 if (!netdfs_io_r_dfs_Move("", &r_u, rdata, 0))
00200 return False;
00201
00202 return True;
00203 }
00204
00205
00206
00207
00208 static BOOL api_dfs_ManagerGetConfigInfo(pipes_struct *p)
00209 {
00210 NETDFS_Q_DFS_MANAGERGETCONFIGINFO q_u;
00211 NETDFS_R_DFS_MANAGERGETCONFIGINFO r_u;
00212 prs_struct *data = &p->in_data.data;
00213 prs_struct *rdata = &p->out_data.rdata;
00214
00215 ZERO_STRUCT(q_u);
00216 ZERO_STRUCT(r_u);
00217
00218 if (!netdfs_io_q_dfs_ManagerGetConfigInfo("", &q_u, data, 0))
00219 return False;
00220
00221 r_u.status = _dfs_ManagerGetConfigInfo(p, &q_u, &r_u);
00222
00223 if (!netdfs_io_r_dfs_ManagerGetConfigInfo("", &r_u, rdata, 0))
00224 return False;
00225
00226 return True;
00227 }
00228
00229
00230
00231
00232 static BOOL api_dfs_ManagerSendSiteInfo(pipes_struct *p)
00233 {
00234 NETDFS_Q_DFS_MANAGERSENDSITEINFO q_u;
00235 NETDFS_R_DFS_MANAGERSENDSITEINFO r_u;
00236 prs_struct *data = &p->in_data.data;
00237 prs_struct *rdata = &p->out_data.rdata;
00238
00239 ZERO_STRUCT(q_u);
00240 ZERO_STRUCT(r_u);
00241
00242 if (!netdfs_io_q_dfs_ManagerSendSiteInfo("", &q_u, data, 0))
00243 return False;
00244
00245 r_u.status = _dfs_ManagerSendSiteInfo(p, &q_u, &r_u);
00246
00247 if (!netdfs_io_r_dfs_ManagerSendSiteInfo("", &r_u, rdata, 0))
00248 return False;
00249
00250 return True;
00251 }
00252
00253
00254
00255
00256 static BOOL api_dfs_AddFtRoot(pipes_struct *p)
00257 {
00258 NETDFS_Q_DFS_ADDFTROOT q_u;
00259 NETDFS_R_DFS_ADDFTROOT r_u;
00260 prs_struct *data = &p->in_data.data;
00261 prs_struct *rdata = &p->out_data.rdata;
00262
00263 ZERO_STRUCT(q_u);
00264 ZERO_STRUCT(r_u);
00265
00266 if (!netdfs_io_q_dfs_AddFtRoot("", &q_u, data, 0))
00267 return False;
00268
00269 r_u.status = _dfs_AddFtRoot(p, &q_u, &r_u);
00270
00271 if (!netdfs_io_r_dfs_AddFtRoot("", &r_u, rdata, 0))
00272 return False;
00273
00274 return True;
00275 }
00276
00277
00278
00279
00280 static BOOL api_dfs_RemoveFtRoot(pipes_struct *p)
00281 {
00282 NETDFS_Q_DFS_REMOVEFTROOT q_u;
00283 NETDFS_R_DFS_REMOVEFTROOT r_u;
00284 prs_struct *data = &p->in_data.data;
00285 prs_struct *rdata = &p->out_data.rdata;
00286
00287 ZERO_STRUCT(q_u);
00288 ZERO_STRUCT(r_u);
00289
00290 if (!netdfs_io_q_dfs_RemoveFtRoot("", &q_u, data, 0))
00291 return False;
00292
00293 r_u.status = _dfs_RemoveFtRoot(p, &q_u, &r_u);
00294
00295 if (!netdfs_io_r_dfs_RemoveFtRoot("", &r_u, rdata, 0))
00296 return False;
00297
00298 return True;
00299 }
00300
00301
00302
00303
00304 static BOOL api_dfs_AddStdRoot(pipes_struct *p)
00305 {
00306 NETDFS_Q_DFS_ADDSTDROOT q_u;
00307 NETDFS_R_DFS_ADDSTDROOT r_u;
00308 prs_struct *data = &p->in_data.data;
00309 prs_struct *rdata = &p->out_data.rdata;
00310
00311 ZERO_STRUCT(q_u);
00312 ZERO_STRUCT(r_u);
00313
00314 if (!netdfs_io_q_dfs_AddStdRoot("", &q_u, data, 0))
00315 return False;
00316
00317 r_u.status = _dfs_AddStdRoot(p, &q_u, &r_u);
00318
00319 if (!netdfs_io_r_dfs_AddStdRoot("", &r_u, rdata, 0))
00320 return False;
00321
00322 return True;
00323 }
00324
00325
00326
00327
00328 static BOOL api_dfs_RemoveStdRoot(pipes_struct *p)
00329 {
00330 NETDFS_Q_DFS_REMOVESTDROOT q_u;
00331 NETDFS_R_DFS_REMOVESTDROOT r_u;
00332 prs_struct *data = &p->in_data.data;
00333 prs_struct *rdata = &p->out_data.rdata;
00334
00335 ZERO_STRUCT(q_u);
00336 ZERO_STRUCT(r_u);
00337
00338 if (!netdfs_io_q_dfs_RemoveStdRoot("", &q_u, data, 0))
00339 return False;
00340
00341 r_u.status = _dfs_RemoveStdRoot(p, &q_u, &r_u);
00342
00343 if (!netdfs_io_r_dfs_RemoveStdRoot("", &r_u, rdata, 0))
00344 return False;
00345
00346 return True;
00347 }
00348
00349
00350
00351
00352 static BOOL api_dfs_ManagerInitialize(pipes_struct *p)
00353 {
00354 NETDFS_Q_DFS_MANAGERINITIALIZE q_u;
00355 NETDFS_R_DFS_MANAGERINITIALIZE r_u;
00356 prs_struct *data = &p->in_data.data;
00357 prs_struct *rdata = &p->out_data.rdata;
00358
00359 ZERO_STRUCT(q_u);
00360 ZERO_STRUCT(r_u);
00361
00362 if (!netdfs_io_q_dfs_ManagerInitialize("", &q_u, data, 0))
00363 return False;
00364
00365 r_u.status = _dfs_ManagerInitialize(p, &q_u, &r_u);
00366
00367 if (!netdfs_io_r_dfs_ManagerInitialize("", &r_u, rdata, 0))
00368 return False;
00369
00370 return True;
00371 }
00372
00373
00374
00375
00376 static BOOL api_dfs_AddStdRootForced(pipes_struct *p)
00377 {
00378 NETDFS_Q_DFS_ADDSTDROOTFORCED q_u;
00379 NETDFS_R_DFS_ADDSTDROOTFORCED r_u;
00380 prs_struct *data = &p->in_data.data;
00381 prs_struct *rdata = &p->out_data.rdata;
00382
00383 ZERO_STRUCT(q_u);
00384 ZERO_STRUCT(r_u);
00385
00386 if (!netdfs_io_q_dfs_AddStdRootForced("", &q_u, data, 0))
00387 return False;
00388
00389 r_u.status = _dfs_AddStdRootForced(p, &q_u, &r_u);
00390
00391 if (!netdfs_io_r_dfs_AddStdRootForced("", &r_u, rdata, 0))
00392 return False;
00393
00394 return True;
00395 }
00396
00397
00398
00399
00400 static BOOL api_dfs_GetDcAddress(pipes_struct *p)
00401 {
00402 NETDFS_Q_DFS_GETDCADDRESS q_u;
00403 NETDFS_R_DFS_GETDCADDRESS r_u;
00404 prs_struct *data = &p->in_data.data;
00405 prs_struct *rdata = &p->out_data.rdata;
00406
00407 ZERO_STRUCT(q_u);
00408 ZERO_STRUCT(r_u);
00409
00410 if (!netdfs_io_q_dfs_GetDcAddress("", &q_u, data, 0))
00411 return False;
00412
00413 r_u.status = _dfs_GetDcAddress(p, &q_u, &r_u);
00414
00415 if (!netdfs_io_r_dfs_GetDcAddress("", &r_u, rdata, 0))
00416 return False;
00417
00418 return True;
00419 }
00420
00421
00422
00423
00424 static BOOL api_dfs_SetDcAddress(pipes_struct *p)
00425 {
00426 NETDFS_Q_DFS_SETDCADDRESS q_u;
00427 NETDFS_R_DFS_SETDCADDRESS r_u;
00428 prs_struct *data = &p->in_data.data;
00429 prs_struct *rdata = &p->out_data.rdata;
00430
00431 ZERO_STRUCT(q_u);
00432 ZERO_STRUCT(r_u);
00433
00434 if (!netdfs_io_q_dfs_SetDcAddress("", &q_u, data, 0))
00435 return False;
00436
00437 r_u.status = _dfs_SetDcAddress(p, &q_u, &r_u);
00438
00439 if (!netdfs_io_r_dfs_SetDcAddress("", &r_u, rdata, 0))
00440 return False;
00441
00442 return True;
00443 }
00444
00445
00446
00447
00448 static BOOL api_dfs_FlushFtTable(pipes_struct *p)
00449 {
00450 NETDFS_Q_DFS_FLUSHFTTABLE q_u;
00451 NETDFS_R_DFS_FLUSHFTTABLE r_u;
00452 prs_struct *data = &p->in_data.data;
00453 prs_struct *rdata = &p->out_data.rdata;
00454
00455 ZERO_STRUCT(q_u);
00456 ZERO_STRUCT(r_u);
00457
00458 if (!netdfs_io_q_dfs_FlushFtTable("", &q_u, data, 0))
00459 return False;
00460
00461 r_u.status = _dfs_FlushFtTable(p, &q_u, &r_u);
00462
00463 if (!netdfs_io_r_dfs_FlushFtTable("", &r_u, rdata, 0))
00464 return False;
00465
00466 return True;
00467 }
00468
00469
00470
00471
00472 static BOOL api_dfs_Add2(pipes_struct *p)
00473 {
00474 NETDFS_Q_DFS_ADD2 q_u;
00475 NETDFS_R_DFS_ADD2 r_u;
00476 prs_struct *data = &p->in_data.data;
00477 prs_struct *rdata = &p->out_data.rdata;
00478
00479 ZERO_STRUCT(q_u);
00480 ZERO_STRUCT(r_u);
00481
00482 if (!netdfs_io_q_dfs_Add2("", &q_u, data, 0))
00483 return False;
00484
00485 r_u.status = _dfs_Add2(p, &q_u, &r_u);
00486
00487 if (!netdfs_io_r_dfs_Add2("", &r_u, rdata, 0))
00488 return False;
00489
00490 return True;
00491 }
00492
00493
00494
00495
00496 static BOOL api_dfs_Remove2(pipes_struct *p)
00497 {
00498 NETDFS_Q_DFS_REMOVE2 q_u;
00499 NETDFS_R_DFS_REMOVE2 r_u;
00500 prs_struct *data = &p->in_data.data;
00501 prs_struct *rdata = &p->out_data.rdata;
00502
00503 ZERO_STRUCT(q_u);
00504 ZERO_STRUCT(r_u);
00505
00506 if (!netdfs_io_q_dfs_Remove2("", &q_u, data, 0))
00507 return False;
00508
00509 r_u.status = _dfs_Remove2(p, &q_u, &r_u);
00510
00511 if (!netdfs_io_r_dfs_Remove2("", &r_u, rdata, 0))
00512 return False;
00513
00514 return True;
00515 }
00516
00517
00518
00519
00520 static BOOL api_dfs_EnumEx(pipes_struct *p)
00521 {
00522 NETDFS_Q_DFS_ENUMEX q_u;
00523 NETDFS_R_DFS_ENUMEX r_u;
00524 prs_struct *data = &p->in_data.data;
00525 prs_struct *rdata = &p->out_data.rdata;
00526
00527 ZERO_STRUCT(q_u);
00528 ZERO_STRUCT(r_u);
00529
00530 if (!netdfs_io_q_dfs_EnumEx("", &q_u, data, 0))
00531 return False;
00532
00533 r_u.status = _dfs_EnumEx(p, &q_u, &r_u);
00534
00535 if (!netdfs_io_r_dfs_EnumEx("", &r_u, rdata, 0))
00536 return False;
00537
00538 return True;
00539 }
00540
00541
00542
00543
00544 static BOOL api_dfs_SetInfo2(pipes_struct *p)
00545 {
00546 NETDFS_Q_DFS_SETINFO2 q_u;
00547 NETDFS_R_DFS_SETINFO2 r_u;
00548 prs_struct *data = &p->in_data.data;
00549 prs_struct *rdata = &p->out_data.rdata;
00550
00551 ZERO_STRUCT(q_u);
00552 ZERO_STRUCT(r_u);
00553
00554 if (!netdfs_io_q_dfs_SetInfo2("", &q_u, data, 0))
00555 return False;
00556
00557 r_u.status = _dfs_SetInfo2(p, &q_u, &r_u);
00558
00559 if (!netdfs_io_r_dfs_SetInfo2("", &r_u, rdata, 0))
00560 return False;
00561
00562 return True;
00563 }
00564
00565
00566 static struct api_struct api_netdfs_cmds[] =
00567 {
00568 {"DFS_GETMANAGERVERSION", DFS_GETMANAGERVERSION, api_dfs_GetManagerVersion},
00569 {"DFS_ADD", DFS_ADD, api_dfs_Add},
00570 {"DFS_REMOVE", DFS_REMOVE, api_dfs_Remove},
00571 {"DFS_SETINFO", DFS_SETINFO, api_dfs_SetInfo},
00572 {"DFS_GETINFO", DFS_GETINFO, api_dfs_GetInfo},
00573 {"DFS_ENUM", DFS_ENUM, api_dfs_Enum},
00574 {"DFS_RENAME", DFS_RENAME, api_dfs_Rename},
00575 {"DFS_MOVE", DFS_MOVE, api_dfs_Move},
00576 {"DFS_MANAGERGETCONFIGINFO", DFS_MANAGERGETCONFIGINFO, api_dfs_ManagerGetConfigInfo},
00577 {"DFS_MANAGERSENDSITEINFO", DFS_MANAGERSENDSITEINFO, api_dfs_ManagerSendSiteInfo},
00578 {"DFS_ADDFTROOT", DFS_ADDFTROOT, api_dfs_AddFtRoot},
00579 {"DFS_REMOVEFTROOT", DFS_REMOVEFTROOT, api_dfs_RemoveFtRoot},
00580 {"DFS_ADDSTDROOT", DFS_ADDSTDROOT, api_dfs_AddStdRoot},
00581 {"DFS_REMOVESTDROOT", DFS_REMOVESTDROOT, api_dfs_RemoveStdRoot},
00582 {"DFS_MANAGERINITIALIZE", DFS_MANAGERINITIALIZE, api_dfs_ManagerInitialize},
00583 {"DFS_ADDSTDROOTFORCED", DFS_ADDSTDROOTFORCED, api_dfs_AddStdRootForced},
00584 {"DFS_GETDCADDRESS", DFS_GETDCADDRESS, api_dfs_GetDcAddress},
00585 {"DFS_SETDCADDRESS", DFS_SETDCADDRESS, api_dfs_SetDcAddress},
00586 {"DFS_FLUSHFTTABLE", DFS_FLUSHFTTABLE, api_dfs_FlushFtTable},
00587 {"DFS_ADD2", DFS_ADD2, api_dfs_Add2},
00588 {"DFS_REMOVE2", DFS_REMOVE2, api_dfs_Remove2},
00589 {"DFS_ENUMEX", DFS_ENUMEX, api_dfs_EnumEx},
00590 {"DFS_SETINFO2", DFS_SETINFO2, api_dfs_SetInfo2},
00591 };
00592
00593 void netdfs_get_pipe_fns(struct api_struct **fns, int *n_fns)
00594 {
00595 *fns = api_netdfs_cmds;
00596 *n_fns = sizeof(api_netdfs_cmds) / sizeof(struct api_struct);
00597 }
00598
00599 NTSTATUS rpc_netdfs_init(void)
00600 {
00601 return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "netdfs", "netdfs", api_netdfs_cmds, sizeof(api_netdfs_cmds) / sizeof(struct api_struct));
00602 }