Line data Source code
1 : /* 2 : * Unix SMB/CIFS implementation. 3 : * Virtual Windows Registry Layer 4 : * Copyright (C) Gerald Carter 2002-2005 5 : * Copyright (C) Michael Adam 2008 6 : * 7 : * This program is free software; you can redistribute it and/or modify 8 : * it under the terms of the GNU General Public License as published by 9 : * the Free Software Foundation; either version 3 of the License, or 10 : * (at your option) any later version. 11 : * 12 : * This program is distributed in the hope that it will be useful, 13 : * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 : * GNU General Public License for more details. 16 : * 17 : * You should have received a copy of the GNU General Public License 18 : * along with this program; if not, see <http://www.gnu.org/licenses/>. 19 : */ 20 : 21 : /* 22 : * Product options registry backend. 23 : * 24 : * This replaces the former dynamic product options overlay. 25 : */ 26 : 27 : #include "includes.h" 28 : #include "registry.h" 29 : #include "reg_objects.h" 30 : 31 : #undef DBGC_CLASS 32 : #define DBGC_CLASS DBGC_REGISTRY 33 : 34 : extern struct registry_ops regdb_ops; 35 : 36 10 : static int prod_options_fetch_values(const char *key, struct regval_ctr *regvals) 37 : { 38 10 : const char *value_ascii = ""; 39 : 40 10 : switch (lp_server_role()) { 41 4 : case ROLE_DOMAIN_PDC: 42 : case ROLE_DOMAIN_BDC: 43 : case ROLE_IPA_DC: 44 4 : value_ascii = "LanmanNT"; 45 4 : break; 46 2 : case ROLE_STANDALONE: 47 2 : value_ascii = "ServerNT"; 48 2 : break; 49 0 : case ROLE_DOMAIN_MEMBER: 50 0 : value_ascii = "WinNT"; 51 0 : break; 52 : } 53 : 54 10 : regval_ctr_addvalue_sz(regvals, "ProductType", value_ascii); 55 : 56 10 : return regval_ctr_numvals( regvals ); 57 : } 58 : 59 6 : static int prod_options_fetch_subkeys(const char *key, 60 : struct regsubkey_ctr *subkey_ctr) 61 : { 62 6 : return regdb_ops.fetch_subkeys(key, subkey_ctr); 63 : } 64 : 65 : struct registry_ops prod_options_reg_ops = { 66 : .fetch_values = prod_options_fetch_values, 67 : .fetch_subkeys = prod_options_fetch_subkeys, 68 : };