static char* get_server_type_str | ( | uint32 | type | ) | [static] |
cmd_srvsvc.c の 29 行で定義されています。
参照元 display_server().
00030 { 00031 static fstring typestr; 00032 int i; 00033 00034 if (type == SV_TYPE_ALL) { 00035 fstrcpy(typestr, "All"); 00036 return typestr; 00037 } 00038 00039 typestr[0] = 0; 00040 00041 for (i = 0; i < 32; i++) { 00042 if (type & (1 << i)) { 00043 switch (1 << i) { 00044 case SV_TYPE_WORKSTATION: 00045 fstrcat(typestr, "Wk "); 00046 break; 00047 case SV_TYPE_SERVER: 00048 fstrcat(typestr, "Sv "); 00049 break; 00050 case SV_TYPE_SQLSERVER: 00051 fstrcat(typestr, "Sql "); 00052 break; 00053 case SV_TYPE_DOMAIN_CTRL: 00054 fstrcat(typestr, "PDC "); 00055 break; 00056 case SV_TYPE_DOMAIN_BAKCTRL: 00057 fstrcat(typestr, "BDC "); 00058 break; 00059 case SV_TYPE_TIME_SOURCE: 00060 fstrcat(typestr, "Tim "); 00061 break; 00062 case SV_TYPE_AFP: 00063 fstrcat(typestr, "AFP "); 00064 break; 00065 case SV_TYPE_NOVELL: 00066 fstrcat(typestr, "Nov "); 00067 break; 00068 case SV_TYPE_DOMAIN_MEMBER: 00069 fstrcat(typestr, "Dom "); 00070 break; 00071 case SV_TYPE_PRINTQ_SERVER: 00072 fstrcat(typestr, "PrQ "); 00073 break; 00074 case SV_TYPE_DIALIN_SERVER: 00075 fstrcat(typestr, "Din "); 00076 break; 00077 case SV_TYPE_SERVER_UNIX: 00078 fstrcat(typestr, "Unx "); 00079 break; 00080 case SV_TYPE_NT: 00081 fstrcat(typestr, "NT "); 00082 break; 00083 case SV_TYPE_WFW: 00084 fstrcat(typestr, "Wfw "); 00085 break; 00086 case SV_TYPE_SERVER_MFPN: 00087 fstrcat(typestr, "Mfp "); 00088 break; 00089 case SV_TYPE_SERVER_NT: 00090 fstrcat(typestr, "SNT "); 00091 break; 00092 case SV_TYPE_POTENTIAL_BROWSER: 00093 fstrcat(typestr, "PtB "); 00094 break; 00095 case SV_TYPE_BACKUP_BROWSER: 00096 fstrcat(typestr, "BMB "); 00097 break; 00098 case SV_TYPE_MASTER_BROWSER: 00099 fstrcat(typestr, "LMB "); 00100 break; 00101 case SV_TYPE_DOMAIN_MASTER: 00102 fstrcat(typestr, "DMB "); 00103 break; 00104 case SV_TYPE_SERVER_OSF: 00105 fstrcat(typestr, "OSF "); 00106 break; 00107 case SV_TYPE_SERVER_VMS: 00108 fstrcat(typestr, "VMS "); 00109 break; 00110 case SV_TYPE_WIN95_PLUS: 00111 fstrcat(typestr, "W95 "); 00112 break; 00113 case SV_TYPE_ALTERNATE_XPORT: 00114 fstrcat(typestr, "Xpt "); 00115 break; 00116 case SV_TYPE_LOCAL_LIST_ONLY: 00117 fstrcat(typestr, "Dom "); 00118 break; 00119 case SV_TYPE_DOMAIN_ENUM: 00120 fstrcat(typestr, "Loc "); 00121 break; 00122 } 00123 } 00124 } 00125 00126 i = strlen(typestr) - 1; 00127 00128 if (typestr[i] == ' ') 00129 typestr[i] = 0; 00130 00131 return typestr; 00132 }
static void display_server | ( | char * | sname, | |
uint32 | type, | |||
const char * | comment | |||
) | [static] |
cmd_srvsvc.c の 134 行で定義されています。
参照先 get_server_type_str()・printf().
参照元 display_srv_info_101()・display_srv_info_102().
00135 { 00136 printf("\t%-15.15s%-20s %s\n", sname, get_server_type_str(type), 00137 comment); 00138 }
static void display_srv_info_101 | ( | SRV_INFO_101 * | sv101 | ) | [static] |
cmd_srvsvc.c の 140 行で定義されています。
参照先 display_server()・name・srv_info_101_info::platform_id・printf()・srv_info_101_info::srv_type・srv_info_101_info::uni_comment・srv_info_101_info::uni_name・unistr2_to_ascii()・srv_info_101_info::ver_major・srv_info_101_info::ver_minor.
参照元 cmd_srvsvc_srv_query_info().
00141 { 00142 fstring name; 00143 fstring comment; 00144 00145 unistr2_to_ascii(name, &sv101->uni_name, sizeof(name) - 1); 00146 unistr2_to_ascii(comment, &sv101->uni_comment, sizeof(comment) - 1); 00147 00148 display_server(name, sv101->srv_type, comment); 00149 00150 printf("\tplatform_id :\t%d\n", sv101->platform_id); 00151 printf("\tos version :\t%d.%d\n", sv101->ver_major, 00152 sv101->ver_minor); 00153 00154 printf("\tserver type :\t0x%x\n", sv101->srv_type); 00155 }
static void display_srv_info_102 | ( | SRV_INFO_102 * | sv102 | ) | [static] |
cmd_srvsvc.c の 157 行で定義されています。
参照先 srv_info_102_info::ann_delta・srv_info_102_info::announce・srv_info_102_info::disc・display_server()・srv_info_102_info::hidden・srv_info_102_info::licenses・name・srv_info_102_info::platform_id・printf()・srv_info_102_info::srv_type・srv_info_102_info::uni_comment・srv_info_102_info::uni_name・srv_info_102_info::uni_usr_path・unistr2_to_ascii()・srv_info_102_info::users・srv_info_102_info::ver_major・srv_info_102_info::ver_minor.
参照元 cmd_srvsvc_srv_query_info().
00158 { 00159 fstring name; 00160 fstring comment; 00161 fstring usr_path; 00162 00163 unistr2_to_ascii(name, &sv102->uni_name, sizeof(name) - 1); 00164 unistr2_to_ascii(comment, &sv102->uni_comment, sizeof(comment) - 1); 00165 unistr2_to_ascii(usr_path, &sv102->uni_usr_path, sizeof(usr_path) - 1); 00166 00167 display_server(name, sv102->srv_type, comment); 00168 00169 printf("\tplatform_id :\t%d\n", sv102->platform_id); 00170 printf("\tos version :\t%d.%d\n", sv102->ver_major, 00171 sv102->ver_minor); 00172 00173 printf("\tusers :\t%x\n", sv102->users); 00174 printf("\tdisc, hidden :\t%x, %x\n", sv102->disc, sv102->hidden); 00175 printf("\tannounce, delta :\t%d, %d\n", sv102->announce, 00176 sv102->ann_delta); 00177 printf("\tlicenses :\t%d\n", sv102->licenses); 00178 printf("\tuser path :\t%s\n", usr_path); 00179 }
static WERROR cmd_srvsvc_srv_query_info | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
int | argc, | |||
const char ** | argv | |||
) | [static] |
cmd_srvsvc.c の 182 行で定義されています。
参照先 cli・display_srv_info_101()・display_srv_info_102()・printf()・result・rpccli_srvsvc_net_srv_get_info()・srv_info_ctr_info::srv・srv_info_ctr_info::sv101・srv_info_ctr_info::sv102.
00185 { 00186 uint32 info_level = 101; 00187 SRV_INFO_CTR ctr; 00188 WERROR result; 00189 00190 if (argc > 2) { 00191 printf("Usage: %s [infolevel]\n", argv[0]); 00192 return WERR_OK; 00193 } 00194 00195 if (argc == 2) 00196 info_level = atoi(argv[1]); 00197 00198 result = rpccli_srvsvc_net_srv_get_info(cli, mem_ctx, info_level, 00199 &ctr); 00200 00201 if (!W_ERROR_IS_OK(result)) { 00202 goto done; 00203 } 00204 00205 /* Display results */ 00206 00207 switch (info_level) { 00208 case 101: 00209 display_srv_info_101(&ctr.srv.sv101); 00210 break; 00211 case 102: 00212 display_srv_info_102(&ctr.srv.sv102); 00213 break; 00214 default: 00215 printf("unsupported info level %d\n", info_level); 00216 break; 00217 } 00218 00219 done: 00220 return result; 00221 }
static void display_share_info_1 | ( | SRV_SHARE_INFO_1 * | info1 | ) | [static] |
cmd_srvsvc.c の 223 行で定義されています。
参照先 share_info_1_info::info_1_str・printf()・rpcstr_pull_unistr2_fstring()・str_share_info1::uni_netname・str_share_info1::uni_remark.
参照元 cmd_srvsvc_net_share_enum()・cmd_srvsvc_net_share_get_info()・rpc_share_list_internals().
00224 { 00225 fstring netname = "", remark = ""; 00226 00227 rpcstr_pull_unistr2_fstring(netname, &info1->info_1_str.uni_netname); 00228 rpcstr_pull_unistr2_fstring(remark, &info1->info_1_str.uni_remark); 00229 00230 printf("netname: %s\n", netname); 00231 printf("\tremark:\t%s\n", remark); 00232 }
static void display_share_info_2 | ( | SRV_SHARE_INFO_2 * | info2 | ) | [static] |
cmd_srvsvc.c の 234 行で定義されています。
参照先 share_info_2_info::info_2_str・printf()・rpcstr_pull_unistr2_fstring()・str_share_info2::uni_netname・str_share_info2::uni_passwd・str_share_info2::uni_path・str_share_info2::uni_remark.
参照元 cmd_srvsvc_net_share_enum()・cmd_srvsvc_net_share_get_info().
00235 { 00236 fstring netname = "", remark = "", path = "", passwd = ""; 00237 00238 rpcstr_pull_unistr2_fstring(netname, &info2->info_2_str.uni_netname); 00239 rpcstr_pull_unistr2_fstring(remark, &info2->info_2_str.uni_remark); 00240 rpcstr_pull_unistr2_fstring(path, &info2->info_2_str.uni_path); 00241 rpcstr_pull_unistr2_fstring(passwd, &info2->info_2_str.uni_passwd); 00242 00243 printf("netname: %s\n", netname); 00244 printf("\tremark:\t%s\n", remark); 00245 printf("\tpath:\t%s\n", path); 00246 printf("\tpassword:\t%s\n", passwd); 00247 }
static void display_share_info_502 | ( | SRV_SHARE_INFO_502 * | info502 | ) | [static] |
cmd_srvsvc.c の 249 行で定義されています。
参照先 display_sec_desc()・share_info_502_info::info_502・share_info_502_info::info_502_str・ptr_share_info502::max_uses・ptr_share_info502::num_uses・ptr_share_info502::perms・printf()・rpcstr_pull_unistr2_fstring()・str_share_info502::sd・ptr_share_info502::type・str_share_info502::uni_netname・str_share_info502::uni_passwd・str_share_info502::uni_path・str_share_info502::uni_remark.
参照元 cmd_srvsvc_net_share_enum()・cmd_srvsvc_net_share_get_info()・cmd_srvsvc_net_share_set_info().
00250 { 00251 fstring netname = "", remark = "", path = "", passwd = ""; 00252 00253 rpcstr_pull_unistr2_fstring(netname, &info502->info_502_str.uni_netname); 00254 rpcstr_pull_unistr2_fstring(remark, &info502->info_502_str.uni_remark); 00255 rpcstr_pull_unistr2_fstring(path, &info502->info_502_str.uni_path); 00256 rpcstr_pull_unistr2_fstring(passwd, &info502->info_502_str.uni_passwd); 00257 00258 printf("netname: %s\n", netname); 00259 printf("\tremark:\t%s\n", remark); 00260 printf("\tpath:\t%s\n", path); 00261 printf("\tpassword:\t%s\n", passwd); 00262 00263 printf("\ttype:\t0x%x\n", info502->info_502.type); 00264 printf("\tperms:\t%d\n", info502->info_502.perms); 00265 printf("\tmax_uses:\t%d\n", info502->info_502.max_uses); 00266 printf("\tnum_uses:\t%d\n", info502->info_502.num_uses); 00267 00268 if (info502->info_502_str.sd) 00269 display_sec_desc(info502->info_502_str.sd); 00270 00271 }
static WERROR cmd_srvsvc_net_share_enum | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
int | argc, | |||
const char ** | argv | |||
) | [static] |
cmd_srvsvc.c の 273 行で定義されています。
参照先 cli・display_share_info_1()・display_share_info_2()・display_share_info_502()・srv_share_info_ctr_info::info1・srv_share_info_ctr_info::info2・srv_share_info_ctr_info::info502・init_enum_hnd()・srv_share_info_ctr_info::num_entries・printf()・result・rpccli_srvsvc_net_share_enum()・srv_share_info_ctr_info::share.
00276 { 00277 uint32 info_level = 2; 00278 SRV_SHARE_INFO_CTR ctr; 00279 WERROR result; 00280 ENUM_HND hnd; 00281 uint32 preferred_len = 0xffffffff, i; 00282 00283 if (argc > 2) { 00284 printf("Usage: %s [infolevel]\n", argv[0]); 00285 return WERR_OK; 00286 } 00287 00288 if (argc == 2) 00289 info_level = atoi(argv[1]); 00290 00291 init_enum_hnd(&hnd, 0); 00292 00293 result = rpccli_srvsvc_net_share_enum( 00294 cli, mem_ctx, info_level, &ctr, preferred_len, &hnd); 00295 00296 if (!W_ERROR_IS_OK(result) || !ctr.num_entries) 00297 goto done; 00298 00299 /* Display results */ 00300 00301 switch (info_level) { 00302 case 1: 00303 for (i = 0; i < ctr.num_entries; i++) 00304 display_share_info_1(&ctr.share.info1[i]); 00305 break; 00306 case 2: 00307 for (i = 0; i < ctr.num_entries; i++) 00308 display_share_info_2(&ctr.share.info2[i]); 00309 break; 00310 case 502: 00311 for (i = 0; i < ctr.num_entries; i++) 00312 display_share_info_502(&ctr.share.info502[i]); 00313 break; 00314 default: 00315 printf("unsupported info level %d\n", info_level); 00316 break; 00317 } 00318 00319 done: 00320 return result; 00321 }
static WERROR cmd_srvsvc_net_share_get_info | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
int | argc, | |||
const char ** | argv | |||
) | [static] |
cmd_srvsvc.c の 323 行で定義されています。
参照先 cli・display_share_info_1()・display_share_info_2()・display_share_info_502()・srv_share_info::info1・srv_share_info::info2・srv_share_info::info502・printf()・result・rpccli_srvsvc_net_share_get_info()・srv_share_info::share.
00326 { 00327 uint32 info_level = 502; 00328 SRV_SHARE_INFO info; 00329 WERROR result; 00330 00331 if (argc > 3) { 00332 printf("Usage: %s [sharename] [infolevel]\n", argv[0]); 00333 return WERR_OK; 00334 } 00335 00336 if (argc == 3) 00337 info_level = atoi(argv[2]); 00338 00339 result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info); 00340 00341 if (!W_ERROR_IS_OK(result)) 00342 goto done; 00343 00344 /* Display results */ 00345 00346 switch (info_level) { 00347 case 1: 00348 display_share_info_1(&info.share.info1); 00349 break; 00350 case 2: 00351 display_share_info_2(&info.share.info2); 00352 break; 00353 case 502: 00354 display_share_info_502(&info.share.info502); 00355 break; 00356 default: 00357 printf("unsupported info level %d\n", info_level); 00358 break; 00359 } 00360 00361 done: 00362 return result; 00363 }
static WERROR cmd_srvsvc_net_share_set_info | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
int | argc, | |||
const char ** | argv | |||
) | [static] |
cmd_srvsvc.c の 365 行で定義されています。
参照先 cli・display_share_info_502()・srv_share_info::info502・share_info_502_info::info_502_str・init_unistr2()・printf()・srv_share_info::ptr_share_ctr・result・rpccli_srvsvc_net_share_get_info()・rpccli_srvsvc_net_share_set_info()・srv_share_info::share・srv_share_info::switch_value・str_share_info502::uni_remark・UNI_STR_TERMINATE.
00368 { 00369 uint32 info_level = 502; 00370 SRV_SHARE_INFO info_get; 00371 WERROR result; 00372 00373 if (argc > 3) { 00374 printf("Usage: %s [sharename] [comment]\n", argv[0]); 00375 return WERR_OK; 00376 } 00377 00378 /* retrieve share info */ 00379 result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info_get); 00380 if (!W_ERROR_IS_OK(result)) 00381 goto done; 00382 00383 info_get.switch_value = info_level; 00384 info_get.ptr_share_ctr = 1; 00385 init_unistr2(&(info_get.share.info502.info_502_str.uni_remark), argv[2], UNI_STR_TERMINATE); 00386 00387 /* set share info */ 00388 result = rpccli_srvsvc_net_share_set_info(cli, mem_ctx, argv[1], info_level, &info_get); 00389 00390 if (!W_ERROR_IS_OK(result)) 00391 goto done; 00392 00393 /* re-retrieve share info and display */ 00394 result = rpccli_srvsvc_net_share_get_info(cli, mem_ctx, argv[1], info_level, &info_get); 00395 if (!W_ERROR_IS_OK(result)) 00396 goto done; 00397 00398 display_share_info_502(&info_get.share.info502); 00399 00400 done: 00401 return result; 00402 }
static WERROR cmd_srvsvc_net_remote_tod | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
int | argc, | |||
const char ** | argv | |||
) | [static] |
cmd_srvsvc.c の 404 行で定義されています。
参照先 cli・cli_state::desthost・fstr_sprintf()・printf()・result・rpccli_srvsvc_net_remote_tod().
00407 { 00408 TIME_OF_DAY_INFO tod; 00409 fstring srv_name_slash; 00410 WERROR result; 00411 00412 if (argc > 1) { 00413 printf("Usage: %s\n", argv[0]); 00414 return WERR_OK; 00415 } 00416 00417 fstr_sprintf(srv_name_slash, "\\\\%s", cli->cli->desthost); 00418 result = rpccli_srvsvc_net_remote_tod( 00419 cli, mem_ctx, srv_name_slash, &tod); 00420 00421 if (!W_ERROR_IS_OK(result)) 00422 goto done; 00423 00424 done: 00425 return result; 00426 }
static WERROR cmd_srvsvc_net_file_enum | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
int | argc, | |||
const char ** | argv | |||
) | [static] |
cmd_srvsvc.c の 428 行で定義されています。
参照先 cli・init_enum_hnd()・printf()・result・rpccli_srvsvc_net_file_enum().
00431 { 00432 uint32 info_level = 3; 00433 SRV_FILE_INFO_CTR ctr; 00434 WERROR result; 00435 ENUM_HND hnd; 00436 uint32 preferred_len = 0xffff; 00437 00438 if (argc > 2) { 00439 printf("Usage: %s [infolevel]\n", argv[0]); 00440 return WERR_OK; 00441 } 00442 00443 if (argc == 2) 00444 info_level = atoi(argv[1]); 00445 00446 init_enum_hnd(&hnd, 0); 00447 00448 ZERO_STRUCT(ctr); 00449 00450 result = rpccli_srvsvc_net_file_enum( 00451 cli, mem_ctx, info_level, NULL, &ctr, preferred_len, &hnd); 00452 00453 if (!W_ERROR_IS_OK(result)) 00454 goto done; 00455 00456 done: 00457 return result; 00458 }
struct cmd_set srvsvc_commands[] |
初期値:
{ { "SRVSVC" }, { "srvinfo", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_srv_query_info, PI_SRVSVC, NULL, "Server query info", "" }, { "netshareenum",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_enum, PI_SRVSVC, NULL, "Enumerate shares", "" }, { "netsharegetinfo",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_get_info, PI_SRVSVC, NULL, "Get Share Info", "" }, { "netsharesetinfo",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_set_info, PI_SRVSVC, NULL, "Set Share Info", "" }, { "netfileenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_file_enum, PI_SRVSVC, NULL, "Enumerate open files", "" }, { "netremotetod",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_remote_tod, PI_SRVSVC, NULL, "Fetch remote time of day", "" }, { NULL } }
cmd_srvsvc.c の 462 行で定義されています。