Changeset 745 for trunk/server/source3/rpcclient/cmd_epmapper.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source3/rpcclient/cmd_epmapper.c
r414 r745 21 21 #include "includes.h" 22 22 #include "rpcclient.h" 23 #include "../librpc/gen_ndr/cli_epmapper.h" 23 #include "../librpc/gen_ndr/ndr_epmapper_c.h" 24 #include "../librpc/gen_ndr/ndr_lsa.h" 24 25 25 26 static NTSTATUS cmd_epmapper_map(struct rpc_pipe_client *p, … … 27 28 int argc, const char **argv) 28 29 { 30 struct dcerpc_binding_handle *b = p->binding_handle; 29 31 struct dcerpc_binding map_binding; 30 32 struct epm_twr_t map_tower; 31 struct epm_twr_t res_tower; 32 struct epm_twr_p_t towers; 33 struct epm_twr_p_t towers[500]; 33 34 struct policy_handle entry_handle; 34 35 struct ndr_syntax_id abstract_syntax; … … 36 37 TALLOC_CTX *tmp_ctx = talloc_stackframe(); 37 38 NTSTATUS status; 39 uint32_t result; 40 uint32_t i; 38 41 39 42 abstract_syntax = ndr_table_lsarpc.syntax_id; … … 52 55 } 53 56 54 towers.twr = &res_tower; 57 ZERO_STRUCT(towers); 58 ZERO_STRUCT(entry_handle); 55 59 56 ZERO_STRUCT(entry_handle); 57 status = rpccli_epm_Map( 58 p, tmp_ctx, &abstract_syntax.uuid, 59 &map_tower, &entry_handle, 1, 60 &num_towers, &towers); 60 status = dcerpc_epm_Map( 61 b, tmp_ctx, &abstract_syntax.uuid, 62 &map_tower, &entry_handle, ARRAY_SIZE(towers), 63 &num_towers, towers, &result); 64 if (!NT_STATUS_IS_OK(status)) { 65 d_fprintf(stderr, "dcerpc_epm_Map returned %s\n", 66 nt_errstr(status)); 67 return status; 68 } 61 69 62 return status; 70 if (result != EPMAPPER_STATUS_OK) { 71 d_fprintf(stderr, "epm_Map returned %u (0x%08X)\n", 72 result, result); 73 return NT_STATUS_UNSUCCESSFUL; 74 } 75 76 d_printf("num_tower[%u]\n", num_towers); 77 78 for (i=0; i < num_towers; i++) { 79 struct dcerpc_binding *binding; 80 81 if (towers[i].twr == NULL) { 82 d_fprintf(stderr, "tower[%u] NULL\n", i); 83 break; 84 } 85 86 status = dcerpc_binding_from_tower(tmp_ctx, &towers[i].twr->tower, 87 &binding); 88 if (!NT_STATUS_IS_OK(status)) { 89 break; 90 } 91 92 d_printf("tower[%u] %s\n", i, dcerpc_binding_string(tmp_ctx, binding)); 93 } 94 95 return NT_STATUS_OK; 63 96 } 64 97 … … 67 100 int argc, const char **argv) 68 101 { 102 struct dcerpc_binding_handle *b = p->binding_handle; 69 103 struct policy_handle entry_handle; 70 104 … … 78 112 char *guid_string; 79 113 struct dcerpc_binding *binding; 114 uint32_t result; 80 115 81 status = rpccli_epm_Lookup(p, tmp_ctx,116 status = dcerpc_epm_Lookup(b, tmp_ctx, 82 117 0, /* rpc_c_ep_all */ 83 118 NULL, … … 86 121 &entry_handle, 87 122 1, /* max_ents */ 88 &num_entries, &entry); 123 &num_entries, &entry, 124 &result); 89 125 if (!NT_STATUS_IS_OK(status)) { 90 d_fprintf(stderr, " rpccli_epm_Lookup returned %s\n",126 d_fprintf(stderr, "dcerpc_epm_Lookup returned %s\n", 91 127 nt_errstr(status)); 92 128 break; 93 129 } 94 130 131 if (result == EPMAPPER_STATUS_NO_MORE_ENTRIES) { 132 d_fprintf(stderr, "epm_Lookup no more entries\n"); 133 break; 134 } 135 136 if (result != EPMAPPER_STATUS_OK) { 137 d_fprintf(stderr, "epm_Lookup returned %u (0x%08X)\n", 138 result, result); 139 break; 140 } 141 95 142 if (num_entries != 1) { 96 d_fprintf(stderr, " rpccli_epm_Lookup returned %d "143 d_fprintf(stderr, "epm_Lookup returned %d " 97 144 "entries, expected one\n", (int)num_entries); 98 145 break;
Note:
See TracChangeset
for help on using the changeset viewer.