mirror of
https://github.com/samba-team/samba.git
synced 2025-03-11 16:58:40 +03:00
param: auto generate param_functions.c at build time
generate_param.py reads the documentation to define which functions need to be generated. To add new parameters, edit the xml files in docs-xml/smbdotconf. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
This commit is contained in:
parent
a7d4185bb8
commit
aea623e050
@ -11,8 +11,8 @@ Adding a parameter
|
||||
------------------
|
||||
|
||||
To add or change an smb.conf option, you only have to modify
|
||||
lib/param/param_table.c and lib/param/param_functions.c. The rest is
|
||||
generated for you.
|
||||
lib/param/param_table.c and add the documentation to docs-xml/smbdotconf.
|
||||
The rest is generated for you.
|
||||
|
||||
|
||||
Using smb.conf parameters in the code
|
||||
|
@ -324,6 +324,10 @@ FN_GLOBAL_BOOL(writeraw, bWriteRaw)
|
||||
FN_GLOBAL_CONST_STRING(cachedir, szCacheDir)
|
||||
FN_GLOBAL_CONST_STRING(statedir, szStateDir)
|
||||
|
||||
/* These functions cannot be auto-generated */
|
||||
FN_LOCAL_BOOL(autoloaded, autoloaded)
|
||||
FN_GLOBAL_CONST_STRING(dnsdomain, dnsdomain)
|
||||
|
||||
/* local prototypes */
|
||||
static struct loadparm_service *getservicebyname(struct loadparm_context *lp_ctx,
|
||||
const char *pszServiceName);
|
||||
|
@ -1,416 +0,0 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
Parameter loading functions
|
||||
Copyright (C) Karl Auer 1993-1998
|
||||
|
||||
Largely re-written by Andrew Tridgell, September 1994
|
||||
|
||||
Copyright (C) Simo Sorce 2001
|
||||
Copyright (C) Alexander Bokovoy 2002
|
||||
Copyright (C) Stefan (metze) Metzmacher 2002
|
||||
Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003
|
||||
Copyright (C) Michael Adam 2008
|
||||
Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
|
||||
Copyright (C) Andrew Bartlett 2011
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
FN_LOCAL_STRING(path, path)
|
||||
FN_LOCAL_LIST(hosts_allow, hosts_allow)
|
||||
FN_LOCAL_LIST(hosts_deny, hosts_deny)
|
||||
FN_LOCAL_STRING(fstype, fstype)
|
||||
FN_LOCAL_LIST(ntvfs_handler, ntvfs_handler)
|
||||
FN_LOCAL_BOOL(msdfs_root, msdfs_root)
|
||||
FN_LOCAL_BOOL(browseable, browseable)
|
||||
FN_LOCAL_BOOL(read_only, read_only)
|
||||
FN_LOCAL_BOOL(printable, printable)
|
||||
FN_LOCAL_BOOL(map_hidden, map_hidden)
|
||||
FN_LOCAL_BOOL(map_archive, map_archive)
|
||||
FN_LOCAL_BOOL(oplocks, oplocks)
|
||||
FN_LOCAL_BOOL(strict_sync, strict_sync)
|
||||
FN_LOCAL_BOOL(map_system, map_system)
|
||||
FN_LOCAL_INTEGER(max_connections, max_connections)
|
||||
FN_LOCAL_INTEGER(csc_policy, csc_policy)
|
||||
FN_LOCAL_INTEGER(create_mask, create_mask)
|
||||
FN_LOCAL_INTEGER(force_create_mode, force_create_mode)
|
||||
FN_LOCAL_INTEGER(directory_mask, directory_mask)
|
||||
FN_LOCAL_INTEGER(force_directory_mode, force_directory_mode)
|
||||
FN_LOCAL_STRING(preexec, preexec)
|
||||
FN_LOCAL_STRING(postexec, postexec)
|
||||
FN_LOCAL_STRING(root_preexec, root_preexec)
|
||||
FN_LOCAL_STRING(root_postexec, root_postexec)
|
||||
FN_LOCAL_STRING(dont_descend, dont_descend)
|
||||
FN_LOCAL_STRING(username, username)
|
||||
FN_LOCAL_LIST(invalid_users, invalid_users)
|
||||
FN_LOCAL_LIST(valid_users, valid_users)
|
||||
FN_LOCAL_LIST(admin_users, admin_users)
|
||||
FN_LOCAL_STRING(print_command, print_command)
|
||||
FN_LOCAL_STRING(lpq_command, lpq_command)
|
||||
FN_LOCAL_STRING(lprm_command, lprm_command)
|
||||
FN_LOCAL_STRING(lppause_command, lppause_command)
|
||||
FN_LOCAL_STRING(lpresume_command, lpresume_command)
|
||||
FN_LOCAL_STRING(queuepause_command, queuepause_command)
|
||||
FN_LOCAL_STRING(queueresume_command, queueresume_command)
|
||||
FN_LOCAL_STRING(_printername, _printername)
|
||||
FN_LOCAL_CONST_STRING(printjob_username, printjob_username)
|
||||
FN_LOCAL_STRING(magic_script, magic_script)
|
||||
FN_LOCAL_STRING(magic_output, magic_output)
|
||||
FN_LOCAL_STRING(comment, comment)
|
||||
FN_LOCAL_STRING(force_user, force_user)
|
||||
FN_LOCAL_STRING(force_group, force_group)
|
||||
FN_LOCAL_LIST(read_list, read_list)
|
||||
FN_LOCAL_LIST(write_list, write_list)
|
||||
FN_LOCAL_LIST(vfs_objects, vfs_objects)
|
||||
FN_LOCAL_STRING(msdfs_proxy, msdfs_proxy)
|
||||
FN_LOCAL_STRING(volume, volume)
|
||||
FN_LOCAL_STRING(veto_files, veto_files)
|
||||
FN_LOCAL_STRING(hide_files, hide_files)
|
||||
FN_LOCAL_STRING(veto_oplock_files, veto_oplock_files)
|
||||
FN_LOCAL_STRING(aio_write_behind, aio_write_behind)
|
||||
FN_LOCAL_STRING(dfree_command, dfree_command)
|
||||
FN_LOCAL_BOOL(autoloaded, autoloaded)
|
||||
FN_LOCAL_BOOL(preexec_close, preexec_close)
|
||||
FN_LOCAL_BOOL(root_preexec_close, root_preexec_close)
|
||||
FN_LOCAL_INTEGER(case_sensitive, case_sensitive)
|
||||
FN_LOCAL_BOOL(preserve_case, preserve_case)
|
||||
FN_LOCAL_BOOL(short_preserve_case, short_preserve_case)
|
||||
FN_LOCAL_BOOL(hide_dot_files, hide_dot_files)
|
||||
FN_LOCAL_BOOL(hide_special_files, hide_special_files)
|
||||
FN_LOCAL_BOOL(hide_unreadable, hide_unreadable)
|
||||
FN_LOCAL_BOOL(hide_unwriteable_files, hide_unwriteable_files)
|
||||
FN_LOCAL_BOOL(access_based_share_enum, access_based_share_enum)
|
||||
FN_LOCAL_BOOL(guest_ok, guest_ok)
|
||||
FN_LOCAL_BOOL(guest_only, guest_only)
|
||||
FN_LOCAL_BOOL(administrative_share, administrative_share)
|
||||
FN_LOCAL_BOOL(print_notify_backchannel, print_notify_backchannel)
|
||||
FN_LOCAL_BOOL(store_dos_attributes, store_dos_attributes)
|
||||
FN_LOCAL_BOOL(dmapi_support, dmapi_support)
|
||||
FN_LOCAL_PARM_BOOL(locking, locking)
|
||||
FN_LOCAL_PARM_INTEGER(strict_locking, strict_locking)
|
||||
FN_LOCAL_PARM_BOOL(posix_locking, posix_locking)
|
||||
FN_LOCAL_BOOL(kernel_oplocks, kernel_oplocks)
|
||||
FN_LOCAL_BOOL(level2_oplocks, level2_oplocks)
|
||||
FN_LOCAL_BOOL(kernel_share_modes, kernel_share_modes)
|
||||
FN_LOCAL_BOOL(only_user, only_user)
|
||||
FN_LOCAL_PARM_BOOL(mangled_names, mangled_names)
|
||||
FN_LOCAL_BOOL(follow_symlinks, follow_symlinks)
|
||||
FN_LOCAL_BOOL(sync_always, sync_always)
|
||||
FN_LOCAL_BOOL(strict_allocate, strict_allocate)
|
||||
FN_LOCAL_BOOL(delete_readonly, delete_readonly)
|
||||
FN_LOCAL_BOOL(fake_oplocks, fake_oplocks)
|
||||
FN_LOCAL_BOOL(delete_veto_files, delete_veto_files)
|
||||
FN_LOCAL_BOOL(dos_filemode, dos_filemode)
|
||||
FN_LOCAL_BOOL(dos_filetimes, dos_filetimes)
|
||||
FN_LOCAL_BOOL(dos_filetime_resolution, dos_filetime_resolution)
|
||||
FN_LOCAL_BOOL(fake_directory_create_times, fake_directory_create_times)
|
||||
FN_LOCAL_BOOL(blocking_locks, blocking_locks)
|
||||
FN_LOCAL_BOOL(inherit_permissions, inherit_permissions)
|
||||
FN_LOCAL_BOOL(inherit_acls, inherit_acls)
|
||||
FN_LOCAL_BOOL(inherit_owner, inherit_owner)
|
||||
FN_LOCAL_BOOL(use_client_driver, use_client_driver)
|
||||
FN_LOCAL_BOOL(default_devmode, default_devmode)
|
||||
FN_LOCAL_BOOL(force_printername, force_printername)
|
||||
FN_LOCAL_BOOL(nt_acl_support, nt_acl_support)
|
||||
FN_LOCAL_BOOL(force_unknown_acl_user, force_unknown_acl_user)
|
||||
FN_LOCAL_BOOL(ea_support, ea_support)
|
||||
FN_LOCAL_BOOL(_use_sendfile, _use_sendfile)
|
||||
FN_LOCAL_BOOL(profile_acls, profile_acls)
|
||||
FN_LOCAL_BOOL(map_acl_inherit, map_acl_inherit)
|
||||
FN_LOCAL_BOOL(afs_share, afs_share)
|
||||
FN_LOCAL_BOOL(acl_check_permissions, acl_check_permissions)
|
||||
FN_LOCAL_BOOL(acl_group_control, acl_group_control)
|
||||
FN_LOCAL_BOOL(acl_map_full_control, acl_map_full_control)
|
||||
FN_LOCAL_BOOL(acl_allow_execute_always, acl_allow_execute_always)
|
||||
FN_LOCAL_INTEGER(default_case, default_case)
|
||||
FN_LOCAL_INTEGER(min_print_space, min_print_space)
|
||||
FN_LOCAL_INTEGER(printing, printing)
|
||||
FN_LOCAL_INTEGER(max_reported_print_jobs, max_reported_print_jobs)
|
||||
FN_LOCAL_INTEGER(oplock_contention_limit, oplock_contention_limit)
|
||||
FN_LOCAL_INTEGER(write_cache_size, write_cache_size)
|
||||
FN_LOCAL_INTEGER(block_size, block_size)
|
||||
FN_LOCAL_INTEGER(dfree_cache_time, dfree_cache_time)
|
||||
FN_LOCAL_INTEGER(allocation_roundup_size, allocation_roundup_size)
|
||||
FN_LOCAL_INTEGER(aio_read_size, aio_read_size)
|
||||
FN_LOCAL_INTEGER(aio_write_size, aio_write_size)
|
||||
FN_LOCAL_INTEGER(map_readonly, map_readonly)
|
||||
FN_LOCAL_INTEGER(directory_name_cache_size, directory_name_cache_size)
|
||||
FN_LOCAL_INTEGER(smb_encrypt, smb_encrypt)
|
||||
FN_LOCAL_PARM_CHAR(mangling_char, mangling_char)
|
||||
FN_LOCAL_STRING(cups_options, cups_options)
|
||||
FN_LOCAL_PARM_BOOL(change_notify, change_notify)
|
||||
FN_LOCAL_PARM_BOOL(kernel_change_notify, kernel_change_notify)
|
||||
FN_LOCAL_BOOL(durable_handles, durable_handles)
|
||||
|
||||
FN_GLOBAL_BOOL(allow_insecure_wide_links, allow_insecure_wide_links)
|
||||
FN_GLOBAL_BOOL(allow_nt4_crypto, allow_nt4_crypto)
|
||||
FN_GLOBAL_BOOL(allow_trusted_domains, allow_trusted_domains)
|
||||
FN_GLOBAL_BOOL(async_smb_echo_handler, async_smb_echo_handler)
|
||||
FN_GLOBAL_BOOL(bind_interfaces_only, bind_interfaces_only)
|
||||
FN_GLOBAL_BOOL(browse_list, browse_list)
|
||||
FN_GLOBAL_BOOL(client_lanman_auth, client_lanman_auth)
|
||||
FN_GLOBAL_BOOL(client_ntlmv2_auth, client_ntlmv2_auth)
|
||||
FN_GLOBAL_BOOL(client_plaintext_auth, client_plaintext_auth)
|
||||
FN_GLOBAL_BOOL(client_use_spnego, client_use_spnego)
|
||||
FN_GLOBAL_BOOL(client_use_spnego_principal, client_use_spnego_principal)
|
||||
FN_GLOBAL_BOOL(clustering, clustering)
|
||||
FN_GLOBAL_BOOL(create_krb5_conf, create_krb5_conf)
|
||||
FN_GLOBAL_BOOL(debug_class, debug_class)
|
||||
FN_GLOBAL_BOOL(debug_hires_timestamp, debug_hires_timestamp)
|
||||
FN_GLOBAL_BOOL(debug_pid, debug_pid)
|
||||
FN_GLOBAL_BOOL(debug_prefix_timestamp, debug_prefix_timestamp)
|
||||
FN_GLOBAL_BOOL(debug_uid, debug_uid)
|
||||
FN_GLOBAL_BOOL(defer_sharing_violations, defer_sharing_violations)
|
||||
FN_GLOBAL_BOOL(disable_netbios, disable_netbios)
|
||||
FN_GLOBAL_BOOL(_disable_spoolss, _disable_spoolss)
|
||||
FN_GLOBAL_BOOL(_domain_logons, _domain_logons)
|
||||
FN_GLOBAL_BOOL(enable_asu_support, enable_asu_support)
|
||||
FN_GLOBAL_BOOL(enable_core_files, enable_core_files)
|
||||
FN_GLOBAL_BOOL(enable_privileges, enable_privileges)
|
||||
FN_GLOBAL_BOOL(encrypt_passwords, encrypt_passwords)
|
||||
FN_GLOBAL_BOOL(enhanced_browsing, enhanced_browsing)
|
||||
FN_GLOBAL_BOOL(getwd_cache, getwd_cache)
|
||||
FN_GLOBAL_BOOL(host_msdfs, host_msdfs)
|
||||
FN_GLOBAL_BOOL(hostname_lookups, hostname_lookups)
|
||||
FN_GLOBAL_BOOL(lanman_auth, lanman_auth)
|
||||
FN_GLOBAL_BOOL(large_readwrite, large_readwrite)
|
||||
FN_GLOBAL_BOOL(ldap_delete_dn, ldap_delete_dn)
|
||||
FN_GLOBAL_BOOL(ldap_ssl_ads, ldap_ssl_ads)
|
||||
FN_GLOBAL_BOOL(load_printers, load_printers)
|
||||
FN_GLOBAL_BOOL(local_master, local_master)
|
||||
FN_GLOBAL_BOOL(log_writeable_files_on_exit, log_writeable_files_on_exit)
|
||||
FN_GLOBAL_BOOL(map_untrusted_to_domain, map_untrusted_to_domain)
|
||||
FN_GLOBAL_BOOL(show_add_printer_wizard, show_add_printer_wizard)
|
||||
FN_GLOBAL_BOOL(multicast_dns_register, multicast_dns_register)
|
||||
FN_GLOBAL_BOOL(neutralize_nt4_emulation, neutralize_nt4_emulation)
|
||||
FN_GLOBAL_BOOL(nis_homedir, nis_homedir)
|
||||
FN_GLOBAL_BOOL(nmbd_bind_explicit_broadcast, nmbd_bind_explicit_broadcast)
|
||||
FN_GLOBAL_BOOL(ntlm_auth, ntlm_auth)
|
||||
FN_GLOBAL_BOOL(nt_pipe_support, nt_pipe_support)
|
||||
FN_GLOBAL_BOOL(nt_status_support, nt_status_support)
|
||||
FN_GLOBAL_BOOL(null_passwords, null_passwords)
|
||||
FN_GLOBAL_BOOL(obey_pam_restrictions, obey_pam_restrictions)
|
||||
FN_GLOBAL_BOOL(pam_password_change, pam_password_change)
|
||||
FN_GLOBAL_BOOL(passdb_expand_explicit, passdb_expand_explicit)
|
||||
FN_GLOBAL_BOOL(passwd_chat_debug, passwd_chat_debug)
|
||||
FN_GLOBAL_BOOL(registry_shares, registry_shares)
|
||||
FN_GLOBAL_BOOL(reject_md5_clients, reject_md5_clients)
|
||||
FN_GLOBAL_BOOL(reject_md5_servers, reject_md5_servers)
|
||||
FN_GLOBAL_BOOL(require_strong_key, require_strong_key)
|
||||
FN_GLOBAL_BOOL(reset_on_zero_vc, reset_on_zero_vc)
|
||||
FN_GLOBAL_BOOL(rpc_big_endian, rpc_big_endian)
|
||||
FN_GLOBAL_BOOL(stat_cache, stat_cache)
|
||||
FN_GLOBAL_BOOL(syslog_only, syslog_only)
|
||||
FN_GLOBAL_BOOL(timestamp_logs, timestamp_logs)
|
||||
FN_GLOBAL_BOOL(time_server, time_server)
|
||||
FN_GLOBAL_BOOL(tls_enabled, tls_enabled)
|
||||
FN_GLOBAL_BOOL(unicode, unicode)
|
||||
FN_GLOBAL_BOOL(unix_extensions, unix_extensions)
|
||||
FN_GLOBAL_BOOL(unix_password_sync, unix_password_sync)
|
||||
FN_GLOBAL_BOOL(use_mmap, use_mmap)
|
||||
FN_GLOBAL_BOOL(use_ntdb, use_ntdb)
|
||||
FN_GLOBAL_BOOL(usershare_allow_guests, usershare_allow_guests)
|
||||
FN_GLOBAL_BOOL(usershare_owner_only, usershare_owner_only)
|
||||
FN_GLOBAL_BOOL(use_spnego, use_spnego)
|
||||
FN_GLOBAL_BOOL(utmp, utmp)
|
||||
FN_GLOBAL_BOOL(we_are_a_wins_server, we_are_a_wins_server)
|
||||
FN_GLOBAL_BOOL(winbind_enum_groups, winbind_enum_groups)
|
||||
FN_GLOBAL_BOOL(winbind_enum_users, winbind_enum_users)
|
||||
FN_GLOBAL_BOOL(winbind_nested_groups, winbind_nested_groups)
|
||||
FN_GLOBAL_BOOL(winbind_normalize_names, winbind_normalize_names)
|
||||
FN_GLOBAL_BOOL(winbind_offline_logon, winbind_offline_logon)
|
||||
FN_GLOBAL_BOOL(winbind_refresh_tickets, winbind_refresh_tickets)
|
||||
FN_GLOBAL_BOOL(winbind_rpc_only, winbind_rpc_only)
|
||||
FN_GLOBAL_BOOL(winbind_sealed_pipes, winbind_sealed_pipes)
|
||||
FN_GLOBAL_BOOL(winbind_trusted_domains_only, winbind_trusted_domains_only)
|
||||
FN_GLOBAL_BOOL(winbind_use_default_domain, winbind_use_default_domain)
|
||||
FN_GLOBAL_BOOL(wins_dns_proxy, wins_dns_proxy)
|
||||
FN_GLOBAL_BOOL(wins_proxy, wins_proxy)
|
||||
FN_GLOBAL_CONST_STRING(afs_username_map, afs_username_map)
|
||||
FN_GLOBAL_CONST_STRING(ctdbd_socket, ctdbd_socket)
|
||||
FN_GLOBAL_CONST_STRING(dedicated_keytab_file, dedicated_keytab_file)
|
||||
FN_GLOBAL_CONST_STRING(dnsdomain, dnsdomain)
|
||||
FN_GLOBAL_CONST_STRING(dns_forwarder, dns_forwarder)
|
||||
FN_GLOBAL_CONST_STRING(dos_charset, dos_charset)
|
||||
FN_GLOBAL_CONST_STRING(guest_account, guest_account)
|
||||
FN_GLOBAL_CONST_STRING(lock_directory, lock_directory)
|
||||
FN_GLOBAL_CONST_STRING(logon_drive, logon_drive)
|
||||
FN_GLOBAL_CONST_STRING(logon_home, logon_home)
|
||||
FN_GLOBAL_CONST_STRING(logon_path, logon_path)
|
||||
FN_GLOBAL_CONST_STRING(logon_script, logon_script)
|
||||
FN_GLOBAL_CONST_STRING(nbt_client_socket_address, nbt_client_socket_address)
|
||||
FN_GLOBAL_CONST_STRING(ncalrpc_dir, ncalrpc_dir)
|
||||
FN_GLOBAL_CONST_STRING(netbios_name, netbios_name)
|
||||
FN_GLOBAL_CONST_STRING(netbios_scope, netbios_scope)
|
||||
FN_GLOBAL_CONST_STRING(ntp_signd_socket_directory, ntp_signd_socket_directory)
|
||||
FN_GLOBAL_CONST_STRING(passdb_backend, passdb_backend)
|
||||
FN_GLOBAL_CONST_STRING(password_server, password_server)
|
||||
FN_GLOBAL_CONST_STRING(pid_directory, pid_directory)
|
||||
FN_GLOBAL_CONST_STRING(private_dir, private_dir)
|
||||
FN_GLOBAL_CONST_STRING(realm, realm)
|
||||
FN_GLOBAL_CONST_STRING(smb_passwd_file, smb_passwd_file)
|
||||
FN_GLOBAL_CONST_STRING(socket_options, socket_options)
|
||||
FN_GLOBAL_CONST_STRING(template_homedir, template_homedir)
|
||||
FN_GLOBAL_CONST_STRING(template_shell, template_shell)
|
||||
FN_GLOBAL_CONST_STRING(unix_charset, unix_charset)
|
||||
FN_GLOBAL_CONST_STRING(utmp_directory, utmp_directory)
|
||||
FN_GLOBAL_CONST_STRING(winbindd_privileged_socket_directory, winbindd_privileged_socket_directory)
|
||||
FN_GLOBAL_CONST_STRING(winbindd_socket_directory, winbindd_socket_directory)
|
||||
FN_GLOBAL_CONST_STRING(winbind_separator, winbind_separator)
|
||||
FN_GLOBAL_CONST_STRING(workgroup, workgroup)
|
||||
FN_GLOBAL_CONST_STRING(wtmp_directory, wtmp_directory)
|
||||
FN_GLOBAL_INTEGER(afs_token_lifetime, afs_token_lifetime)
|
||||
FN_GLOBAL_INTEGER(algorithmic_rid_base, algorithmic_rid_base)
|
||||
FN_GLOBAL_INTEGER(allow_dns_updates, allow_dns_updates)
|
||||
FN_GLOBAL_INTEGER(cldap_port, cldap_port)
|
||||
FN_GLOBAL_INTEGER(client_ldap_sasl_wrapping, client_ldap_sasl_wrapping)
|
||||
FN_GLOBAL_INTEGER(client_schannel, client_schannel)
|
||||
FN_GLOBAL_INTEGER(client_signing, client_signing)
|
||||
FN_GLOBAL_INTEGER(client_max_protocol, client_max_protocol)
|
||||
FN_GLOBAL_INTEGER(client_min_protocol, client_min_protocol)
|
||||
FN_GLOBAL_INTEGER(config_backend, config_backend)
|
||||
FN_GLOBAL_INTEGER(ctdb_locktime_warn_threshold, ctdb_locktime_warn_threshold)
|
||||
FN_GLOBAL_INTEGER(ctdb_timeout, ctdb_timeout)
|
||||
FN_GLOBAL_INTEGER(cups_connection_timeout, cups_connection_timeout)
|
||||
FN_GLOBAL_INTEGER(deadtime, deadtime)
|
||||
FN_GLOBAL_INTEGER(dgram_port, dgram_port)
|
||||
FN_GLOBAL_INTEGER(_domain_master, _domain_master)
|
||||
FN_GLOBAL_INTEGER(idmap_cache_time, idmap_cache_time)
|
||||
FN_GLOBAL_INTEGER(idmap_negative_cache_time, idmap_negative_cache_time)
|
||||
FN_GLOBAL_INTEGER(init_logon_delay, init_logon_delay)
|
||||
FN_GLOBAL_INTEGER(keepalive, keepalive)
|
||||
FN_GLOBAL_INTEGER(kerberos_method, kerberos_method)
|
||||
FN_GLOBAL_INTEGER(kpasswd_port, kpasswd_port)
|
||||
FN_GLOBAL_INTEGER(krb5_port, krb5_port)
|
||||
FN_GLOBAL_INTEGER(ldap_connection_timeout, ldap_connection_timeout)
|
||||
FN_GLOBAL_INTEGER(ldap_debug_level, ldap_debug_level)
|
||||
FN_GLOBAL_INTEGER(ldap_debug_threshold, ldap_debug_threshold)
|
||||
FN_GLOBAL_INTEGER(ldap_deref, ldap_deref)
|
||||
FN_GLOBAL_INTEGER(ldap_follow_referral, ldap_follow_referral)
|
||||
FN_GLOBAL_INTEGER(ldap_page_size, ldap_page_size)
|
||||
FN_GLOBAL_INTEGER(ldap_passwd_sync, ldap_passwd_sync)
|
||||
FN_GLOBAL_INTEGER(ldap_replication_sleep, ldap_replication_sleep)
|
||||
FN_GLOBAL_INTEGER(ldap_ssl, ldap_ssl)
|
||||
FN_GLOBAL_INTEGER(ldap_timeout, ldap_timeout)
|
||||
FN_GLOBAL_INTEGER(lm_announce, lm_announce)
|
||||
FN_GLOBAL_INTEGER(lm_interval, lm_interval)
|
||||
FN_GLOBAL_INTEGER(lock_spin_time, lock_spin_time)
|
||||
FN_GLOBAL_INTEGER(lpq_cache_time, lpq_cache_time)
|
||||
FN_GLOBAL_INTEGER(machine_password_timeout, machine_password_timeout)
|
||||
FN_GLOBAL_INTEGER(mangle_prefix, mangle_prefix)
|
||||
FN_GLOBAL_INTEGER(map_to_guest, map_to_guest)
|
||||
FN_GLOBAL_INTEGER(max_disk_size, max_disk_size)
|
||||
FN_GLOBAL_INTEGER(max_log_size, max_log_size)
|
||||
FN_GLOBAL_INTEGER(max_mux, max_mux)
|
||||
FN_GLOBAL_INTEGER(max_open_files, max_open_files)
|
||||
FN_GLOBAL_INTEGER(max_smbd_processes, max_smbd_processes)
|
||||
FN_GLOBAL_INTEGER(max_stat_cache_size, max_stat_cache_size)
|
||||
FN_GLOBAL_INTEGER(max_ttl, max_ttl)
|
||||
FN_GLOBAL_INTEGER(max_wins_ttl, max_wins_ttl)
|
||||
FN_GLOBAL_INTEGER(max_xmit, max_xmit)
|
||||
FN_GLOBAL_INTEGER(min_wins_ttl, min_wins_ttl)
|
||||
FN_GLOBAL_INTEGER(name_cache_timeout, name_cache_timeout)
|
||||
FN_GLOBAL_INTEGER(nbt_port, nbt_port)
|
||||
FN_GLOBAL_INTEGER(oplock_break_wait_time, oplock_break_wait_time)
|
||||
FN_GLOBAL_INTEGER(os_level, os_level)
|
||||
FN_GLOBAL_INTEGER(passwd_chat_timeout, passwd_chat_timeout)
|
||||
FN_GLOBAL_INTEGER(printcap_cache_time, printcap_cache_time)
|
||||
FN_GLOBAL_INTEGER(restrict_anonymous, restrict_anonymous)
|
||||
FN_GLOBAL_INTEGER(_security, _security)
|
||||
FN_GLOBAL_INTEGER(_server_role, _server_role)
|
||||
FN_GLOBAL_INTEGER(server_schannel, server_schannel)
|
||||
FN_GLOBAL_INTEGER(server_signing, server_signing)
|
||||
FN_GLOBAL_INTEGER(smb2_max_read, smb2_max_read)
|
||||
FN_GLOBAL_INTEGER(smb2_max_trans, smb2_max_trans)
|
||||
FN_GLOBAL_INTEGER(smb2_max_write, smb2_max_write)
|
||||
FN_GLOBAL_INTEGER(server_max_protocol, server_max_protocol)
|
||||
FN_GLOBAL_INTEGER(server_min_protocol, server_min_protocol)
|
||||
FN_GLOBAL_INTEGER(syslog, syslog)
|
||||
FN_GLOBAL_INTEGER(username_level, username_level)
|
||||
FN_GLOBAL_INTEGER(username_map_cache_time, username_map_cache_time)
|
||||
FN_GLOBAL_INTEGER(usershare_max_shares, usershare_max_shares)
|
||||
FN_GLOBAL_INTEGER(web_port, web_port)
|
||||
FN_GLOBAL_INTEGER(winbind_cache_time, winbind_cache_time)
|
||||
FN_GLOBAL_INTEGER(winbind_expand_groups, winbind_expand_groups)
|
||||
FN_GLOBAL_INTEGER(winbind_max_clients, winbind_max_clients)
|
||||
FN_GLOBAL_INTEGER(winbind_reconnect_delay, winbind_reconnect_delay)
|
||||
FN_GLOBAL_LIST(auth_methods, auth_methods)
|
||||
FN_GLOBAL_LIST(cluster_addresses, cluster_addresses)
|
||||
FN_GLOBAL_LIST(dcerpc_endpoint_servers, dcerpc_endpoint_servers)
|
||||
FN_GLOBAL_LIST(dns_update_command, dns_update_command)
|
||||
FN_GLOBAL_LIST(eventlog_list, eventlog_list)
|
||||
FN_GLOBAL_LIST(init_logon_delayed_hosts, init_logon_delayed_hosts)
|
||||
FN_GLOBAL_LIST(interfaces, interfaces)
|
||||
FN_GLOBAL_LIST(name_resolve_order, name_resolve_order)
|
||||
FN_GLOBAL_LIST(netbios_aliases, netbios_aliases)
|
||||
FN_GLOBAL_LIST(nsupdate_command, nsupdate_command)
|
||||
FN_GLOBAL_LIST(preload_modules, preload_modules)
|
||||
FN_GLOBAL_LIST(rndc_command, rndc_command)
|
||||
FN_GLOBAL_LIST(samba_kcc_command, samba_kcc_command)
|
||||
FN_GLOBAL_LIST(server_services, server_services)
|
||||
FN_GLOBAL_LIST(smb_ports, smb_ports)
|
||||
FN_GLOBAL_LIST(spn_update_command, spn_update_command)
|
||||
FN_GLOBAL_LIST(svcctl_list, svcctl_list)
|
||||
FN_GLOBAL_LIST(usershare_prefix_allow_list, usershare_prefix_allow_list)
|
||||
FN_GLOBAL_LIST(usershare_prefix_deny_list, usershare_prefix_deny_list)
|
||||
FN_GLOBAL_LIST(winbind_nss_info, winbind_nss_info)
|
||||
FN_GLOBAL_LIST(wins_server_list, wins_server_list)
|
||||
FN_GLOBAL_STRING(abort_shutdown_script, abort_shutdown_script)
|
||||
FN_GLOBAL_STRING(add_group_script, add_group_script)
|
||||
FN_GLOBAL_STRING(add_machine_script, add_machine_script)
|
||||
FN_GLOBAL_STRING(addport_command, addport_command)
|
||||
FN_GLOBAL_STRING(addprinter_command, addprinter_command)
|
||||
FN_GLOBAL_STRING(add_share_command, add_share_command)
|
||||
FN_GLOBAL_STRING(add_user_script, add_user_script)
|
||||
FN_GLOBAL_STRING(add_user_to_group_script, add_user_to_group_script)
|
||||
FN_GLOBAL_STRING(auto_services, auto_services)
|
||||
FN_GLOBAL_STRING(change_share_command, change_share_command)
|
||||
FN_GLOBAL_STRING(check_password_script, check_password_script)
|
||||
FN_GLOBAL_STRING(cups_server, cups_server)
|
||||
FN_GLOBAL_STRING(defaultservice, defaultservice)
|
||||
FN_GLOBAL_STRING(deleteprinter_command, deleteprinter_command)
|
||||
FN_GLOBAL_STRING(delete_share_command, delete_share_command)
|
||||
FN_GLOBAL_STRING(delete_group_script, delete_group_script)
|
||||
FN_GLOBAL_STRING(delete_user_from_group_script, delete_user_from_group_script)
|
||||
FN_GLOBAL_STRING(delete_user_script, delete_user_script)
|
||||
FN_GLOBAL_STRING(enumports_command, enumports_command)
|
||||
FN_GLOBAL_STRING(get_quota_command, get_quota_command)
|
||||
FN_GLOBAL_STRING(iprint_server, iprint_server)
|
||||
FN_GLOBAL_STRING(ldap_admin_dn, ldap_admin_dn)
|
||||
FN_GLOBAL_STRING(ldap_suffix, ldap_suffix)
|
||||
FN_GLOBAL_STRING(logfile, logfile)
|
||||
FN_GLOBAL_STRING(log_nt_token_command, log_nt_token_command)
|
||||
FN_GLOBAL_STRING(mangling_method, mangling_method)
|
||||
FN_GLOBAL_STRING(message_command, message_command)
|
||||
FN_GLOBAL_STRING(homedir_map, homedir_map)
|
||||
FN_GLOBAL_STRING(os2_driver_map, os2_driver_map)
|
||||
FN_GLOBAL_STRING(panic_action, panic_action)
|
||||
FN_GLOBAL_STRING(passwd_chat, passwd_chat)
|
||||
FN_GLOBAL_STRING(passwd_program, passwd_program)
|
||||
FN_GLOBAL_STRING(perfcount_module, perfcount_module)
|
||||
FN_GLOBAL_STRING(remote_announce, remote_announce)
|
||||
FN_GLOBAL_STRING(remote_browse_sync, remote_browse_sync)
|
||||
FN_GLOBAL_STRING(rename_user_script, rename_user_script)
|
||||
FN_GLOBAL_STRING(root_directory, root_directory)
|
||||
FN_GLOBAL_STRING(server_string, server_string)
|
||||
FN_GLOBAL_STRING(set_primary_group_script, set_primary_group_script)
|
||||
FN_GLOBAL_STRING(set_quota_command, set_quota_command)
|
||||
FN_GLOBAL_STRING(share_backend, share_backend)
|
||||
FN_GLOBAL_STRING(shutdown_script, shutdown_script)
|
||||
FN_GLOBAL_STRING(username_map_script, username_map_script)
|
||||
FN_GLOBAL_STRING(username_map, username_map)
|
||||
FN_GLOBAL_STRING(usershare_path, usershare_path)
|
||||
FN_GLOBAL_STRING(wins_hook, wins_hook)
|
||||
FN_GLOBAL_STRING(usershare_template_share, usershare_template_share)
|
||||
FN_GLOBAL_STRING(log_level, log_level)
|
@ -1,10 +1,16 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
bld.SAMBA_GENERATOR('param_functions.c',
|
||||
source= '../../script/generate_param.py ../../docs-xml/smbdotconf/parameters.all.xml',
|
||||
target='param_functions.c',
|
||||
group='build_source',
|
||||
rule='${PYTHON} ${SRC[0].abspath(env)} --file ${SRC[1].abspath(env)} --output ${TGT}')
|
||||
|
||||
bld.SAMBA_GENERATOR('param_local_h',
|
||||
source= '../../script/mkparamdefs.pl param_functions.c ',
|
||||
source= '../../script/mkparamdefs.pl loadparm.c param_functions.c ',
|
||||
target='param_local.h',
|
||||
group='build_source',
|
||||
rule='${PERL} ${SRC[0].abspath(env)} ${SRC[1].abspath(env)} --file ${TGT} --generate-scope=LOCAL')
|
||||
rule='${PERL} ${SRC[0].abspath(env)} ${SRC[1].abspath(env)} ${SRC[2].abspath(env)} --file ${TGT} --generate-scope=LOCAL')
|
||||
|
||||
|
||||
bld.SAMBA_GENERATOR('s3_param_h',
|
||||
|
113
script/generate_param.py
Normal file
113
script/generate_param.py
Normal file
@ -0,0 +1,113 @@
|
||||
# Unix SMB/CIFS implementation.
|
||||
# Copyright (C) 2014 Catalyst.Net Ltd
|
||||
#
|
||||
# Auto generate param_functions.c
|
||||
#
|
||||
# ** NOTE! The following LGPL license applies to the ldb
|
||||
# ** library. This does NOT imply that all of Samba is released
|
||||
# ** under the LGPL
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 3 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import errno
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import xml.etree.ElementTree as ET
|
||||
import sys
|
||||
import optparse
|
||||
|
||||
# parse command line arguments
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("-f", "--file", dest="filename",
|
||||
help="input file", metavar="FILE")
|
||||
parser.add_option("-o", "--output", dest="output",
|
||||
help='output file', metavar="FILE")
|
||||
parser.add_option("--mode", type="choice", metavar="<FUNCTIONS>",
|
||||
choices=["FUNCTIONS"], default="FUNCTIONS")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
if options.filename is None:
|
||||
parser.error("No input file specified")
|
||||
if options.output is None:
|
||||
parser.error("No output file specified")
|
||||
|
||||
def iterate_all(path):
|
||||
"""Iterate and yield all the parameters.
|
||||
|
||||
:param path: path to parameters xml file
|
||||
"""
|
||||
|
||||
try:
|
||||
p = open(path, 'r')
|
||||
except IOError, e:
|
||||
raise Exception("Error opening parameters file")
|
||||
out = p.read()
|
||||
|
||||
# parse the parameters xml file
|
||||
root = ET.fromstring(out)
|
||||
for parameter in root:
|
||||
name = parameter.attrib.get("name")
|
||||
param_type = parameter.attrib.get("type")
|
||||
context = parameter.attrib.get("context")
|
||||
func = parameter.attrib.get("function")
|
||||
synonym = parameter.attrib.get("synonym")
|
||||
removed = parameter.attrib.get("removed")
|
||||
generated = parameter.attrib.get("generated_function")
|
||||
if synonym == "1" or removed == "1" or generated == "0":
|
||||
continue
|
||||
constant = parameter.attrib.get("constant")
|
||||
parm = parameter.attrib.get("parm")
|
||||
if name is None or param_type is None or context is None:
|
||||
raise Exception("Error parsing parameter: " + name)
|
||||
if func is None:
|
||||
func = name.replace(" ", "_").lower()
|
||||
yield {'name': name,
|
||||
'type': param_type,
|
||||
'context': context,
|
||||
'function': func,
|
||||
'constant': (constant == '1'),
|
||||
'parm': (parm == '1')}
|
||||
|
||||
# map doc attributes to a section of the generated function
|
||||
context_dict = {"G": "_GLOBAL", "S": "_LOCAL"}
|
||||
param_type_dict = {"boolean": "_BOOL", "list": "_LIST", "string": "_STRING",
|
||||
"integer": "_INTEGER", "enum": "_INTEGER", "char" : "_CHAR",
|
||||
"boolean-auto": "_INTEGER"}
|
||||
|
||||
f = open(options.output, 'w')
|
||||
|
||||
try:
|
||||
for parameter in iterate_all(options.filename):
|
||||
# filter out parameteric options
|
||||
if ':' in parameter['name']:
|
||||
continue
|
||||
output_string = "FN"
|
||||
temp = context_dict.get(parameter['context'])
|
||||
if temp is None:
|
||||
raise Exception(parameter['name'] + " has an invalid context " + parameter['context'])
|
||||
output_string += temp
|
||||
if parameter['constant']:
|
||||
output_string += "_CONST"
|
||||
if parameter['parm']:
|
||||
output_string += "_PARM"
|
||||
temp = param_type_dict.get(parameter['type'])
|
||||
if temp is None:
|
||||
raise Exception(parameter['name'] + " has an invalid param type " + parameter['type'])
|
||||
output_string += temp
|
||||
f.write(output_string + "(" + parameter['function'] +", " + parameter['function'] + ')\n')
|
||||
finally:
|
||||
f.close()
|
@ -1238,6 +1238,10 @@ FN_GLOBAL_STRING(configfile, szConfigFile)
|
||||
FN_LOCAL_STRING(servicename, szService)
|
||||
FN_LOCAL_CONST_STRING(const_servicename, szService)
|
||||
|
||||
/* These functions cannot be auto-generated */
|
||||
FN_LOCAL_BOOL(autoloaded, autoloaded)
|
||||
FN_GLOBAL_CONST_STRING(dnsdomain, dnsdomain)
|
||||
|
||||
/* local prototypes */
|
||||
|
||||
static int map_parameter_canonical(const char *pszParmName, bool *inverse);
|
||||
|
Loading…
x
Reference in New Issue
Block a user