rpcclient/cmd_dfs.c

ソースコードを見る。

関数

static NTSTATUS cmd_dfs_exist (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv)
static NTSTATUS cmd_dfs_add (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv)
static NTSTATUS cmd_dfs_remove (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv)
static void display_dfs_info_1 (NETDFS_DFS_INFO1 *info1)
static void display_dfs_info_2 (NETDFS_DFS_INFO2 *info2)
static void display_dfs_info_3 (NETDFS_DFS_INFO3 *info3)
static void display_dfs_info (NETDFS_DFS_INFO_CTR *ctr)
static void display_dfs_enumstruct (NETDFS_DFS_ENUMSTRUCT *ctr)
static NTSTATUS cmd_dfs_enum (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv)
static NTSTATUS cmd_dfs_getinfo (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv)

変数

cmd_set dfs_commands []


関数

static NTSTATUS cmd_dfs_exist ( struct rpc_pipe_client cli,
TALLOC_CTX mem_ctx,
int  argc,
const char **  argv 
) [static]

cmd_dfs.c28 行で定義されています。

参照先 cliprintf()resultrpccli_dfs_GetManagerVersion().

00030 {
00031         uint32 dfs_exists;
00032         NTSTATUS result;
00033 
00034         if (argc != 1) {
00035                 printf("Usage: %s\n", argv[0]);
00036                 return NT_STATUS_OK;
00037         }
00038 
00039         result = rpccli_dfs_GetManagerVersion(cli, mem_ctx, &dfs_exists);
00040 
00041         if (NT_STATUS_IS_OK(result))
00042                 printf("dfs is %spresent\n", dfs_exists ? "" : "not ");
00043 
00044         return result;
00045 }

static NTSTATUS cmd_dfs_add ( struct rpc_pipe_client cli,
TALLOC_CTX mem_ctx,
int  argc,
const char **  argv 
) [static]

cmd_dfs.c47 行で定義されています。

参照先 cliflagsprintf()resultrpccli_dfs_Add().

00049 {
00050         NTSTATUS result;
00051         const char *path, *servername, *sharename, *comment;
00052         uint32 flags = 0;
00053 
00054         if (argc != 5) {
00055                 printf("Usage: %s path servername sharename comment\n", 
00056                        argv[0]);
00057                 return NT_STATUS_OK;
00058         }
00059 
00060         path = argv[1];
00061         servername = argv[2];
00062         sharename = argv[3];
00063         comment = argv[4];
00064 
00065         result = rpccli_dfs_Add(cli, mem_ctx, path, servername, 
00066                              sharename, comment, flags);
00067 
00068         return result;
00069 }

static NTSTATUS cmd_dfs_remove ( struct rpc_pipe_client cli,
TALLOC_CTX mem_ctx,
int  argc,
const char **  argv 
) [static]

cmd_dfs.c71 行で定義されています。

参照先 cliprintf()resultrpccli_dfs_Remove().

00073 {
00074         NTSTATUS result;
00075         const char *path, *servername, *sharename;
00076 
00077         if (argc != 4) {
00078                 printf("Usage: %s path servername sharename\n", argv[0]);
00079                 return NT_STATUS_OK;
00080         }
00081 
00082         path = argv[1];
00083         servername = argv[2];
00084         sharename = argv[3];
00085 
00086         result = rpccli_dfs_Remove(cli, mem_ctx, path, servername, 
00087                                 sharename);
00088 
00089         return result;
00090 }

static void display_dfs_info_1 ( NETDFS_DFS_INFO1 info1  )  [static]

cmd_dfs.c94 行で定義されています。

参照先 netdfs_dfs_Info1::pathprintf()unistr2_to_ascii().

参照元 display_dfs_enumstruct()display_dfs_info().

00095 {
00096         fstring temp;
00097 
00098         unistr2_to_ascii(temp, &info1->path, sizeof(temp) - 1);
00099         printf("path: %s\n", temp);
00100 }

static void display_dfs_info_2 ( NETDFS_DFS_INFO2 info2  )  [static]

cmd_dfs.c104 行で定義されています。

参照先 netdfs_dfs_Info2::commentnetdfs_dfs_Info2::num_storesnetdfs_dfs_Info2::pathprintf()netdfs_dfs_Info2::stateunistr2_to_ascii().

参照元 display_dfs_enumstruct()display_dfs_info().

00105 {
00106         fstring temp;
00107 
00108         unistr2_to_ascii(temp, &info2->path, sizeof(temp) - 1);
00109         printf("path: %s\n", temp);
00110 
00111         unistr2_to_ascii(temp, &info2->comment, sizeof(temp) - 1);
00112         printf("\tcomment: %s\n", temp);
00113 
00114         printf("\tstate: %d\n", info2->state);
00115         printf("\tnum_stores: %d\n", info2->num_stores);
00116 }

static void display_dfs_info_3 ( NETDFS_DFS_INFO3 info3  )  [static]

cmd_dfs.c120 行で定義されています。

参照先 netdfs_dfs_Info3::commentnetdfs_dfs_Info3::num_storesnetdfs_dfs_Info3::pathprintf()netdfs_dfs_Info3::statenetdfs_dfs_Info3::storesunistr2_to_ascii().

参照元 display_dfs_enumstruct()display_dfs_info().

00121 {
00122         fstring temp;
00123         int i;
00124 
00125         unistr2_to_ascii(temp, &info3->path, sizeof(temp) - 1);
00126         printf("path: %s\n", temp);
00127 
00128         unistr2_to_ascii(temp, &info3->comment, sizeof(temp) - 1);
00129         printf("\tcomment: %s\n", temp);
00130 
00131         printf("\tstate: %d\n", info3->state);
00132         printf("\tnum_stores: %d\n", info3->num_stores);
00133 
00134         for (i = 0; i < info3->num_stores; i++) {
00135                 NETDFS_DFS_STORAGEINFO *dsi = &info3->stores[i];
00136 
00137                 unistr2_to_ascii(temp, &dsi->server, sizeof(temp) - 1);
00138                 printf("\t\tstorage[%d] server: %s\n", i, temp);
00139 
00140                 unistr2_to_ascii(temp, &dsi->share, sizeof(temp) - 1);
00141                 printf("\t\tstorage[%d] share: %s\n", i, temp);
00142         }
00143 }

static void display_dfs_info ( NETDFS_DFS_INFO_CTR ctr  )  [static]

cmd_dfs.c147 行で定義されています。

参照先 display_dfs_info_1()display_dfs_info_2()display_dfs_info_3()netdfs_dfs_Info_ctr::netdfs_dfs_Info::info1netdfs_dfs_Info_ctr::netdfs_dfs_Info::info2netdfs_dfs_Info_ctr::netdfs_dfs_Info::info3printf()netdfs_dfs_Info_ctr::switch_valuenetdfs_dfs_Info_ctr::u.

参照元 cmd_dfs_getinfo().

00148 {
00149         switch (ctr->switch_value) {
00150                 case 0x01:
00151                         display_dfs_info_1(&ctr->u.info1);
00152                         break;
00153                 case 0x02:
00154                         display_dfs_info_2(&ctr->u.info2);
00155                         break;
00156                 case 0x03:
00157                         display_dfs_info_3(&ctr->u.info3);
00158                         break;
00159                 default:
00160                         printf("unsupported info level %d\n", 
00161                                ctr->switch_value);
00162                         break;
00163         }
00164 }

static void display_dfs_enumstruct ( NETDFS_DFS_ENUMSTRUCT ctr  )  [static]

cmd_dfs.c166 行で定義されています。

参照先 netdfs_dfs_EnumArray1::countdisplay_dfs_info_1()display_dfs_info_2()display_dfs_info_3()netdfs_dfs_EnumStruct::enetdfs_dfs_EnumInfo_ctr::netdfs_dfs_EnumInfo::info1netdfs_dfs_EnumInfo_ctr::netdfs_dfs_EnumInfo::info2netdfs_dfs_EnumInfo_ctr::netdfs_dfs_EnumInfo::info3netdfs_dfs_EnumStruct::levelprintf()netdfs_dfs_EnumArray3::snetdfs_dfs_EnumArray2::snetdfs_dfs_EnumArray1::snetdfs_dfs_EnumInfo_ctr::u.

参照元 cmd_dfs_enum().

00167 {
00168         int i;
00169         
00170         /* count is always the first element, so we can just use info1 here */
00171         for (i = 0; i < ctr->e.u.info1.count; i++) {
00172                 switch (ctr->level) {
00173                 case 1: display_dfs_info_1(&ctr->e.u.info1.s[i]); break;
00174                 case 2: display_dfs_info_2(&ctr->e.u.info2.s[i]); break;
00175                 case 3: display_dfs_info_3(&ctr->e.u.info3.s[i]); break;
00176                 default:
00177                                 printf("unsupported info level %d\n", 
00178                                ctr->level);
00179                                 return;
00180                 }
00181         }
00182 }

static NTSTATUS cmd_dfs_enum ( struct rpc_pipe_client cli,
TALLOC_CTX mem_ctx,
int  argc,
const char **  argv 
) [static]

cmd_dfs.c186 行で定義されています。

参照先 clidisplay_dfs_enumstruct()netdfs_dfs_EnumStruct::einit_netdfs_dfs_EnumStruct()printf()netdfs_dfs_EnumInfo_ctr::ptr0resultrpccli_dfs_Enum()total.

00188 {
00189         NETDFS_DFS_ENUMSTRUCT str;
00190         NETDFS_DFS_ENUMINFO_CTR ctr;
00191         NTSTATUS result;
00192         uint32 info_level = 1;
00193         uint32 total = 0;
00194 
00195         if (argc > 2) {
00196                 printf("Usage: %s [info_level]\n", argv[0]);
00197                 return NT_STATUS_OK;
00198         }
00199 
00200         if (argc == 2)
00201                 info_level = atoi(argv[1]);
00202 
00203         ZERO_STRUCT(ctr);
00204         init_netdfs_dfs_EnumStruct(&str, info_level, ctr);
00205         str.e.ptr0 = 1;
00206 
00207         result = rpccli_dfs_Enum(cli, mem_ctx, info_level, 0xFFFFFFFF, &str, &total);
00208 
00209         if (NT_STATUS_IS_OK(result))
00210                 display_dfs_enumstruct(&str);
00211 
00212         return result;
00213 }

static NTSTATUS cmd_dfs_getinfo ( struct rpc_pipe_client cli,
TALLOC_CTX mem_ctx,
int  argc,
const char **  argv 
) [static]

cmd_dfs.c215 行で定義されています。

参照先 clidisplay_dfs_info()printf()resultrpccli_dfs_GetInfo().

00217 {
00218         NTSTATUS result;
00219         const char *path, *servername, *sharename;
00220         uint32 info_level = 1;
00221         NETDFS_DFS_INFO_CTR ctr;
00222 
00223         if (argc < 4 || argc > 5) {
00224                 printf("Usage: %s path servername sharename "
00225                        "[info_level]\n", argv[0]);
00226                 return NT_STATUS_OK;
00227         }
00228 
00229         path = argv[1];
00230         servername = argv[2];
00231         sharename = argv[3];
00232 
00233         if (argc == 5)
00234                 info_level = atoi(argv[4]);
00235 
00236         result = rpccli_dfs_GetInfo(cli, mem_ctx, path, servername, 
00237                                   sharename, info_level, &ctr);
00238 
00239         if (NT_STATUS_IS_OK(result))
00240                 display_dfs_info(&ctr);
00241 
00242         return result;
00243 }


変数

struct cmd_set dfs_commands[]

初期値:

 {

        { "DFS" },

        { "dfsexist",  RPC_RTYPE_NTSTATUS, cmd_dfs_exist,   NULL, PI_NETDFS, NULL, "Query DFS support",    "" },
        { "dfsadd",    RPC_RTYPE_NTSTATUS, cmd_dfs_add,     NULL, PI_NETDFS, NULL, "Add a DFS share",      "" },
        { "dfsremove", RPC_RTYPE_NTSTATUS, cmd_dfs_remove,  NULL, PI_NETDFS, NULL, "Remove a DFS share",   "" },
        { "dfsgetinfo",RPC_RTYPE_NTSTATUS, cmd_dfs_getinfo, NULL, PI_NETDFS, NULL, "Query DFS share info", "" },
        { "dfsenum",   RPC_RTYPE_NTSTATUS, cmd_dfs_enum,    NULL, PI_NETDFS, NULL, "Enumerate dfs shares", "" },

        { NULL }
}

cmd_dfs.c247 行で定義されています。


Sambaに対してSat Aug 29 21:24:23 2009に生成されました。  doxygen 1.4.7