Changeset 429 for trunk/server/source3/rpcclient/cmd_spoolss.c
- Timestamp:
- Apr 9, 2010, 3:51:41 PM (15 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
-
Property svn:mergeinfo
set to
/vendor/3.5.2 merged eligible /vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
trunk/server/source3/rpcclient/cmd_spoolss.c
r414 r429 750 750 static void display_printer_data(const char *v, 751 751 enum winreg_Type type, 752 union spoolss_PrinterData *r) 752 uint8_t *data, 753 uint32_t length) 753 754 { 754 755 int i; 756 union spoolss_PrinterData r; 757 DATA_BLOB blob = data_blob_const(data, length); 758 WERROR result; 759 760 result = pull_spoolss_PrinterData(talloc_tos(), &blob, &r, type); 761 if (!W_ERROR_IS_OK(result)) { 762 return; 763 } 755 764 756 765 switch (type) { 757 766 case REG_DWORD: 758 printf("%s: REG_DWORD: 0x%08x\n", v, r ->value);767 printf("%s: REG_DWORD: 0x%08x\n", v, r.value); 759 768 break; 760 769 case REG_SZ: 761 printf("%s: REG_SZ: %s\n", v, r ->string);770 printf("%s: REG_SZ: %s\n", v, r.string); 762 771 break; 763 772 case REG_BINARY: { 764 773 char *hex = hex_encode_talloc(NULL, 765 r ->binary.data, r->binary.length);774 r.binary.data, r.binary.length); 766 775 size_t len; 767 776 printf("%s: REG_BINARY:", v); … … 782 791 case REG_MULTI_SZ: 783 792 printf("%s: REG_MULTI_SZ: ", v); 784 for (i=0; r ->string_array[i] != NULL; i++) {785 printf("%s ", r ->string_array[i]);793 for (i=0; r.string_array[i] != NULL; i++) { 794 printf("%s ", r.string_array[i]); 786 795 } 787 796 printf("\n"); … … 805 814 const char *valuename; 806 815 enum winreg_Type type; 807 union spoolss_PrinterData data; 816 uint8_t *data; 817 uint32_t needed; 808 818 809 819 if (argc != 3) { … … 838 848 0, 839 849 &type, 850 &needed, 840 851 &data); 841 852 if (!W_ERROR_IS_OK(result)) … … 844 855 /* Display printer data */ 845 856 846 display_printer_data(valuename, type, &data);857 display_printer_data(valuename, type, data, needed); 847 858 848 859 done: … … 867 878 868 879 enum winreg_Type type; 869 u nion spoolss_PrinterData data;880 uint8_t *data = NULL; 870 881 uint32_t offered = 0; 871 882 uint32_t needed; … … 899 910 /* Get printer info */ 900 911 912 data = talloc_zero_array(mem_ctx, uint8_t, offered); 913 if (!data) { 914 goto done; 915 } 916 901 917 status = rpccli_spoolss_GetPrinterDataEx(cli, mem_ctx, 902 918 &pol, 903 919 keyname, 904 920 valuename, 921 &type, 922 data, 905 923 offered, 906 &type,907 &data,908 924 &needed, 909 925 &result); 910 926 if (W_ERROR_EQUAL(result, WERR_MORE_DATA)) { 911 927 offered = needed; 928 data = talloc_zero_array(mem_ctx, uint8_t, offered); 929 if (!data) { 930 goto done; 931 } 912 932 status = rpccli_spoolss_GetPrinterDataEx(cli, mem_ctx, 913 933 &pol, 914 934 keyname, 915 935 valuename, 936 &type, 937 data, 916 938 offered, 917 &type,918 &data,919 939 &needed, 920 940 &result); … … 930 950 /* Display printer data */ 931 951 932 display_printer_data(valuename, type, &data);952 display_printer_data(valuename, type, data, needed); 933 953 934 954 … … 2369 2389 enum winreg_Type type; 2370 2390 union spoolss_PrinterData data; 2391 DATA_BLOB blob; 2371 2392 2372 2393 /* parse the command arguments */ … … 2471 2492 } 2472 2493 2494 result = push_spoolss_PrinterData(mem_ctx, &blob, type, &data); 2495 if (!W_ERROR_IS_OK(result)) { 2496 goto done; 2497 } 2498 2473 2499 status = rpccli_spoolss_SetPrinterData(cli, mem_ctx, 2474 2500 &pol, 2475 2501 argv[3], /* value_name */ 2476 2502 type, 2477 data,2478 0, /* autocalculated size */2503 blob.data, 2504 blob.length, 2479 2505 &result); 2480 2506 if (!W_ERROR_IS_OK(result)) { … … 2883 2909 display_printer_data(info[i].value_name, 2884 2910 info[i].type, 2885 info[i].data); 2911 info[i].data->data, 2912 info[i].data->length); 2886 2913 } 2887 2914
Note:
See TracChangeset
for help on using the changeset viewer.