Merge branch 'master' of ssh://git.samba.org/data/git/samba
authorAndrew Tridgell <tridge@samba.org>
Tue, 16 Dec 2008 20:17:54 +0000 (07:17 +1100)
committerAndrew Tridgell <tridge@samba.org>
Tue, 16 Dec 2008 20:17:54 +0000 (07:17 +1100)
237 files changed:
.gitignore
docs-xml/manpages-3/idmap_ad.8.xml
docs-xml/manpages-3/tdbtool.8.xml
docs-xml/smbdotconf/vfs/aclcompatibility.xml
lib/tdb/tools/tdbtool.c
librpc/build_idl.sh [new file with mode: 0755]
librpc/gen_ndr/cli_dfs.c [moved from source3/librpc/gen_ndr/cli_dfs.c with 99% similarity]
librpc/gen_ndr/cli_dfs.h [moved from source3/librpc/gen_ndr/cli_dfs.h with 99% similarity]
librpc/gen_ndr/cli_drsuapi.c [moved from source3/librpc/gen_ndr/cli_drsuapi.c with 99% similarity]
librpc/gen_ndr/cli_drsuapi.h [moved from source3/librpc/gen_ndr/cli_drsuapi.h with 99% similarity]
librpc/gen_ndr/cli_dssetup.c [moved from source3/librpc/gen_ndr/cli_dssetup.c with 99% similarity]
librpc/gen_ndr/cli_dssetup.h [moved from source3/librpc/gen_ndr/cli_dssetup.h with 97% similarity]
librpc/gen_ndr/cli_echo.c [moved from source3/librpc/gen_ndr/cli_echo.c with 99% similarity]
librpc/gen_ndr/cli_echo.h [moved from source3/librpc/gen_ndr/cli_echo.h with 97% similarity]
librpc/gen_ndr/cli_epmapper.c [moved from source3/librpc/gen_ndr/cli_epmapper.c with 99% similarity]
librpc/gen_ndr/cli_epmapper.h [moved from source3/librpc/gen_ndr/cli_epmapper.h with 97% similarity]
librpc/gen_ndr/cli_eventlog.c [moved from source3/librpc/gen_ndr/cli_eventlog.c with 99% similarity]
librpc/gen_ndr/cli_eventlog.h [moved from source3/librpc/gen_ndr/cli_eventlog.h with 98% similarity]
librpc/gen_ndr/cli_initshutdown.c [moved from source3/librpc/gen_ndr/cli_initshutdown.c with 98% similarity]
librpc/gen_ndr/cli_initshutdown.h [moved from source3/librpc/gen_ndr/cli_initshutdown.h with 95% similarity]
librpc/gen_ndr/cli_lsa.c [moved from source3/librpc/gen_ndr/cli_lsa.c with 99% similarity]
librpc/gen_ndr/cli_lsa.h [moved from source3/librpc/gen_ndr/cli_lsa.h with 99% similarity]
librpc/gen_ndr/cli_netlogon.c [moved from source3/librpc/gen_ndr/cli_netlogon.c with 99% similarity]
librpc/gen_ndr/cli_netlogon.h [moved from source3/librpc/gen_ndr/cli_netlogon.h with 99% similarity]
librpc/gen_ndr/cli_ntsvcs.c [moved from source3/librpc/gen_ndr/cli_ntsvcs.c with 99% similarity]
librpc/gen_ndr/cli_ntsvcs.h [moved from source3/librpc/gen_ndr/cli_ntsvcs.h with 99% similarity]
librpc/gen_ndr/cli_samr.c [moved from source3/librpc/gen_ndr/cli_samr.c with 99% similarity]
librpc/gen_ndr/cli_samr.h [moved from source3/librpc/gen_ndr/cli_samr.h with 99% similarity]
librpc/gen_ndr/cli_srvsvc.c [moved from source3/librpc/gen_ndr/cli_srvsvc.c with 99% similarity]
librpc/gen_ndr/cli_srvsvc.h [moved from source3/librpc/gen_ndr/cli_srvsvc.h with 99% similarity]
librpc/gen_ndr/cli_svcctl.c [moved from source3/librpc/gen_ndr/cli_svcctl.c with 99% similarity]
librpc/gen_ndr/cli_svcctl.h [moved from source3/librpc/gen_ndr/cli_svcctl.h with 99% similarity]
librpc/gen_ndr/cli_winreg.c [moved from source3/librpc/gen_ndr/cli_winreg.c with 99% similarity]
librpc/gen_ndr/cli_winreg.h [moved from source3/librpc/gen_ndr/cli_winreg.h with 99% similarity]
librpc/gen_ndr/cli_wkssvc.c [moved from source3/librpc/gen_ndr/cli_wkssvc.c with 99% similarity]
librpc/gen_ndr/cli_wkssvc.h [moved from source3/librpc/gen_ndr/cli_wkssvc.h with 99% similarity]
librpc/gen_ndr/dfs.h [moved from source3/librpc/gen_ndr/dfs.h with 100% similarity]
librpc/gen_ndr/drsblobs.h [moved from source3/librpc/gen_ndr/drsblobs.h with 100% similarity]
librpc/gen_ndr/drsuapi.h [moved from source3/librpc/gen_ndr/drsuapi.h with 100% similarity]
librpc/gen_ndr/dssetup.h [moved from source3/librpc/gen_ndr/dssetup.h with 100% similarity]
librpc/gen_ndr/echo.h [moved from source3/librpc/gen_ndr/echo.h with 100% similarity]
librpc/gen_ndr/epmapper.h [moved from source3/librpc/gen_ndr/epmapper.h with 100% similarity]
librpc/gen_ndr/eventlog.h [moved from source3/librpc/gen_ndr/eventlog.h with 100% similarity]
librpc/gen_ndr/initshutdown.h [moved from source3/librpc/gen_ndr/initshutdown.h with 100% similarity]
librpc/gen_ndr/krb5pac.h [moved from source3/librpc/gen_ndr/krb5pac.h with 100% similarity]
librpc/gen_ndr/lsa.h [moved from source3/librpc/gen_ndr/lsa.h with 100% similarity]
librpc/gen_ndr/misc.h [moved from source3/librpc/gen_ndr/misc.h with 100% similarity]
librpc/gen_ndr/named_pipe_auth.h [moved from source3/librpc/gen_ndr/named_pipe_auth.h with 100% similarity]
librpc/gen_ndr/nbt.h [moved from source3/librpc/gen_ndr/nbt.h with 100% similarity]
librpc/gen_ndr/ndr_dfs.c [moved from source3/librpc/gen_ndr/ndr_dfs.c with 99% similarity]
librpc/gen_ndr/ndr_dfs.h [moved from source3/librpc/gen_ndr/ndr_dfs.h with 99% similarity]
librpc/gen_ndr/ndr_drsblobs.c [moved from source3/librpc/gen_ndr/ndr_drsblobs.c with 99% similarity]
librpc/gen_ndr/ndr_drsblobs.h [moved from source3/librpc/gen_ndr/ndr_drsblobs.h with 99% similarity]
librpc/gen_ndr/ndr_drsuapi.c [moved from source3/librpc/gen_ndr/ndr_drsuapi.c with 99% similarity]
librpc/gen_ndr/ndr_drsuapi.h [moved from source3/librpc/gen_ndr/ndr_drsuapi.h with 99% similarity]
librpc/gen_ndr/ndr_dssetup.c [moved from source3/librpc/gen_ndr/ndr_dssetup.c with 99% similarity]
librpc/gen_ndr/ndr_dssetup.h [moved from source3/librpc/gen_ndr/ndr_dssetup.h with 98% similarity]
librpc/gen_ndr/ndr_echo.c [moved from source3/librpc/gen_ndr/ndr_echo.c with 99% similarity]
librpc/gen_ndr/ndr_echo.h [moved from source3/librpc/gen_ndr/ndr_echo.h with 98% similarity]
librpc/gen_ndr/ndr_epmapper.c [moved from source3/librpc/gen_ndr/ndr_epmapper.c with 99% similarity]
librpc/gen_ndr/ndr_epmapper.h [moved from source3/librpc/gen_ndr/ndr_epmapper.h with 99% similarity]
librpc/gen_ndr/ndr_eventlog.c [moved from source3/librpc/gen_ndr/ndr_eventlog.c with 99% similarity]
librpc/gen_ndr/ndr_eventlog.h [moved from source3/librpc/gen_ndr/ndr_eventlog.h with 99% similarity]
librpc/gen_ndr/ndr_initshutdown.c [moved from source3/librpc/gen_ndr/ndr_initshutdown.c with 99% similarity]
librpc/gen_ndr/ndr_initshutdown.h [moved from source3/librpc/gen_ndr/ndr_initshutdown.h with 95% similarity]
librpc/gen_ndr/ndr_krb5pac.c [moved from source3/librpc/gen_ndr/ndr_krb5pac.c with 99% similarity]
librpc/gen_ndr/ndr_krb5pac.h [moved from source3/librpc/gen_ndr/ndr_krb5pac.h with 99% similarity]
librpc/gen_ndr/ndr_lsa.c [moved from source3/librpc/gen_ndr/ndr_lsa.c with 99% similarity]
librpc/gen_ndr/ndr_lsa.h [moved from source3/librpc/gen_ndr/ndr_lsa.h with 99% similarity]
librpc/gen_ndr/ndr_misc.c [moved from source3/librpc/gen_ndr/ndr_misc.c with 99% similarity]
librpc/gen_ndr/ndr_misc.h [moved from source3/librpc/gen_ndr/ndr_misc.h with 97% similarity]
librpc/gen_ndr/ndr_named_pipe_auth.c [moved from source3/librpc/gen_ndr/ndr_named_pipe_auth.c with 99% similarity]
librpc/gen_ndr/ndr_named_pipe_auth.h [moved from source3/librpc/gen_ndr/ndr_named_pipe_auth.h with 96% similarity]
librpc/gen_ndr/ndr_nbt.c [moved from source3/librpc/gen_ndr/ndr_nbt.c with 99% similarity]
librpc/gen_ndr/ndr_nbt.h [moved from source3/librpc/gen_ndr/ndr_nbt.h with 99% similarity]
librpc/gen_ndr/ndr_netlogon.c [moved from source3/librpc/gen_ndr/ndr_netlogon.c with 99% similarity]
librpc/gen_ndr/ndr_netlogon.h [moved from source3/librpc/gen_ndr/ndr_netlogon.h with 99% similarity]
librpc/gen_ndr/ndr_ntsvcs.c [moved from source3/librpc/gen_ndr/ndr_ntsvcs.c with 99% similarity]
librpc/gen_ndr/ndr_ntsvcs.h [moved from source3/librpc/gen_ndr/ndr_ntsvcs.h with 99% similarity]
librpc/gen_ndr/ndr_samr.c [moved from source3/librpc/gen_ndr/ndr_samr.c with 99% similarity]
librpc/gen_ndr/ndr_samr.h [moved from source3/librpc/gen_ndr/ndr_samr.h with 99% similarity]
librpc/gen_ndr/ndr_security.c [moved from source3/librpc/gen_ndr/ndr_security.c with 99% similarity]
librpc/gen_ndr/ndr_security.h [moved from source3/librpc/gen_ndr/ndr_security.h with 98% similarity]
librpc/gen_ndr/ndr_srvsvc.c [moved from source3/librpc/gen_ndr/ndr_srvsvc.c with 99% similarity]
librpc/gen_ndr/ndr_srvsvc.h [moved from source3/librpc/gen_ndr/ndr_srvsvc.h with 99% similarity]
librpc/gen_ndr/ndr_svcctl.c [moved from source3/librpc/gen_ndr/ndr_svcctl.c with 99% similarity]
librpc/gen_ndr/ndr_svcctl.h [moved from source3/librpc/gen_ndr/ndr_svcctl.h with 99% similarity]
librpc/gen_ndr/ndr_winreg.c [moved from source3/librpc/gen_ndr/ndr_winreg.c with 99% similarity]
librpc/gen_ndr/ndr_winreg.h [moved from source3/librpc/gen_ndr/ndr_winreg.h with 99% similarity]
librpc/gen_ndr/ndr_wkssvc.c [moved from source3/librpc/gen_ndr/ndr_wkssvc.c with 99% similarity]
librpc/gen_ndr/ndr_wkssvc.h [moved from source3/librpc/gen_ndr/ndr_wkssvc.h with 99% similarity]
librpc/gen_ndr/ndr_xattr.c [moved from source3/librpc/gen_ndr/ndr_xattr.c with 99% similarity]
librpc/gen_ndr/ndr_xattr.h [moved from source3/librpc/gen_ndr/ndr_xattr.h with 98% similarity]
librpc/gen_ndr/netlogon.h [moved from source3/librpc/gen_ndr/netlogon.h with 100% similarity]
librpc/gen_ndr/ntsvcs.h [moved from source3/librpc/gen_ndr/ntsvcs.h with 100% similarity]
librpc/gen_ndr/samr.h [moved from source3/librpc/gen_ndr/samr.h with 100% similarity]
librpc/gen_ndr/security.h [moved from source3/librpc/gen_ndr/security.h with 99% similarity]
librpc/gen_ndr/srv_dfs.c [moved from source3/librpc/gen_ndr/srv_dfs.c with 99% similarity]
librpc/gen_ndr/srv_dfs.h [moved from source3/librpc/gen_ndr/srv_dfs.h with 97% similarity]
librpc/gen_ndr/srv_dssetup.c [moved from source3/librpc/gen_ndr/srv_dssetup.c with 99% similarity]
librpc/gen_ndr/srv_dssetup.h [moved from source3/librpc/gen_ndr/srv_dssetup.h with 96% similarity]
librpc/gen_ndr/srv_echo.c [moved from source3/librpc/gen_ndr/srv_echo.c with 99% similarity]
librpc/gen_ndr/srv_echo.h [moved from source3/librpc/gen_ndr/srv_echo.h with 95% similarity]
librpc/gen_ndr/srv_epmapper.c [moved from source3/librpc/gen_ndr/srv_epmapper.c with 99% similarity]
librpc/gen_ndr/srv_epmapper.h [moved from source3/librpc/gen_ndr/srv_epmapper.h with 93% similarity]
librpc/gen_ndr/srv_eventlog.c [moved from source3/librpc/gen_ndr/srv_eventlog.c with 99% similarity]
librpc/gen_ndr/srv_eventlog.h [moved from source3/librpc/gen_ndr/srv_eventlog.h with 98% similarity]
librpc/gen_ndr/srv_initshutdown.c [moved from source3/librpc/gen_ndr/srv_initshutdown.c with 99% similarity]
librpc/gen_ndr/srv_initshutdown.h [moved from source3/librpc/gen_ndr/srv_initshutdown.h with 89% similarity]
librpc/gen_ndr/srv_lsa.c [moved from source3/librpc/gen_ndr/srv_lsa.c with 99% similarity]
librpc/gen_ndr/srv_lsa.h [moved from source3/librpc/gen_ndr/srv_lsa.h with 99% similarity]
librpc/gen_ndr/srv_netlogon.c [moved from source3/librpc/gen_ndr/srv_netlogon.c with 99% similarity]
librpc/gen_ndr/srv_netlogon.h [moved from source3/librpc/gen_ndr/srv_netlogon.h with 98% similarity]
librpc/gen_ndr/srv_ntsvcs.c [moved from source3/librpc/gen_ndr/srv_ntsvcs.c with 99% similarity]
librpc/gen_ndr/srv_ntsvcs.h [moved from source3/librpc/gen_ndr/srv_ntsvcs.h with 99% similarity]
librpc/gen_ndr/srv_samr.c [moved from source3/librpc/gen_ndr/srv_samr.c with 99% similarity]
librpc/gen_ndr/srv_samr.h [moved from source3/librpc/gen_ndr/srv_samr.h with 99% similarity]
librpc/gen_ndr/srv_srvsvc.c [moved from source3/librpc/gen_ndr/srv_srvsvc.c with 99% similarity]
librpc/gen_ndr/srv_srvsvc.h [moved from source3/librpc/gen_ndr/srv_srvsvc.h with 99% similarity]
librpc/gen_ndr/srv_svcctl.c [moved from source3/librpc/gen_ndr/srv_svcctl.c with 99% similarity]
librpc/gen_ndr/srv_svcctl.h [moved from source3/librpc/gen_ndr/srv_svcctl.h with 98% similarity]
librpc/gen_ndr/srv_winreg.c [moved from source3/librpc/gen_ndr/srv_winreg.c with 99% similarity]
librpc/gen_ndr/srv_winreg.h [moved from source3/librpc/gen_ndr/srv_winreg.h with 98% similarity]
librpc/gen_ndr/srv_wkssvc.c [moved from source3/librpc/gen_ndr/srv_wkssvc.c with 99% similarity]
librpc/gen_ndr/srv_wkssvc.h [moved from source3/librpc/gen_ndr/srv_wkssvc.h with 98% similarity]
librpc/gen_ndr/srvsvc.h [moved from source3/librpc/gen_ndr/srvsvc.h with 100% similarity]
librpc/gen_ndr/svcctl.h [moved from source3/librpc/gen_ndr/svcctl.h with 100% similarity]
librpc/gen_ndr/tables.c [moved from source3/librpc/gen_ndr/tables.c with 100% similarity]
librpc/gen_ndr/winreg.h [moved from source3/librpc/gen_ndr/winreg.h with 100% similarity]
librpc/gen_ndr/wkssvc.h [moved from source3/librpc/gen_ndr/wkssvc.h with 100% similarity]
librpc/gen_ndr/xattr.h [moved from source3/librpc/gen_ndr/xattr.h with 100% similarity]
librpc/idl/dcom.idl
librpc/idl/oxidresolver.idl
librpc/idl/remact.idl
librpc/idl/scerpc.idl [moved from source4/librpc/idl/scerpc.idl with 100% similarity]
librpc/idl/security.idl
librpc/tables.pl [changed mode: 0644->0755]
nsswitch/config.m4 [moved from source4/nsswitch/config.m4 with 78% similarity]
nsswitch/config.mk [moved from source4/nsswitch/config.mk with 95% similarity]
nsswitch/libwbclient/Doxyfile [moved from source3/nsswitch/libwbclient/Doxyfile with 82% similarity]
nsswitch/libwbclient/libwbclient.h [moved from source3/nsswitch/libwbclient/libwbclient.h with 100% similarity]
nsswitch/libwbclient/wbc_err_internal.h [moved from source3/nsswitch/libwbclient/wbc_err_internal.h with 100% similarity]
nsswitch/libwbclient/wbc_guid.c [moved from source3/nsswitch/libwbclient/wbc_guid.c with 100% similarity]
nsswitch/libwbclient/wbc_idmap.c [moved from source3/nsswitch/libwbclient/wbc_idmap.c with 100% similarity]
nsswitch/libwbclient/wbc_pam.c [moved from source3/nsswitch/libwbclient/wbc_pam.c with 100% similarity]
nsswitch/libwbclient/wbc_pwd.c [moved from source3/nsswitch/libwbclient/wbc_pwd.c with 100% similarity]
nsswitch/libwbclient/wbc_sid.c [moved from source3/nsswitch/libwbclient/wbc_sid.c with 100% similarity]
nsswitch/libwbclient/wbc_util.c [moved from source3/nsswitch/libwbclient/wbc_util.c with 98% similarity]
nsswitch/libwbclient/wbclient.c [moved from source3/nsswitch/libwbclient/wbclient.c with 99% similarity]
nsswitch/libwbclient/wbclient.h [moved from source3/nsswitch/libwbclient/wbclient.h with 99% similarity]
nsswitch/libwbclient/wbclient_internal.h [moved from source3/nsswitch/libwbclient/wbclient_internal.h with 100% similarity]
nsswitch/nsstest.c [moved from source4/nsswitch/nsstest.c with 95% similarity]
nsswitch/nsstest.h [moved from source4/nsswitch/nsstest.h with 99% similarity]
nsswitch/nsstest.m4 [moved from source4/nsswitch/nsstest.m4 with 87% similarity]
nsswitch/pam_winbind.c [moved from source3/nsswitch/pam_winbind.c with 100% similarity]
nsswitch/pam_winbind.h [moved from source3/nsswitch/pam_winbind.h with 97% similarity]
nsswitch/tests/test_wbinfo.sh [moved from source4/nsswitch/tests/test_wbinfo.sh with 98% similarity]
nsswitch/wb_common.c [moved from source3/nsswitch/wb_common.c with 95% similarity]
nsswitch/wbinfo.c [moved from source3/nsswitch/wbinfo.c with 99% similarity]
nsswitch/wbinfo4.c [moved from source4/nsswitch/wbinfo.c with 95% similarity]
nsswitch/winbind_client.h [moved from source3/nsswitch/winbind_client.h with 90% similarity]
nsswitch/winbind_krb5_locator.c [moved from source3/nsswitch/winbind_krb5_locator.c with 100% similarity]
nsswitch/winbind_nss.h [moved from source4/nsswitch/winbind_nss.h with 96% similarity]
nsswitch/winbind_nss_aix.c [moved from source3/nsswitch/winbind_nss_aix.c with 96% similarity]
nsswitch/winbind_nss_config.h [moved from source3/nsswitch/winbind_nss_config.h with 96% similarity]
nsswitch/winbind_nss_freebsd.c [moved from source3/nsswitch/winbind_nss_freebsd.c with 97% similarity]
nsswitch/winbind_nss_hpux.h [moved from source4/nsswitch/winbind_nss_hpux.h with 98% similarity]
nsswitch/winbind_nss_irix.c [moved from source3/nsswitch/winbind_nss_irix.c with 97% similarity]
nsswitch/winbind_nss_irix.h [moved from source3/nsswitch/winbind_nss_irix.h with 98% similarity]
nsswitch/winbind_nss_linux.c [moved from source3/nsswitch/winbind_nss_linux.c with 96% similarity]
nsswitch/winbind_nss_linux.h [moved from source3/nsswitch/winbind_nss_linux.h with 98% similarity]
nsswitch/winbind_nss_netbsd.c [moved from source3/nsswitch/winbind_nss_netbsd.c with 100% similarity]
nsswitch/winbind_nss_netbsd.h [moved from source4/nsswitch/winbind_nss_netbsd.h with 98% similarity]
nsswitch/winbind_nss_solaris.c [moved from source3/nsswitch/winbind_nss_solaris.c with 97% similarity]
nsswitch/winbind_nss_solaris.h [moved from source4/nsswitch/winbind_nss_solaris.h with 94% similarity]
nsswitch/winbind_struct_protocol.h [moved from source3/nsswitch/winbind_struct_protocol.h with 98% similarity]
nsswitch/wins.c [moved from source3/nsswitch/wins.c with 99% similarity]
pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm
pidl/lib/Parse/Pidl/Samba4.pm
pidl/lib/Parse/Pidl/Samba4/COM/Header.pm
pidl/lib/Parse/Pidl/Samba4/COM/Proxy.pm
pidl/lib/Parse/Pidl/Samba4/SWIG.pm [deleted file]
pidl/pidl
source3/Makefile.in
source3/configure.in
source3/include/libsmb_internal.h
source3/lib/util_sock.c
source3/librpc/gen_ndr/dom_sid.h [deleted file]
source3/librpc/gen_ndr/ndr_dom_sid.h [deleted file]
source3/librpc/gen_ndr/ndr_notify.c
source3/librpc/gen_ndr/notify.h
source3/librpc/idl/dom_sid.idl [deleted file]
source3/librpc/idl/notify.idl [new file with mode: 0644]
source3/libsmb/libsmb_dir.c
source3/modules/getdate.c
source3/modules/getdate.y
source3/nsswitch/winbind_nss.h [deleted file]
source3/nsswitch/winbind_nss_hpux.h [deleted file]
source3/nsswitch/winbind_nss_netbsd.h [deleted file]
source3/nsswitch/winbind_nss_solaris.h [deleted file]
source3/rpc_parse/parse_misc.c
source3/rpc_parse/parse_prs.c
source3/samba4.m4
source3/samba4.mk
source3/script/build_idl.sh
source3/utils/net_status.c
source4/Makefile
source4/cluster/cluster.c
source4/cluster/ctdb/ctdb_cluster.c
source4/cluster/local.c
source4/configure.ac
source4/lib/ldb/ldb_wrap.c
source4/lib/messaging/irpc.h
source4/librpc/config.mk
source4/librpc/idl-deps.pl [changed mode: 0755->0644]
source4/librpc/idl/notify.idl [moved from librpc/idl/notify.idl with 98% similarity]
source4/librpc/idl/opendb.idl
source4/librpc/idl/server_id.idl [moved from source4/librpc/idl/dom_sid.idl with 89% similarity]
source4/librpc/scripts/build_idl.sh
source4/main.mk
source4/nsswitch/wb_common.c [deleted file]
source4/nsswitch/winbind_client.h [deleted file]
source4/nsswitch/winbind_nss_config.h [deleted file]
source4/nsswitch/winbind_nss_irix.h [deleted file]
source4/nsswitch/winbind_nss_linux.c [deleted file]
source4/nsswitch/winbind_nss_linux.h [deleted file]
source4/nsswitch/winbind_struct_protocol.h [deleted file]
source4/ntvfs/ntvfs.h
source4/rpc_server/dcerpc_server.c
source4/rpc_server/dcerpc_server.h
source4/selftest/tests.sh
source4/setup/provision
source4/smbd/service_stream.h
source4/smbd/service_task.h
source4/torture/rpc/oxidresolve.c
source4/torture/rpc/remact.c
source4/winbind/wb_samba3_protocol.c

index e617400cc5c088791628f9fd70e5928d4c8575f2..e2f7500781f82f65d70008218af831a280eaa81e 100644 (file)
@@ -51,6 +51,8 @@ examples/VFS/skel_transparent.so
 *.po
 *.pyc
 semantic.cache
+nsswitch/libnss_winbind.so
+nsswitch/libnss_wins.so
 source3/bin/*
 source3/config.cache
 source3/config.log
@@ -72,28 +74,28 @@ source3/include/version.h
 source3/lib/netapi/examples/Makefile
 source3/lib/netapi/tests/Makefile
 source3/library-versions
-source3/librpc/gen_ndr/cli_krb5pac.*
+librpc/gen_ndr/cli_krb5pac.*
 source3/librpc/gen_ndr/cli_libnetapi.c
 source3/librpc/gen_ndr/cli_libnetapi.h
 source3/librpc/gen_ndr/cli_messaging.*
-source3/librpc/gen_ndr/cli_misc.*
-source3/librpc/gen_ndr/cli_nbt.c
-source3/librpc/gen_ndr/cli_nbt.h
+librpc/gen_ndr/cli_misc.*
+librpc/gen_ndr/cli_nbt.c
+librpc/gen_ndr/cli_nbt.h
 source3/librpc/gen_ndr/cli_notify.*
-source3/librpc/gen_ndr/cli_security.*
-source3/librpc/gen_ndr/cli_xattr.*
-source3/librpc/gen_ndr/srv_drsuapi.c
-source3/librpc/gen_ndr/srv_drsuapi.h
-source3/librpc/gen_ndr/srv_krb5pac.*
+librpc/gen_ndr/cli_security.*
+librpc/gen_ndr/cli_xattr.*
+librpc/gen_ndr/srv_drsuapi.c
+librpc/gen_ndr/srv_drsuapi.h
+librpc/gen_ndr/srv_krb5pac.*
 source3/librpc/gen_ndr/srv_libnetapi.c
 source3/librpc/gen_ndr/srv_libnetapi.h
 source3/librpc/gen_ndr/srv_messaging.*
-source3/librpc/gen_ndr/srv_misc.*
-source3/librpc/gen_ndr/srv_nbt.c
-source3/librpc/gen_ndr/srv_nbt.h
+librpc/gen_ndr/srv_misc.*
+librpc/gen_ndr/srv_nbt.c
+librpc/gen_ndr/srv_nbt.h
 source3/librpc/gen_ndr/srv_notify.*
-source3/librpc/gen_ndr/srv_security.*
-source3/librpc/gen_ndr/srv_xattr.*
+librpc/gen_ndr/srv_security.*
+librpc/gen_ndr/srv_xattr.*
 source3/Makefile
 source3/nsswitch/*.so
 source3/pkgconfig/*.pc
@@ -307,7 +309,41 @@ tags
 packaging/RHEL-CTDB/samba.spec
 packaging/RHEL/samba.spec
 packaging/RHEL/makerpms.sh
-source3/librpc/gen_ndr/cli_drsblobs.c
-source3/librpc/gen_ndr/cli_drsblobs.h
-source3/librpc/gen_ndr/srv_drsblobs.c
-source3/librpc/gen_ndr/srv_drsblobs.h
+librpc/gen_ndr/cli_drsblobs.c
+librpc/gen_ndr/cli_drsblobs.h
+librpc/gen_ndr/srv_drsblobs.c
+librpc/gen_ndr/srv_drsblobs.h
+source3/setup
+librpc/gen_ndr/*wzcsvc*
+librpc/gen_ndr/*w32time*
+librpc/gen_ndr/*wmi*
+librpc/gen_ndr/*trkwks*
+librpc/gen_ndr/*spoolss*
+librpc/gen_ndr/*rot*
+librpc/gen_ndr/*remact*
+librpc/gen_ndr/*oxidresolver*
+librpc/gen_ndr/*msgsvc*
+librpc/gen_ndr/*mgmt*
+librpc/gen_ndr/*keysvc*
+librpc/gen_ndr/*protected_storage*
+librpc/gen_ndr/*dnsserver*
+librpc/gen_ndr/*scerpc*
+librpc/gen_ndr/*policyagent*
+librpc/gen_ndr/*scerpc*
+librpc/gen_ndr/*orpc*
+librpc/gen_ndr/*efs*
+librpc/gen_ndr/*dsbackup*
+librpc/gen_ndr/*frsrpc*
+librpc/gen_ndr/*dcom*
+librpc/gen_ndr/*frsapi*
+librpc/gen_ndr/*dbgidl*
+librpc/gen_ndr/*browser*
+librpc/gen_ndr/*atsvc*
+librpc/gen_ndr/*audiosrv*
+librpc/gen_ndr/*unixinfo*
+librpc/gen_ndr/py_*
+librpc/gen_ndr/*_c.c
+librpc/gen_ndr/*_c.h
+librpc/gen_ndr/*_s.c
+librpc/gen_ndr/cli_named_pipe_auth.[ch]
+librpc/gen_ndr/srv_named_pipe_auth.[ch]
index fb0792eb9e70d8cfbefe44b3e561b4c90e017255..9437d34000be0bf7c1461f84a43df5afb05f4fe3 100644 (file)
@@ -23,8 +23,8 @@
        extensions. This module implements only the &quot;idmap&quot;
        API, and is READONLY. Mappings must be provided in advance
        by the administrator by adding the posixAccount/posixGroup
-       classess and relative attribute/value pairs to the users and
-       groups objects in AD</para>
+       classes and relative attribute/value pairs to the user and
+       group objects in the AD.</para>
 </refsynopsisdiv>
 
 <refsect1>
@@ -34,7 +34,7 @@
                <varlistentry>
                <term>range = low - high</term>
                <listitem><para>
-                       Defines the available matching uid and gid range for which the
+                       Defines the available matching UID and GID range for which the
                        backend is authoritative. Note that the range acts as a filter.
                        If specified any UID or GID stored in AD that fall outside the
                        range is ignored and the corresponding map is discarded.
@@ -47,7 +47,7 @@
                <listitem><para>
                        Defines the schema that idmap_ad should use when querying
                        Active Directory regarding user and group information.
-                       This can either the RFC2307 schema support included
+                       This can be either the RFC2307 schema support included
                        in Windows 2003 R2 or the Service for Unix (SFU) schema.
                </para></listitem>
                </varlistentry>
@@ -58,8 +58,8 @@
        <title>EXAMPLES</title>
        <para>
        The following example shows how to retrieve idmappings from our principal and
-       and trusted AD domains. All is needed is to set default to yes. If trusted
-       domains are present id conflicts must be resolved beforehand, there is no
+       and trusted AD domains. If trusted domains are present id conflicts must be
+       resolved beforehand, there is no
        guarantee on the order conflicting mappings would be resolved at this point.
 
        This example also shows how to leave a small non conflicting range for local
index 3f5dec4ecd8cb90ff4ad2b388b6e7cd7f5c99559..c75059b957efeb5379afa942b5bbed023f04585f 100644 (file)
                </para></listitem>
                </varlistentry>
 
+               <varlistentry>
+               <term>
+               <option>check</option>
+               </term>
+               <listitem><para>Check the integrity of the current database.
+               </para></listitem>
+               </varlistentry>
+
                <varlistentry>
                <term>
                <option>quit</option>
index 7891adc13b5fba95ffcfe47f9d51f15fb8839705..95f42cfe2a8334cc30bfb69ea1a64fd92898e75c 100644 (file)
@@ -1,5 +1,5 @@
 <samba:parameter name="acl compatibility"
-                 context="S"
+                 context="G"
                                 type="enum"
                  advanced="1" developer="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
index d104ccd7c44994e9d0f8ba138cbf4584343983dc..2a11cdaef3d0e22ab9a8739ac2d3c59637a32882 100644 (file)
@@ -57,6 +57,7 @@ enum commands {
        CMD_FIRST,
        CMD_NEXT,
        CMD_SYSTEM,
+       CMD_CHECK,
        CMD_QUIT,
        CMD_HELP
 };
@@ -87,6 +88,7 @@ COMMAND_TABLE cmd_table[] = {
        {"1",           CMD_FIRST},
        {"next",        CMD_NEXT},
        {"n",           CMD_NEXT},
+       {"check",       CMD_CHECK},
        {"quit",        CMD_QUIT},
        {"q",           CMD_QUIT},
        {"!",           CMD_SYSTEM},
@@ -179,7 +181,8 @@ static void help(void)
 "  delete    key        : delete a record by key\n"
 "  list                 : print the database hash table and freelist\n"
 "  free                 : print the database freelist\n"
-"  ! command            : execute system command\n"             
+"  check                : check the integrity of an opened database\n"
+"  ! command            : execute system command\n"
 "  1 | first            : print the first record\n"
 "  n | next             : print the next record\n"
 "  q | quit             : terminate\n"
@@ -452,6 +455,27 @@ static void next_record(TDB_CONTEXT *the_tdb, TDB_DATA *pkey)
                print_rec(the_tdb, *pkey, dbuf, NULL);
 }
 
+static int test_fn(TDB_CONTEXT *the_tdb, TDB_DATA key, TDB_DATA dbuf, void *state)
+{
+       return 0;
+}
+
+static void check_db(TDB_CONTEXT *the_tdb)
+{
+       int tdbcount=-1;
+       if (the_tdb) {
+               tdbcount = tdb_traverse(the_tdb, test_fn, NULL);
+       } else {
+               printf("Error: No database opened!\n");
+       }
+
+       if (tdbcount<0) {
+               printf("Integrity check for the opened database failed.\n");
+       } else {
+               printf("Database integrity is OK and has %d records.\n", tdbcount);
+       }
+}
+
 static int do_command(void)
 {
        COMMAND_TABLE *ctp = cmd_table;
@@ -552,6 +576,9 @@ static int do_command(void)
               if (bIterate)
                  next_record(tdb, &iterate_kbuf);
                return 0;
+           case CMD_CHECK:
+               check_db(tdb);
+               return 0;
            case CMD_HELP:
                help();
                return 0;
diff --git a/librpc/build_idl.sh b/librpc/build_idl.sh
new file mode 100755 (executable)
index 0000000..ac0fab4
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+if [ "$1" = "--full" ]; then
+       FULL=1
+       shift 1
+else
+       FULL=0
+fi
+
+ARGS="--outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --samba3-ndr-client --server --client --python --dcom-proxy --com-header $PIDL_ARGS --"
+IDL_FILES="$*"
+
+oldpwd=`pwd`
+cd ${srcdir}
+
+[ -d $PIDL_OUTPUTDIR ] || mkdir -p $PIDL_OUTPUTDIR || exit 1
+
+PIDL="$PIDL $ARGS"
+
+if [ $FULL = 1 ]; then
+       echo "Rebuilding all idl files"
+       $PIDL $IDL_FILES || exit 1
+       exit 0
+fi
+
+##
+## Find newer files rather than rebuild all of them
+##
+
+list=""
+for f in ${IDL_FILES}; do
+       basename=`basename $f .idl`
+       ndr="$PIDL_OUTPUTDIR/py_$basename.c"
+
+       if [ -f $ndr ]; then
+               if [ "x`find $f -newer $ndr -print`" = "x$f" ]; then
+                       list="$list $f"
+               fi
+       else 
+               list="$list $f"
+       fi
+done
+
+##
+## generate the ndr stubs
+##
+
+if [ "x$list" != x ]; then
+       # echo "${PIDL} ${list}"
+       $PIDL $list || exit 1
+fi
+
+cd ${oldpwd}
+
+exit 0
similarity index 99%
rename from source3/librpc/gen_ndr/cli_dfs.c
rename to librpc/gen_ndr/cli_dfs.c
index 81ec14694ab4e5025127b08f69f06e89df64fe1e..d2c9b4f03f904518c9a94bf16da8a2c7469bb2b5 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_dfs.h"
+#include "../librpc/gen_ndr/cli_dfs.h"
 
 NTSTATUS rpccli_dfs_GetManagerVersion(struct rpc_pipe_client *cli,
                                      TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_dfs.h
rename to librpc/gen_ndr/cli_dfs.h
index 0c862099bf7ac81f0cb3b0a68c9b3e31b6bf40ed..9e40a5695b07702ccd9db1b1b7aba1988b2309ce 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_dfs.h"
+#include "../librpc/gen_ndr/ndr_dfs.h"
 #ifndef __CLI_NETDFS__
 #define __CLI_NETDFS__
 NTSTATUS rpccli_dfs_GetManagerVersion(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_drsuapi.c
rename to librpc/gen_ndr/cli_drsuapi.c
index 57d7a25d9c008d699a62b005a4c9565de1333026..4063a67c43ff11326bac9d5e83103ea062820f07 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_drsuapi.h"
+#include "../librpc/gen_ndr/cli_drsuapi.h"
 
 NTSTATUS rpccli_drsuapi_DsBind(struct rpc_pipe_client *cli,
                               TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_drsuapi.h
rename to librpc/gen_ndr/cli_drsuapi.h
index ab7375f4cae480ccb99d8b00feb4c902861e408b..65bc26a60de99b3c960692e98db2930b92e26e95 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_drsuapi.h"
+#include "../librpc/gen_ndr/ndr_drsuapi.h"
 #ifndef __CLI_DRSUAPI__
 #define __CLI_DRSUAPI__
 NTSTATUS rpccli_drsuapi_DsBind(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_dssetup.c
rename to librpc/gen_ndr/cli_dssetup.c
index 5526f8d59b644817eed455c98f45797b4d9712ff..39abe34d4d1c7804ce813a0c9aab0b29c13ab36a 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_dssetup.h"
+#include "../librpc/gen_ndr/cli_dssetup.h"
 
 NTSTATUS rpccli_dssetup_DsRoleGetPrimaryDomainInformation(struct rpc_pipe_client *cli,
                                                          TALLOC_CTX *mem_ctx,
similarity index 97%
rename from source3/librpc/gen_ndr/cli_dssetup.h
rename to librpc/gen_ndr/cli_dssetup.h
index e2dca43360c22c966dad2a291a8847db31840642..e6847c3e06d9b0e91668b5fe52b06de04e8404e9 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_dssetup.h"
+#include "../librpc/gen_ndr/ndr_dssetup.h"
 #ifndef __CLI_DSSETUP__
 #define __CLI_DSSETUP__
 NTSTATUS rpccli_dssetup_DsRoleGetPrimaryDomainInformation(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_echo.c
rename to librpc/gen_ndr/cli_echo.c
index a775825f5f7f9864e18de9791355fada24c51dae..f59a1918835c1c8c3aa4206284af0a87f3c5191b 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_echo.h"
+#include "../librpc/gen_ndr/cli_echo.h"
 
 NTSTATUS rpccli_echo_AddOne(struct rpc_pipe_client *cli,
                            TALLOC_CTX *mem_ctx,
similarity index 97%
rename from source3/librpc/gen_ndr/cli_echo.h
rename to librpc/gen_ndr/cli_echo.h
index 9da13e97f6a81e7ee3a7a5109866bffea7363233..46dd830a4e48427aa90e982555cf9743b819ed41 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_echo.h"
+#include "../librpc/gen_ndr/ndr_echo.h"
 #ifndef __CLI_RPCECHO__
 #define __CLI_RPCECHO__
 NTSTATUS rpccli_echo_AddOne(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_epmapper.c
rename to librpc/gen_ndr/cli_epmapper.c
index 19673ab659fa9ea6345a98c5622c8bef576ea105..6ef5f9aae5ddcc23cf221f99ad2ddb59a6ed6b12 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_epmapper.h"
+#include "../librpc/gen_ndr/cli_epmapper.h"
 
 NTSTATUS rpccli_epm_Insert(struct rpc_pipe_client *cli,
                           TALLOC_CTX *mem_ctx,
similarity index 97%
rename from source3/librpc/gen_ndr/cli_epmapper.h
rename to librpc/gen_ndr/cli_epmapper.h
index 44884fad7ed4ae643954c2f1996157cd20c3f302..cc1d3a9267badbfc5ac21e730c83146e24b3d05a 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_epmapper.h"
+#include "../librpc/gen_ndr/ndr_epmapper.h"
 #ifndef __CLI_EPMAPPER__
 #define __CLI_EPMAPPER__
 NTSTATUS rpccli_epm_Insert(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_eventlog.c
rename to librpc/gen_ndr/cli_eventlog.c
index 02d8fb2e65105617ac8064d6ec94bda54c0eaf7f..cf441413a795d2384eaa0fd39ee495a0c816ffd2 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_eventlog.h"
+#include "../librpc/gen_ndr/cli_eventlog.h"
 
 NTSTATUS rpccli_eventlog_ClearEventLogW(struct rpc_pipe_client *cli,
                                        TALLOC_CTX *mem_ctx,
similarity index 98%
rename from source3/librpc/gen_ndr/cli_eventlog.h
rename to librpc/gen_ndr/cli_eventlog.h
index 0594a06f59511be393ea3e2a22ce502a905daff6..a1360cbc1651cc5aa02e41db73804dcea72fec2d 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_eventlog.h"
+#include "../librpc/gen_ndr/ndr_eventlog.h"
 #ifndef __CLI_EVENTLOG__
 #define __CLI_EVENTLOG__
 NTSTATUS rpccli_eventlog_ClearEventLogW(struct rpc_pipe_client *cli,
similarity index 98%
rename from source3/librpc/gen_ndr/cli_initshutdown.c
rename to librpc/gen_ndr/cli_initshutdown.c
index bc8ca5b5f128cf64782eabdfb5c5a6bbaf487fb6..40d7bdf40e9b17e98779821b99e5eb3c4c41c4cb 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_initshutdown.h"
+#include "../librpc/gen_ndr/cli_initshutdown.h"
 
 NTSTATUS rpccli_initshutdown_Init(struct rpc_pipe_client *cli,
                                  TALLOC_CTX *mem_ctx,
similarity index 95%
rename from source3/librpc/gen_ndr/cli_initshutdown.h
rename to librpc/gen_ndr/cli_initshutdown.h
index e2eb9daabef8c6f45aaa9bfbb0525badd732c001..9a12c5e6fb049b0abb2eeb7dac36445145521867 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_initshutdown.h"
+#include "../librpc/gen_ndr/ndr_initshutdown.h"
 #ifndef __CLI_INITSHUTDOWN__
 #define __CLI_INITSHUTDOWN__
 NTSTATUS rpccli_initshutdown_Init(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_lsa.c
rename to librpc/gen_ndr/cli_lsa.c
index e7775b1bfe587e04f52562a2ec9e770c73e03d16..306206fcafd6aa0ed7a608f214581f1a67a9e341 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/cli_lsa.h"
 
 NTSTATUS rpccli_lsa_Close(struct rpc_pipe_client *cli,
                          TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_lsa.h
rename to librpc/gen_ndr/cli_lsa.h
index 554182c6dba636a51e23e385953712528f18a8f3..8dbd7330b43daca38835937c5495570c3f4d1064 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa.h"
 #ifndef __CLI_LSARPC__
 #define __CLI_LSARPC__
 NTSTATUS rpccli_lsa_Close(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_netlogon.c
rename to librpc/gen_ndr/cli_netlogon.c
index 1ce4e67c56a638ec69eb30d0246249e082074023..39eaf7bfe97b7d7d0240dc960de247d1de389726 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_netlogon.h"
+#include "../librpc/gen_ndr/cli_netlogon.h"
 
 NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli,
                                   TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_netlogon.h
rename to librpc/gen_ndr/cli_netlogon.h
index 3fbc00e9dab12eb505a4661364b31d7155afb71a..873f519b7054e9755350b2ea337b3c8766711149 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_netlogon.h"
+#include "../librpc/gen_ndr/ndr_netlogon.h"
 #ifndef __CLI_NETLOGON__
 #define __CLI_NETLOGON__
 NTSTATUS rpccli_netr_LogonUasLogon(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_ntsvcs.c
rename to librpc/gen_ndr/cli_ntsvcs.c
index 0f97970e0b3c1afa365344c19f621c088427d379..0736a027f9adff0e19ae1d1c6f41c1d13929f92f 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_ntsvcs.h"
+#include "../librpc/gen_ndr/cli_ntsvcs.h"
 
 NTSTATUS rpccli_PNP_Disconnect(struct rpc_pipe_client *cli,
                               TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_ntsvcs.h
rename to librpc/gen_ndr/cli_ntsvcs.h
index fc4a9f4a71870db5eefcef5d50368c5469ef8e48..c97ced8bf91b979017eaa6bdaba115e9869bb28c 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_ntsvcs.h"
+#include "../librpc/gen_ndr/ndr_ntsvcs.h"
 #ifndef __CLI_NTSVCS__
 #define __CLI_NTSVCS__
 NTSTATUS rpccli_PNP_Disconnect(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_samr.c
rename to librpc/gen_ndr/cli_samr.c
index 7edb790286d91acf18fdcb2fd1c7e44cd6a8e263..9099d0b35d74809c0873c5fbc9628f692556b36f 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_samr.h"
+#include "../librpc/gen_ndr/cli_samr.h"
 
 NTSTATUS rpccli_samr_Connect(struct rpc_pipe_client *cli,
                             TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_samr.h
rename to librpc/gen_ndr/cli_samr.h
index b57d63334e35723dc55d630aa73409974b5004b1..7bfe71b28003f4bc3ed1ddb1d593c9a17665a9aa 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_samr.h"
+#include "../librpc/gen_ndr/ndr_samr.h"
 #ifndef __CLI_SAMR__
 #define __CLI_SAMR__
 NTSTATUS rpccli_samr_Connect(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_srvsvc.c
rename to librpc/gen_ndr/cli_srvsvc.c
index eb81652a1ddb2e36528d35fec2cbcf2068433d21..1428d3d88802cd3a910e1d96c63b97caedf9011b 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_srvsvc.h"
+#include "../librpc/gen_ndr/cli_srvsvc.h"
 
 NTSTATUS rpccli_srvsvc_NetCharDevEnum(struct rpc_pipe_client *cli,
                                      TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_srvsvc.h
rename to librpc/gen_ndr/cli_srvsvc.h
index 44b50e7d1949ff40f8c6d597b2c6c08f6cef4e02..f57bf5d37866f30a986f132793506775f5348d69 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_srvsvc.h"
+#include "../librpc/gen_ndr/ndr_srvsvc.h"
 #ifndef __CLI_SRVSVC__
 #define __CLI_SRVSVC__
 NTSTATUS rpccli_srvsvc_NetCharDevEnum(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_svcctl.c
rename to librpc/gen_ndr/cli_svcctl.c
index 9f11a40d7edaf4276ea618add7c519eb6a52d959..3288e4a1ec76144b8c2cec8cb12e6d4fbc0ada5b 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_svcctl.h"
+#include "../librpc/gen_ndr/cli_svcctl.h"
 
 NTSTATUS rpccli_svcctl_CloseServiceHandle(struct rpc_pipe_client *cli,
                                          TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_svcctl.h
rename to librpc/gen_ndr/cli_svcctl.h
index 78c9bf40d879b228e74e9e31bcfe69ec2897fb82..fbd15b32a5ce27d80a9a2ec0f2a54cbf54b7c1c7 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_svcctl.h"
+#include "../librpc/gen_ndr/ndr_svcctl.h"
 #ifndef __CLI_SVCCTL__
 #define __CLI_SVCCTL__
 NTSTATUS rpccli_svcctl_CloseServiceHandle(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_winreg.c
rename to librpc/gen_ndr/cli_winreg.c
index 17b7281c7218964e14fe4eec2f385c95488443df..58eff22966c9e4aa2ba98156fd84c9b5bf2ec66b 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_winreg.h"
+#include "../librpc/gen_ndr/cli_winreg.h"
 
 NTSTATUS rpccli_winreg_OpenHKCR(struct rpc_pipe_client *cli,
                                TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_winreg.h
rename to librpc/gen_ndr/cli_winreg.h
index fb27bce9d20bcb1021f53ba5f1d983b67259fab9..a5a5fa2e48cbf34de72c8cf92a620ca5dd4ca2c9 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_winreg.h"
+#include "../librpc/gen_ndr/ndr_winreg.h"
 #ifndef __CLI_WINREG__
 #define __CLI_WINREG__
 NTSTATUS rpccli_winreg_OpenHKCR(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_wkssvc.c
rename to librpc/gen_ndr/cli_wkssvc.c
index b82e95311f619dc6d9cb7ab494139a451bfda8b9..628f7f973fe4b7c37accd2c57b0478e72b9245d8 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/cli_wkssvc.h"
+#include "../librpc/gen_ndr/cli_wkssvc.h"
 
 NTSTATUS rpccli_wkssvc_NetWkstaGetInfo(struct rpc_pipe_client *cli,
                                       TALLOC_CTX *mem_ctx,
similarity index 99%
rename from source3/librpc/gen_ndr/cli_wkssvc.h
rename to librpc/gen_ndr/cli_wkssvc.h
index 0d360abfeb8456ab83ff611002e74326bbb5b27d..2427099f0ec5448bd155452f19e4cad67ee47b35 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_wkssvc.h"
+#include "../librpc/gen_ndr/ndr_wkssvc.h"
 #ifndef __CLI_WKSSVC__
 #define __CLI_WKSSVC__
 NTSTATUS rpccli_wkssvc_NetWkstaGetInfo(struct rpc_pipe_client *cli,
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_dfs.c
rename to librpc/gen_ndr/ndr_dfs.c
index 75a0d4b7552960e7ad6fc6b1a7ac29b360b868ff..6e36cb31ecf77a473fc51d9280a36753de335fc0 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_dfs.h"
+#include "../librpc/gen_ndr/ndr_dfs.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 static enum ndr_err_code ndr_push_dfs_ManagerVersion(struct ndr_push *ndr, int ndr_flags, enum dfs_ManagerVersion r)
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_dfs.h
rename to librpc/gen_ndr/ndr_dfs.h
index a7c66f96936c848f8ab82d03c040c795a1c77c05..fd0ebf58de21c5a60ac9b0780fe6100e050a0b21 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/dfs.h"
+#include "../librpc/gen_ndr/dfs.h"
 
 #ifndef _HEADER_NDR_netdfs
 #define _HEADER_NDR_netdfs
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_drsblobs.c
rename to librpc/gen_ndr/ndr_drsblobs.c
index d965e40bd27cfbaef506b05748f07720618985be..c868c39ecd02e5f0242c95304125786899e96c98 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_drsblobs.h"
+#include "../librpc/gen_ndr/ndr_drsblobs.h"
 
 #include "librpc/gen_ndr/ndr_drsuapi.h"
 #include "librpc/gen_ndr/ndr_misc.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_drsblobs.h
rename to librpc/gen_ndr/ndr_drsblobs.h
index 8a5298874a237d6d8e6683d3c58c8c0ce059f578..09c4b7ff61d4fa15b42381d20b1e7b97c4a466e5 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/drsblobs.h"
+#include "../librpc/gen_ndr/drsblobs.h"
 
 #ifndef _HEADER_NDR_drsblobs
 #define _HEADER_NDR_drsblobs
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_drsuapi.c
rename to librpc/gen_ndr/ndr_drsuapi.c
index c2a4aee180c859a5003a03a75822ac1a5fb88052..3ef5b8024d2d98e2e309c81c7932674bea9054e2 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_drsuapi.h"
+#include "../librpc/gen_ndr/ndr_drsuapi.h"
 
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_misc.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_drsuapi.h
rename to librpc/gen_ndr/ndr_drsuapi.h
index 4b5ead467f156edae5a10e495a6fc405533bb2df..168854b3378f8aa49d24bad346dfcabd016c6280 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/drsuapi.h"
+#include "../librpc/gen_ndr/drsuapi.h"
 
 #ifndef _HEADER_NDR_drsuapi
 #define _HEADER_NDR_drsuapi
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_dssetup.c
rename to librpc/gen_ndr/ndr_dssetup.c
index 0c02784db826080aefec03753d9088d2bfde11a8..7ce80ddab2a870190b0d317fbfd332dc5db6d7f0 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_dssetup.h"
+#include "../librpc/gen_ndr/ndr_dssetup.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 static enum ndr_err_code ndr_push_dssetup_DsRole(struct ndr_push *ndr, int ndr_flags, enum dssetup_DsRole r)
similarity index 98%
rename from source3/librpc/gen_ndr/ndr_dssetup.h
rename to librpc/gen_ndr/ndr_dssetup.h
index 103ad116a3e0c43e5eca0660c36e93695ae5b5f8..f3ebe856b7a5e782cc6a65377d7dc78e27a6ce4e 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/dssetup.h"
+#include "../librpc/gen_ndr/dssetup.h"
 
 #ifndef _HEADER_NDR_dssetup
 #define _HEADER_NDR_dssetup
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_echo.c
rename to librpc/gen_ndr/ndr_echo.c
index 99556e1bffa9c9644833ae1b3fccb927d701ca25..e555c2f7f9c35f0854ab5d69fcd65fe995b01664 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_echo.h"
+#include "../librpc/gen_ndr/ndr_echo.h"
 
 _PUBLIC_ enum ndr_err_code ndr_push_echo_info1(struct ndr_push *ndr, int ndr_flags, const struct echo_info1 *r)
 {
similarity index 98%
rename from source3/librpc/gen_ndr/ndr_echo.h
rename to librpc/gen_ndr/ndr_echo.h
index c1c77165737b4da94dd2c1df2e59e68d63b7fcaa..06686497553c56955409cc3a2f4306778d2d76bb 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/echo.h"
+#include "../librpc/gen_ndr/echo.h"
 
 #ifndef _HEADER_NDR_rpcecho
 #define _HEADER_NDR_rpcecho
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_epmapper.c
rename to librpc/gen_ndr/ndr_epmapper.c
index 0f1005dda71bcdb00590bd623c0f199023aacb00..e06bf7f3aac99278e5ee6a009e863a8c8a47183c 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_epmapper.h"
+#include "../librpc/gen_ndr/ndr_epmapper.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 static enum ndr_err_code ndr_push_epm_protocol(struct ndr_push *ndr, int ndr_flags, enum epm_protocol r)
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_epmapper.h
rename to librpc/gen_ndr/ndr_epmapper.h
index 0fac75e0af568d0d8bc2d0b2163e9d11e4fc13ed..797c68d93e4332339db26172ac4ec4124c712b70 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/epmapper.h"
+#include "../librpc/gen_ndr/epmapper.h"
 
 #ifndef _HEADER_NDR_epmapper
 #define _HEADER_NDR_epmapper
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_eventlog.c
rename to librpc/gen_ndr/ndr_eventlog.c
index 12fa9fcec485e5f9a410d9fe6e24985a4a20ffca..fdef52f6af85ca90c50bdfe8c524c32031e9c9a9 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_eventlog.h"
+#include "../librpc/gen_ndr/ndr_eventlog.h"
 
 #include "librpc/gen_ndr/ndr_lsa.h"
 #include "librpc/gen_ndr/ndr_security.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_eventlog.h
rename to librpc/gen_ndr/ndr_eventlog.h
index 6002f35a7dc4067a72f28f164eab5b89bc78bf7a..c705290aefe995da39295b7028080fd4d213a3b4 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/eventlog.h"
+#include "../librpc/gen_ndr/eventlog.h"
 
 #ifndef _HEADER_NDR_eventlog
 #define _HEADER_NDR_eventlog
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_initshutdown.c
rename to librpc/gen_ndr/ndr_initshutdown.c
index 62a19af3a262a340e9ff4287cc74233b75117182..718f79cf6a647b4f49fba5133d4497489c20fdab 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_initshutdown.h"
+#include "../librpc/gen_ndr/ndr_initshutdown.h"
 
 #include "librpc/gen_ndr/ndr_lsa.h"
 static enum ndr_err_code ndr_push_initshutdown_Init(struct ndr_push *ndr, int flags, const struct initshutdown_Init *r)
similarity index 95%
rename from source3/librpc/gen_ndr/ndr_initshutdown.h
rename to librpc/gen_ndr/ndr_initshutdown.h
index 2cb5a530b03b8b663025a0f24e4200af0a8119d4..c3f2f70280064942cba35a1610e72a4998fde28e 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/initshutdown.h"
+#include "../librpc/gen_ndr/initshutdown.h"
 
 #ifndef _HEADER_NDR_initshutdown
 #define _HEADER_NDR_initshutdown
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_krb5pac.c
rename to librpc/gen_ndr/ndr_krb5pac.c
index 125fb7eb77f67fab9834fb6d13a880f0ed1c8be0..06abe91fc34b2eecd6bacfae2f3a173cba68b7fd 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_krb5pac.h"
+#include "../librpc/gen_ndr/ndr_krb5pac.h"
 
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_netlogon.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_krb5pac.h
rename to librpc/gen_ndr/ndr_krb5pac.h
index bf09e3fad561ed812583f918a01e32922baf5b90..8ab6b6a0fa2f416d579873b3248bdeb8e6e88a41 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/krb5pac.h"
+#include "../librpc/gen_ndr/krb5pac.h"
 
 #ifndef _HEADER_NDR_krb5pac
 #define _HEADER_NDR_krb5pac
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_lsa.c
rename to librpc/gen_ndr/ndr_lsa.c
index 926903865e64a0cb6ed3e65866d56724ec0f5514..9169adfe81e238d03e6c009788106620c7be8d3f 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_security.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_lsa.h
rename to librpc/gen_ndr/ndr_lsa.h
index 2f623c2ba97351bfbbde3a157545fcbf8dfbfaf8..90817b543667752331c10cb4e9fd1079d259929e 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/lsa.h"
+#include "../librpc/gen_ndr/lsa.h"
 
 #ifndef _HEADER_NDR_lsarpc
 #define _HEADER_NDR_lsarpc
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_misc.c
rename to librpc/gen_ndr/ndr_misc.c
index 971cbdac241c2d5b11aef037fa24236c69bfefef..dbe5cdd60edc95e14575dce69b1ba6908ec0de48 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_misc.h"
+#include "../librpc/gen_ndr/ndr_misc.h"
 
 _PUBLIC_ enum ndr_err_code ndr_push_GUID(struct ndr_push *ndr, int ndr_flags, const struct GUID *r)
 {
similarity index 97%
rename from source3/librpc/gen_ndr/ndr_misc.h
rename to librpc/gen_ndr/ndr_misc.h
index b907af0605fb172af86c201e05dfa71557e028c1..101aa8ad84bba5ed757da4a745ee58de81549b7f 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/misc.h"
+#include "../librpc/gen_ndr/misc.h"
 
 #ifndef _HEADER_NDR_misc
 #define _HEADER_NDR_misc
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_named_pipe_auth.c
rename to librpc/gen_ndr/ndr_named_pipe_auth.c
index 69412bf427918a616589ad38dfba7686e16b3fef..2377964570afa7f4e7654517905fdfd39869ebe7 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_named_pipe_auth.h"
+#include "../librpc/gen_ndr/ndr_named_pipe_auth.h"
 
 #include "librpc/gen_ndr/ndr_netlogon.h"
 static enum ndr_err_code ndr_push_named_pipe_auth_req_info(struct ndr_push *ndr, int ndr_flags, const union named_pipe_auth_req_info *r)
similarity index 96%
rename from source3/librpc/gen_ndr/ndr_named_pipe_auth.h
rename to librpc/gen_ndr/ndr_named_pipe_auth.h
index fbef9d5f1c1bfe064b24c863fb7230209d2d14ce..2a4f689ab972c545fd640dd223aa4a86a605abb1 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/named_pipe_auth.h"
+#include "../librpc/gen_ndr/named_pipe_auth.h"
 
 #ifndef _HEADER_NDR_named_pipe_auth
 #define _HEADER_NDR_named_pipe_auth
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_nbt.c
rename to librpc/gen_ndr/ndr_nbt.c
index c02b539da52708f310af440c33d581b82de5f25c..435bebe091c4d79370a7496de23acb77ea1e9756 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_nbt.h"
+#include "../librpc/gen_ndr/ndr_nbt.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_security.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_nbt.h
rename to librpc/gen_ndr/ndr_nbt.h
index 1a0ca0c302422ef1cb9d8b85a0804e9f982147e0..c7eb8f78a021c9f2e5488270043585938c03597a 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/nbt.h"
+#include "../librpc/gen_ndr/nbt.h"
 
 #ifndef _HEADER_NDR_nbt
 #define _HEADER_NDR_nbt
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_netlogon.c
rename to librpc/gen_ndr/ndr_netlogon.c
index 81f8ddcab9faabb8faca6fdcc362fb0933389252..42bd09cedc6d159372ced5d39b6b16318408008b 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_netlogon.h"
+#include "../librpc/gen_ndr/ndr_netlogon.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_lsa.h"
@@ -6267,7 +6267,6 @@ static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int
                int level = ndr_push_get_switch_value(ndr, r);
                switch (level) {
                        case NETR_CHANGELOG_SID_INCLUDED:
-                               NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->object_sid));
                        break;
 
                        case NETR_CHANGELOG_NAME_INCLUDED:
@@ -6308,7 +6307,6 @@ static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int
        if (ndr_flags & NDR_BUFFERS) {
                switch (level) {
                        case NETR_CHANGELOG_SID_INCLUDED:
-                               NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->object_sid));
                        break;
 
                        case NETR_CHANGELOG_NAME_INCLUDED:
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_netlogon.h
rename to librpc/gen_ndr/ndr_netlogon.h
index 5858906c1c8c778fb6d7db059684696b222c2f6a..aab691e5044fcdb7ac5a94e4cbda27bcca8d2540 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/netlogon.h"
+#include "../librpc/gen_ndr/netlogon.h"
 
 #ifndef _HEADER_NDR_netlogon
 #define _HEADER_NDR_netlogon
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_ntsvcs.c
rename to librpc/gen_ndr/ndr_ntsvcs.c
index ced6fb776746293953016d15540b0b0d6bf54376..ef2ecc1d7d9a4d7dc41410a878b8e397760ba2d4 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_ntsvcs.h"
+#include "../librpc/gen_ndr/ndr_ntsvcs.h"
 
 #include "librpc/gen_ndr/ndr_winreg.h"
 static enum ndr_err_code ndr_push_PNP_HwProfInfo(struct ndr_push *ndr, int ndr_flags, const struct PNP_HwProfInfo *r)
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_ntsvcs.h
rename to librpc/gen_ndr/ndr_ntsvcs.h
index 0e3b6b91c4d0ae2a71e5281b71d922580dc3cee2..b70c3836786d53bff156bfd9763756dfcda81c59 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/ntsvcs.h"
+#include "../librpc/gen_ndr/ntsvcs.h"
 
 #ifndef _HEADER_NDR_ntsvcs
 #define _HEADER_NDR_ntsvcs
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_samr.c
rename to librpc/gen_ndr/ndr_samr.c
index 83db0faaef9c90473a3d115ff406faf0099f19d6..83b091608eac61b92294e0a7ab8cefcbdc0f95e2 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_samr.h"
+#include "../librpc/gen_ndr/ndr_samr.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_lsa.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_samr.h
rename to librpc/gen_ndr/ndr_samr.h
index 64c60ee7043b9db98a1fd388322b3e155ddc61a7..038fcf6ede08aa813b956ecbe34449a0eba53dfc 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/samr.h"
+#include "../librpc/gen_ndr/samr.h"
 
 #ifndef _HEADER_NDR_samr
 #define _HEADER_NDR_samr
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_security.c
rename to librpc/gen_ndr/ndr_security.c
index 8339a40d40f031d87cd9318f500a41286a2f3500..27aef3e06ac0222826996a450411ee2c7122276f 100644 (file)
@@ -1,10 +1,9 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_security.h"
+#include "../librpc/gen_ndr/ndr_security.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
-#include "librpc/gen_ndr/ndr_dom_sid.h"
 _PUBLIC_ enum ndr_err_code ndr_push_security_ace_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r)
 {
        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
similarity index 98%
rename from source3/librpc/gen_ndr/ndr_security.h
rename to librpc/gen_ndr/ndr_security.h
index f8cbf4afa81c4384956e2d4a6ae23cbf4e8c488f..8cf7bf3eea4f396321aaea7e29ac2035d418a825 100644 (file)
@@ -1,12 +1,11 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/security.h"
+#include "../librpc/gen_ndr/security.h"
 
 #ifndef _HEADER_NDR_security
 #define _HEADER_NDR_security
 
-#include "librpc/gen_ndr/ndr_dom_sid.h"
 #define NDR_SECURITY_CALL_COUNT (0)
 enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r);
 enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r);
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_srvsvc.c
rename to librpc/gen_ndr/ndr_srvsvc.c
index 125542d14a9a97a208b5dab7899ec3050c86c9c4..31d2fe2deb87cd1c5cf3d6a3605465a221096415 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_srvsvc.h"
+#include "../librpc/gen_ndr/ndr_srvsvc.h"
 
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_svcctl.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_srvsvc.h
rename to librpc/gen_ndr/ndr_srvsvc.h
index 126680cad03c1a80fadd86d624da5890a2d591c9..eba3ec990c88a284b63a256a45468e2e3d5a6e79 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/srvsvc.h"
+#include "../librpc/gen_ndr/srvsvc.h"
 
 #ifndef _HEADER_NDR_srvsvc
 #define _HEADER_NDR_srvsvc
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_svcctl.c
rename to librpc/gen_ndr/ndr_svcctl.c
index 2bccde9ba03475bd645c8c51931d79ca266b6dd1..95da3577155806a5bcf571d08f1703a933b50a4e 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_svcctl.h"
+#include "../librpc/gen_ndr/ndr_svcctl.h"
 
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_security.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_svcctl.h
rename to librpc/gen_ndr/ndr_svcctl.h
index 8d7739a7db4387a525650444df05622c490edd9d..06b807bc7dc2cfcd04821d35af02141671565bb9 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/svcctl.h"
+#include "../librpc/gen_ndr/svcctl.h"
 
 #ifndef _HEADER_NDR_svcctl
 #define _HEADER_NDR_svcctl
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_winreg.c
rename to librpc/gen_ndr/ndr_winreg.c
index 791d11103d3c7c706681754cc1c741bd66686cf3..d37cf8fcde2148558fdad4b6c4a0e8168b1de2a5 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_winreg.h"
+#include "../librpc/gen_ndr/ndr_winreg.h"
 
 #include "librpc/gen_ndr/ndr_lsa.h"
 #include "librpc/gen_ndr/ndr_security.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_winreg.h
rename to librpc/gen_ndr/ndr_winreg.h
index 8dea3ae273e27055ad91136ff0ebb16f4790bb20..bc6cad1bcb9095f5e0f73616db7851cbdfa138c7 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/winreg.h"
+#include "../librpc/gen_ndr/winreg.h"
 
 #ifndef _HEADER_NDR_winreg
 #define _HEADER_NDR_winreg
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_wkssvc.c
rename to librpc/gen_ndr/ndr_wkssvc.c
index e494f08be01c1794200c68411948e23ae6c00cd2..050aced7f5340aba0e25ff380baffde59b222483 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_wkssvc.h"
+#include "../librpc/gen_ndr/ndr_wkssvc.h"
 
 #include "librpc/gen_ndr/ndr_srvsvc.h"
 #include "librpc/gen_ndr/ndr_lsa.h"
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_wkssvc.h
rename to librpc/gen_ndr/ndr_wkssvc.h
index 0fa4d3f8d460786ed0747159aa961b94cd1e39b1..fa533c60ebf121282697f4d9771952be55bcd9c5 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/wkssvc.h"
+#include "../librpc/gen_ndr/wkssvc.h"
 
 #ifndef _HEADER_NDR_wkssvc
 #define _HEADER_NDR_wkssvc
similarity index 99%
rename from source3/librpc/gen_ndr/ndr_xattr.c
rename to librpc/gen_ndr/ndr_xattr.c
index 75781d763dcb070126aeff9d3ef1d3dfd5c68b37..d217a00228dd688cc2cb1621205edde571bbde2b 100644 (file)
@@ -1,7 +1,7 @@
 /* parser auto-generated by pidl */
 
 #include "includes.h"
-#include "librpc/gen_ndr/ndr_xattr.h"
+#include "../librpc/gen_ndr/ndr_xattr.h"
 
 #include "librpc/gen_ndr/ndr_security.h"
 static enum ndr_err_code ndr_push_xattr_DosInfo1(struct ndr_push *ndr, int ndr_flags, const struct xattr_DosInfo1 *r)
similarity index 98%
rename from source3/librpc/gen_ndr/ndr_xattr.h
rename to librpc/gen_ndr/ndr_xattr.h
index c565e8513a5a45b02e24bd79f4a713987feb3759..610d4b32960298850e5e92aac288506f3c640085 100644 (file)
@@ -1,7 +1,7 @@
 /* header auto-generated by pidl */
 
 #include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/xattr.h"
+#include "../librpc/gen_ndr/xattr.h"
 
 #ifndef _HEADER_NDR_xattr
 #define _HEADER_NDR_xattr
similarity index 99%
rename from source3/librpc/gen_ndr/security.h
rename to librpc/gen_ndr/security.h
index 99e1f4b1c90cd5de70c275076581489fc6fcb8c3..2b422608eafc958e9973ac048a0896deca9029ef 100644 (file)
@@ -3,7 +3,6 @@
 #include <stdint.h>
 
 #include "librpc/gen_ndr/misc.h"
-#include "librpc/gen_ndr/dom_sid.h"
 #define dom_sid2 dom_sid
 #define dom_sid28 dom_sid
 #define dom_sid0 dom_sid
similarity index 99%
rename from source3/librpc/gen_ndr/srv_dfs.c
rename to librpc/gen_ndr/srv_dfs.c
index d58272084a4cf9985ed99430d9b1926a2eba2da4..666874fd64354a9a524a9962bfa7d0cf3f1c739e 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_dfs.h"
+#include "../librpc/gen_ndr/srv_dfs.h"
 
 static bool api_dfs_GetManagerVersion(pipes_struct *p)
 {
similarity index 97%
rename from source3/librpc/gen_ndr/srv_dfs.h
rename to librpc/gen_ndr/srv_dfs.h
index e4d7a99c732a9c0a93641e251355647fb95b7565..fe9234b21d01d8e765e2c41b2d0cfd9371777100 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_dfs.h"
+#include "../librpc/gen_ndr/ndr_dfs.h"
 #ifndef __SRV_NETDFS__
 #define __SRV_NETDFS__
 void _dfs_GetManagerVersion(pipes_struct *p, struct dfs_GetManagerVersion *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_dssetup.c
rename to librpc/gen_ndr/srv_dssetup.c
index 62123b826c4defd6f24ea5e795cb25de82014e1d..3c07ad124785567c776cba08c23154c7ed1fe174 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_dssetup.h"
+#include "../librpc/gen_ndr/srv_dssetup.h"
 
 static bool api_dssetup_DsRoleGetPrimaryDomainInformation(pipes_struct *p)
 {
similarity index 96%
rename from source3/librpc/gen_ndr/srv_dssetup.h
rename to librpc/gen_ndr/srv_dssetup.h
index 3233899eac38f246274bca5dc55f7f8c74907dd8..4122678274214500a5dfd933e1afac80a670c034 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_dssetup.h"
+#include "../librpc/gen_ndr/ndr_dssetup.h"
 #ifndef __SRV_DSSETUP__
 #define __SRV_DSSETUP__
 WERROR _dssetup_DsRoleGetPrimaryDomainInformation(pipes_struct *p, struct dssetup_DsRoleGetPrimaryDomainInformation *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_echo.c
rename to librpc/gen_ndr/srv_echo.c
index 970398dc715faff7ff294fc6f5a25924faca173e..64360792994e638fa4e8457b76b5f658b045d544 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_echo.h"
+#include "../librpc/gen_ndr/srv_echo.h"
 
 static bool api_echo_AddOne(pipes_struct *p)
 {
similarity index 95%
rename from source3/librpc/gen_ndr/srv_echo.h
rename to librpc/gen_ndr/srv_echo.h
index c3b0336652cf6fc09a3f9f5a49026deffe9e2b17..cb6dd6ac46566e5da9a7edb1ee113de352e225b2 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_echo.h"
+#include "../librpc/gen_ndr/ndr_echo.h"
 #ifndef __SRV_RPCECHO__
 #define __SRV_RPCECHO__
 void _echo_AddOne(pipes_struct *p, struct echo_AddOne *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_epmapper.c
rename to librpc/gen_ndr/srv_epmapper.c
index a31d89b8e87b62de3a20c9465b2fd0c544332282..68e4a4139386a9543a9f2f0c7b500a9aabd06b74 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_epmapper.h"
+#include "../librpc/gen_ndr/srv_epmapper.h"
 
 static bool api_epm_Insert(pipes_struct *p)
 {
similarity index 93%
rename from source3/librpc/gen_ndr/srv_epmapper.h
rename to librpc/gen_ndr/srv_epmapper.h
index e0d0105b787c140a10656223a10e7179e405056c..137d9082403b4d2a7a963ceae2de4a4990f2f217 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_epmapper.h"
+#include "../librpc/gen_ndr/ndr_epmapper.h"
 #ifndef __SRV_EPMAPPER__
 #define __SRV_EPMAPPER__
 uint32 _epm_Insert(pipes_struct *p, struct epm_Insert *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_eventlog.c
rename to librpc/gen_ndr/srv_eventlog.c
index b9a4a2e9ed183216aceb9578a92610c28addf575..950daa5dd1f175442c42c9972ed81b74a3eafdbb 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_eventlog.h"
+#include "../librpc/gen_ndr/srv_eventlog.h"
 
 static bool api_eventlog_ClearEventLogW(pipes_struct *p)
 {
similarity index 98%
rename from source3/librpc/gen_ndr/srv_eventlog.h
rename to librpc/gen_ndr/srv_eventlog.h
index 6957c66beb992054a3b4d426fcde72104e6756f3..3293bba507ffa1cbfe0bb9cd048251b35260343d 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_eventlog.h"
+#include "../librpc/gen_ndr/ndr_eventlog.h"
 #ifndef __SRV_EVENTLOG__
 #define __SRV_EVENTLOG__
 NTSTATUS _eventlog_ClearEventLogW(pipes_struct *p, struct eventlog_ClearEventLogW *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_initshutdown.c
rename to librpc/gen_ndr/srv_initshutdown.c
index 51098074ac14d85a442b2a53e57e9f6e1f289bee..dbbfaaa41a4ee475c472a10d605064a9f8e1dc0b 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_initshutdown.h"
+#include "../librpc/gen_ndr/srv_initshutdown.h"
 
 static bool api_initshutdown_Init(pipes_struct *p)
 {
similarity index 89%
rename from source3/librpc/gen_ndr/srv_initshutdown.h
rename to librpc/gen_ndr/srv_initshutdown.h
index be3ea25271b8de2e8f4da5cecd25d0ae2efd8d9c..d638131c53e25c83977a017e7b7c084bac643330 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_initshutdown.h"
+#include "../librpc/gen_ndr/ndr_initshutdown.h"
 #ifndef __SRV_INITSHUTDOWN__
 #define __SRV_INITSHUTDOWN__
 WERROR _initshutdown_Init(pipes_struct *p, struct initshutdown_Init *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_lsa.c
rename to librpc/gen_ndr/srv_lsa.c
index c30f276800e210a88bda57ec5d4fb1b4c660ef18..9d29f61e091a17181cff0334423ed2038ff7d9e3 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_lsa.h"
+#include "../librpc/gen_ndr/srv_lsa.h"
 
 static bool api_lsa_Close(pipes_struct *p)
 {
similarity index 99%
rename from source3/librpc/gen_ndr/srv_lsa.h
rename to librpc/gen_ndr/srv_lsa.h
index 223ee5e97090a5244f2fb2566a54c812cb23e491..63ea35f8e9400d51c50a2a028cecf83738c39599 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa.h"
 #ifndef __SRV_LSARPC__
 #define __SRV_LSARPC__
 NTSTATUS _lsa_Close(pipes_struct *p, struct lsa_Close *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_netlogon.c
rename to librpc/gen_ndr/srv_netlogon.c
index 8cb461e94ddd1e32148fb60fc4ebb7ad476fb2ce..40ae09ebc2a54d705128909b347e136421764212 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_netlogon.h"
+#include "../librpc/gen_ndr/srv_netlogon.h"
 
 static bool api_netr_LogonUasLogon(pipes_struct *p)
 {
similarity index 98%
rename from source3/librpc/gen_ndr/srv_netlogon.h
rename to librpc/gen_ndr/srv_netlogon.h
index cd68d12f1e6cc9011de2d8c15e48d685db6f3389..d56170635544955707f61d27cca482ab967bfc72 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_netlogon.h"
+#include "../librpc/gen_ndr/ndr_netlogon.h"
 #ifndef __SRV_NETLOGON__
 #define __SRV_NETLOGON__
 WERROR _netr_LogonUasLogon(pipes_struct *p, struct netr_LogonUasLogon *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_ntsvcs.c
rename to librpc/gen_ndr/srv_ntsvcs.c
index 288f3ed5d74fe19d913342d529bb520240d230d3..38fb0bba39dab12b4debc96bed4838d0f697c25b 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_ntsvcs.h"
+#include "../librpc/gen_ndr/srv_ntsvcs.h"
 
 static bool api_PNP_Disconnect(pipes_struct *p)
 {
similarity index 99%
rename from source3/librpc/gen_ndr/srv_ntsvcs.h
rename to librpc/gen_ndr/srv_ntsvcs.h
index c3969b11da392c91b0219f5d6a418b974ef1a022..16f91cde675de96b378ff4c20bcf43363dfe4eb8 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_ntsvcs.h"
+#include "../librpc/gen_ndr/ndr_ntsvcs.h"
 #ifndef __SRV_NTSVCS__
 #define __SRV_NTSVCS__
 WERROR _PNP_Disconnect(pipes_struct *p, struct PNP_Disconnect *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_samr.c
rename to librpc/gen_ndr/srv_samr.c
index f4facd2914c32a54d35ac30c6311b4b87bb17c9c..598ec2aabf2effd60bf7b5d95d93574a2f251687 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_samr.h"
+#include "../librpc/gen_ndr/srv_samr.h"
 
 static bool api_samr_Connect(pipes_struct *p)
 {
similarity index 99%
rename from source3/librpc/gen_ndr/srv_samr.h
rename to librpc/gen_ndr/srv_samr.h
index 7d5cdd745d4ef7c61400a5a1577e56168d4c7731..1a697f6b3b431ca462564be5b354056676d6b215 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_samr.h"
+#include "../librpc/gen_ndr/ndr_samr.h"
 #ifndef __SRV_SAMR__
 #define __SRV_SAMR__
 NTSTATUS _samr_Connect(pipes_struct *p, struct samr_Connect *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_srvsvc.c
rename to librpc/gen_ndr/srv_srvsvc.c
index 59f51ba774e44cac11012b78983219226c827f3b..465d9ca31d6ff3ef3643a41807969883ed6c6218 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_srvsvc.h"
+#include "../librpc/gen_ndr/srv_srvsvc.h"
 
 static bool api_srvsvc_NetCharDevEnum(pipes_struct *p)
 {
similarity index 99%
rename from source3/librpc/gen_ndr/srv_srvsvc.h
rename to librpc/gen_ndr/srv_srvsvc.h
index 1e1ebb1904adcbb85eae9e838d95cfd5997e0d61..c71e715a227176687636e59c21001b5f81f9c1e3 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_srvsvc.h"
+#include "../librpc/gen_ndr/ndr_srvsvc.h"
 #ifndef __SRV_SRVSVC__
 #define __SRV_SRVSVC__
 WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, struct srvsvc_NetCharDevEnum *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_svcctl.c
rename to librpc/gen_ndr/srv_svcctl.c
index 5b30bf00f7860833c53afab2d188e6460d35f5c3..46e2b03d3c5d97717f353fbaa5a53cd16b68b401 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_svcctl.h"
+#include "../librpc/gen_ndr/srv_svcctl.h"
 
 static bool api_svcctl_CloseServiceHandle(pipes_struct *p)
 {
similarity index 98%
rename from source3/librpc/gen_ndr/srv_svcctl.h
rename to librpc/gen_ndr/srv_svcctl.h
index ca63ebe970803f6c521ab687172622e40e1e3d3c..80a9ccb01fed341825ee5039c0655fca25d5594d 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_svcctl.h"
+#include "../librpc/gen_ndr/ndr_svcctl.h"
 #ifndef __SRV_SVCCTL__
 #define __SRV_SVCCTL__
 WERROR _svcctl_CloseServiceHandle(pipes_struct *p, struct svcctl_CloseServiceHandle *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_winreg.c
rename to librpc/gen_ndr/srv_winreg.c
index ac70b41219b36650d645f0ad243c2c617f68e416..a97391480ee9cad7ca72862afe394ba02da63f51 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_winreg.h"
+#include "../librpc/gen_ndr/srv_winreg.h"
 
 static bool api_winreg_OpenHKCR(pipes_struct *p)
 {
similarity index 98%
rename from source3/librpc/gen_ndr/srv_winreg.h
rename to librpc/gen_ndr/srv_winreg.h
index decfb2589d241fc184b9f0f3c4629a197610a979..cedbef3e88ae0a292cb9db954e057014516bdf0b 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_winreg.h"
+#include "../librpc/gen_ndr/ndr_winreg.h"
 #ifndef __SRV_WINREG__
 #define __SRV_WINREG__
 WERROR _winreg_OpenHKCR(pipes_struct *p, struct winreg_OpenHKCR *r);
similarity index 99%
rename from source3/librpc/gen_ndr/srv_wkssvc.c
rename to librpc/gen_ndr/srv_wkssvc.c
index 61a5be081f84c990b02ef0958c0a9b7a3b79cf04..d74c8bc97079377076d323b725494c14ce1a4232 100644 (file)
@@ -4,7 +4,7 @@
  */
 
 #include "includes.h"
-#include "librpc/gen_ndr/srv_wkssvc.h"
+#include "../librpc/gen_ndr/srv_wkssvc.h"
 
 static bool api_wkssvc_NetWkstaGetInfo(pipes_struct *p)
 {
similarity index 98%
rename from source3/librpc/gen_ndr/srv_wkssvc.h
rename to librpc/gen_ndr/srv_wkssvc.h
index f1d0b94c2657861a47b86a8015aa47aba146c0eb..b1bda66134b990a3af7d0762f4e0217e3bd2052d 100644 (file)
@@ -1,4 +1,4 @@
-#include "librpc/gen_ndr/ndr_wkssvc.h"
+#include "../librpc/gen_ndr/ndr_wkssvc.h"
 #ifndef __SRV_WKSSVC__
 #define __SRV_WKSSVC__
 WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r);
index 977c7ed86ac01a62d6e358ac1225cb07f5a18712..18d0d61c4135c517e7ab79b79bd856ec05e6bc09 100644 (file)
@@ -111,7 +111,6 @@ interface IRemUnknown : IUnknown
 
 [
        uuid("00000140-0000-0000-c000-000000000046"),
-       pointer_default(unique),
        object
 ] interface IClassActivator : IUnknown
 {
@@ -119,7 +118,7 @@ interface IRemUnknown : IUnknown
                                [in] uint32 context,
                                                [in] uint32 locale,
                                                [in] GUID iid,
-                                               [out, iid_is(iid)] MInterfacePointer data);
+                                               [out, iid_is(iid)] MInterfacePointer *data);
 }
 
 [
@@ -151,7 +150,6 @@ interface IRemUnknown : IUnknown
    System.Activator class */
 [
        uuid("000001a0-0000-0000-c000-000000000046"),
-       pointer_default(unique),
        object
 ]
        interface ISystemActivator : IClassActivator
@@ -159,8 +157,8 @@ interface IRemUnknown : IUnknown
        WERROR ISystemActivatorRemoteCreateInstance([in] hyper unknown1,  /* OXID ? */
                                                                                          [in] MInterfacePointer iface1,
                                                                                          [in] hyper unknown2,
-                                                                                         [out] uint32 unknown3, 
-                                                                                         [out] MInterfacePointer iface2);
+                                                                                         [out] uint32 *unknown3, 
+                                                                                         [out] MInterfacePointer *iface2);
 }
 
 
@@ -272,7 +270,6 @@ interface IRemUnknown2 : IRemUnknown
 
 [
        object,
-       pointer_default(unique),
        uuid("0000000C-0000-0000-C000-000000000046"),
        helpstring("Stream")
 ]
@@ -282,13 +279,13 @@ interface IStream : IUnknown
                                [out, size_is(num_requested), length_is(num_read)] uint8 pv[],
                                [in] uint32 num_requested, 
                                [in, unique] uint32 *num_readx,
-                               [out] uint32 num_read
+                               [out] uint32 *num_read
                                );
 
        WERROR Write(
                                [in,size_is(num_requested),unique] uint8 *data,
                                 [in] uint32 num_requested,
-                                [out] uint32 num_written);
+                                [out] uint32 *num_written);
 }
 
 [
index 95c8a1c5f08ddbbf3469b4715240ac92382b4490..67cb4301c0e5419f5c496660ab276dc9e1c5b9ba 100644 (file)
@@ -90,5 +90,7 @@ interface IOXIDResolver
        [idempotent] WERROR ServerAlive2 (
          [out,ref] COMINFO *info,
          [out,ref] DUALSTRINGARRAY *dualstring,
-         [out] uint8 unknown2[3]);
+         [out,ref] uint8 *unknown2,
+         [out,ref] uint8 *unknown3,
+         [out,ref] uint8 *unknown4);
 }
index 2165ecfc81b297328f71f916b181a01fb360e08c..14fd6cedcf4e130444ec8033c5bd01b2074b8e06 100644 (file)
@@ -23,7 +23,7 @@ interface IRemoteActivation
 
        const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff;
        WERROR RemoteActivation (
-                       [in] ORPCTHIS this,
+                       [in] ORPCTHIS this_object,
                        [out,ref] ORPCTHAT *that,
                        [in] GUID Clsid,
                        [in] [string,charset(UTF16)] uint16 *pwszObjectName,
index 4c6aa235d76b3f6e9467e4fb827f5d97ec453f18..223a92faad82c56c09d33f98b7e096f2d2921344 100644 (file)
@@ -5,7 +5,6 @@
 */
 
 import "misc.idl";
-import "dom_sid.idl";
 
 /*
    use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
@@ -27,7 +26,6 @@ cpp_quote("#define dom_sid28 dom_sid")
 cpp_quote("#define dom_sid0 dom_sid")
 
 [
-       helper("librpc/gen_ndr/ndr_dom_sid.h"),
        pyhelper("librpc/ndr/py_security.c"),
        pointer_default(unique)
 ]
old mode 100644 (file)
new mode 100755 (executable)
similarity index 78%
rename from source4/nsswitch/config.m4
rename to nsswitch/config.m4
index 207b7fa53ff5d3e7f6609cd2d0ea21725683ac02..2c8fa17ad98c9cf0b1d1e7fb090bff95cb256cf0 100644 (file)
@@ -3,10 +3,9 @@ AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h )
 case "$host_os" in
        *linux*)
                SMB_LIBRARY(nss_winbind,
-                           [nsswitch/winbind_nss_linux.o],
+                           [../nsswitch/winbind_nss_linux.o],
                            [LIBWINBIND-CLIENT])
        ;;
        *)
        ;;
 esac
-
similarity index 95%
rename from source4/nsswitch/config.mk
rename to nsswitch/config.mk
index e8b9600882f1715f7cbbf19fb85dcd251f2a76ec..3a4f054d1f9f2b24095d80532ec8a030502564af 100644 (file)
@@ -31,4 +31,4 @@ PRIVATE_DEPENDENCIES = \
 #################################
 
 wbinfo_OBJ_FILES = \
-               $(nsswitchsrcdir)/wbinfo.o
+               $(nsswitchsrcdir)/wbinfo4.o
similarity index 82%
rename from source3/nsswitch/libwbclient/Doxyfile
rename to nsswitch/libwbclient/Doxyfile
index e12c2b06f03899dcbc5c8ca382a39aee2b7b1cc8..529a16fd6a035ac8a225533d09da1de1f9cbfe19 100644 (file)
 # Project related configuration options
 #---------------------------------------------------------------------------
 
-# This tag specifies the encoding used for all characters in the config file that 
-# follow. The default is UTF-8 which is also the encoding used for all text before 
-# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into 
-# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of 
+# This tag specifies the encoding used for all characters in the config file that
+# follow. The default is UTF-8 which is also the encoding used for all text before
+# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
+# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
 # possible encodings.
 
 DOXYFILE_ENCODING      = UTF-8
 
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
 # by quotes) that should identify the project.
 
 PROJECT_NAME           = Samba
 
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
 PROJECT_NUMBER         = HEAD
 
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
 # where doxygen was started. If left blank the current directory will be used.
 
 OUTPUT_DIRECTORY       = dox
 
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
 # otherwise cause performance problems for the file system.
 
 CREATE_SUBDIRS         = NO
 
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, 
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, 
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, 
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
 # Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
 
 OUTPUT_LANGUAGE        = English
 
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
 # Set to NO to disable this.
 
 BRIEF_MEMBER_DESC      = YES
 
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
 # brief descriptions will be completely suppressed.
 
 REPEAT_BRIEF           = YES
 
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
 # "represents" "a" "an" "the"
 
-ABBREVIATE_BRIEF       = 
+ABBREVIATE_BRIEF       =
 
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
 # description.
 
 ALWAYS_DETAILED_SEC    = NO
 
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
 # operators of the base classes will not be shown.
 
 INLINE_INHERITED_MEMB  = NO
 
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
 # to NO the shortest path that makes the file name unique will be used.
 
 FULL_PATH_NAMES        = YES
 
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
 # path to strip.
 
 STRIP_FROM_PATH        = $(PWD)/
 
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
 # are normally passed to the compiler using the -I flag.
 
-STRIP_FROM_INC_PATH    = 
+STRIP_FROM_INC_PATH    =
 
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
 # doesn't support long names like on DOS, Mac, or CD-ROM.
 
 SHORT_NAMES            = NO
 
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like regular Qt-style comments 
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
 # (thus requiring an explicit @brief command for a brief description.)
 
 JAVADOC_AUTOBRIEF      = YES
 
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
-# interpret the first line (until the first dot) of a Qt-style 
-# comment as the brief description. If set to NO, the comments 
-# will behave just like regular Qt-style comments (thus requiring 
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
 # an explicit \brief command for a brief description.)
 
 QT_AUTOBRIEF           = NO
 
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
 # description. Set this tag to YES if you prefer the old behaviour instead.
 
 MULTILINE_CPP_IS_BRIEF = NO
 
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
 # will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
+# If set to NO, the detailed description appears after the member
 # documentation.
 
 DETAILS_AT_TOP         = NO
 
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
 # re-implements.
 
 INHERIT_DOCS           = YES
 
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
 # be part of the file/class/namespace that contains it.
 
 SEPARATE_MEMBER_PAGES  = NO
 
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
 # Doxygen uses this value to replace tabs by spaces in code fragments.
 
 TAB_SIZE               = 8
 
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
 # You can put \n's in the value part of an alias to insert newlines.
 
-ALIASES                = 
+ALIASES                =
 
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
 # of all members will be omitted, etc.
 
 OPTIMIZE_OUTPUT_FOR_C  = YES
 
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
 # will look different, etc.
 
 OPTIMIZE_OUTPUT_JAVA   = NO
 
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
-# include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
+# include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
 # diagrams that involve STL classes more complete and accurate.
 
 BUILTIN_STL_SUPPORT    = NO
@@ -215,17 +215,17 @@ BUILTIN_STL_SUPPORT    = NO
 
 CPP_CLI_SUPPORT        = NO
 
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
 # all members of a group must be documented explicitly.
 
 DISTRIBUTE_GROUP_DOC   = NO
 
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
 # the \nosubgrouping command.
 
 SUBGROUPING            = YES
@@ -234,350 +234,350 @@ SUBGROUPING            = YES
 # Build related configuration options
 #---------------------------------------------------------------------------
 
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
 # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
 
 EXTRACT_ALL            = YES
 
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
 # will be included in the documentation.
 
 EXTRACT_PRIVATE        = YES
 
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
 # will be included in the documentation.
 
 EXTRACT_STATIC         = YES
 
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
 # If set to NO only classes defined in header files are included.
 
 EXTRACT_LOCAL_CLASSES  = YES
 
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
 # If set to NO (the default) only methods in the interface are included.
 
 EXTRACT_LOCAL_METHODS  = NO
 
-# If this flag is set to YES, the members of anonymous namespaces will be extracted 
-# and appear in the documentation as a namespace called 'anonymous_namespace{file}', 
-# where file will be replaced with the base name of the file that contains the anonymous 
+# If this flag is set to YES, the members of anonymous namespaces will be extracted
+# and appear in the documentation as a namespace called 'anonymous_namespace{file}',
+# where file will be replaced with the base name of the file that contains the anonymous
 # namespace. By default anonymous namespace are hidden.
 
 EXTRACT_ANON_NSPACES   = NO
 
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
 # This option has no effect if EXTRACT_ALL is enabled.
 
 HIDE_UNDOC_MEMBERS     = NO
 
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
 # overviews. This option has no effect if EXTRACT_ALL is enabled.
 
 HIDE_UNDOC_CLASSES     = NO
 
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
 # documentation.
 
 HIDE_FRIEND_COMPOUNDS  = NO
 
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
 # function's detailed documentation block.
 
 HIDE_IN_BODY_DOCS      = NO
 
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
 # Set it to YES to include the internal documentation.
 
 INTERNAL_DOCS          = YES
 
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
 # and Mac users are advised to set this option to NO.
 
 CASE_SENSE_NAMES       = YES
 
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
 # documentation. If set to YES the scope will be hidden.
 
 HIDE_SCOPE_NAMES       = YES
 
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
 # of that file.
 
 SHOW_INCLUDE_FILES     = YES
 
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
 # is inserted in the documentation for inline members.
 
 INLINE_INFO            = YES
 
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
 # declaration order.
 
 SORT_MEMBER_DOCS       = NO
 
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
 # declaration order.
 
 SORT_BRIEF_DOCS        = NO
 
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
+# Note: This option applies only to the class list, not to the
 # alphabetical list.
 
 SORT_BY_SCOPE_NAME     = NO
 
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
 # commands in the documentation.
 
 GENERATE_TODOLIST      = YES
 
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
 # commands in the documentation.
 
 GENERATE_TESTLIST      = YES
 
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
 # commands in the documentation.
 
 GENERATE_BUGLIST       = YES
 
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
 # \deprecated commands in the documentation.
 
 GENERATE_DEPRECATEDLIST= YES
 
-# The ENABLED_SECTIONS tag can be used to enable conditional 
+# The ENABLED_SECTIONS tag can be used to enable conditional
 # documentation sections, marked by \if sectionname ... \endif.
 
-ENABLED_SECTIONS       = 
+ENABLED_SECTIONS       =
 
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
 # command in the documentation regardless of this setting.
 
 MAX_INITIALIZER_LINES  = 30
 
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
 # list will mention the files that were used to generate the documentation.
 
 SHOW_USED_FILES        = YES
 
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
 # in the documentation. The default is NO.
 
 SHOW_DIRECTORIES       = NO
 
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from the 
-# version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from the
+# version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
 # is used as the file version. See the manual for examples.
 
-FILE_VERSION_FILTER    = 
+FILE_VERSION_FILTER    =
 
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
 
-# The QUIET tag can be used to turn on/off the messages that are generated 
+# The QUIET tag can be used to turn on/off the messages that are generated
 # by doxygen. Possible values are YES and NO. If left blank NO is used.
 
 QUIET                  = YES
 
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
 # NO is used.
 
 WARNINGS               = NO
 
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
 # automatically be disabled.
 
 WARN_IF_UNDOCUMENTED   = NO
 
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
 # don't exist or using markup commands wrongly.
 
 WARN_IF_DOC_ERROR      = YES
 
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
 # documentation.
 
 WARN_NO_PARAMDOC       = NO
 
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
 # be obtained via FILE_VERSION_FILTER)
 
 WARN_FORMAT            = "$file:$line: $text "
 
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
 # to stderr.
 
-WARN_LOGFILE           = 
+WARN_LOGFILE           =
 
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
 INPUT                  = .
 
-# This tag can be used to specify the character encoding of the source files that 
-# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default 
-# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. 
+# This tag can be used to specify the character encoding of the source files that
+# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
+# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
 # See http://www.gnu.org/software/libiconv for the list of possible encodings.
 
 INPUT_ENCODING         = UTF-8
 
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
 
 FILE_PATTERNS          = *.c \
                          *.h \
                          *.idl
 
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
 # If left blank NO is used.
 
 RECURSIVE              = YES
 
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
 # subdirectory from a directory tree whose root is specified with the INPUT tag.
 
 EXCLUDE                = include/includes.h \
                          include/proto.h
 
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
 # from the input.
 
 EXCLUDE_SYMLINKS       = NO
 
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
 # for example use the pattern */test/*
 
-EXCLUDE_PATTERNS       = 
+EXCLUDE_PATTERNS       =
 
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
-# (namespaces, classes, functions, etc.) that should be excluded from the output. 
-# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, 
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the output.
+# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
 # a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
 
-EXCLUDE_SYMBOLS        = 
+EXCLUDE_SYMBOLS        =
 
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
 # the \include command).
 
-EXAMPLE_PATH           = 
+EXAMPLE_PATH           =
 
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
 # blank all files are included.
 
-EXAMPLE_PATTERNS       = 
+EXAMPLE_PATTERNS       =
 
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
 # Possible values are YES and NO. If left blank NO is used.
 
 EXAMPLE_RECURSIVE      = NO
 
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
 # the \image command).
 
-IMAGE_PATH             = 
+IMAGE_PATH             =
 
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be
 # ignored.
 
-INPUT_FILTER           = 
+INPUT_FILTER           =
 
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.  Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.  The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
 # is applied to all files.
 
-FILTER_PATTERNS        = 
+FILTER_PATTERNS        =
 
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
 # files to browse (i.e. when SOURCE_BROWSER is set to YES).
 
 FILTER_SOURCE_FILES    = NO
@@ -586,34 +586,34 @@ FILTER_SOURCE_FILES    = NO
 # configuration options related to source browsing
 #---------------------------------------------------------------------------
 
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH 
-# then you must also enable this option. If you don't then doxygen will produce 
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH
+# then you must also enable this option. If you don't then doxygen will produce
 # a warning and turn it on anyway
 
 SOURCE_BROWSER         = YES
 
-# Setting the INLINE_SOURCES tag to YES will include the body 
+# Setting the INLINE_SOURCES tag to YES will include the body
 # of functions and classes directly in the documentation.
 
 INLINE_SOURCES         = YES
 
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
 # fragments. Normal C and C++ comments will always remain visible.
 
 STRIP_CODE_COMMENTS    = NO
 
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
 # functions referencing it will be listed.
 
 REFERENCED_BY_RELATION = YES
 
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
 # called/used by that function will be listed.
 
 REFERENCES_RELATION    = YES
@@ -625,16 +625,16 @@ REFERENCES_RELATION    = YES
 
 REFERENCES_LINK_SOURCE = YES
 
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
 # will need version 4.8.6 or higher.
 
 USE_HTAGS              = NO
 
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
 # which an include is specified. Set to NO to disable this.
 
 VERBATIM_HEADERS       = YES
@@ -643,141 +643,141 @@ VERBATIM_HEADERS       = YES
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
 
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
 # contains a lot of classes, structs, unions or interfaces.
 
 ALPHABETICAL_INDEX     = YES
 
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
 # in which this list will be split (can be a number in the range [1..20])
 
 COLS_IN_ALPHA_INDEX    = 1
 
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
 # should be ignored while generating the index headers.
 
-IGNORE_PREFIX          = 
+IGNORE_PREFIX          =
 
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
 # generate HTML output.
 
 GENERATE_HTML          = YES
 
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
 # put in front of it. If left blank `html' will be used as the default path.
 
 HTML_OUTPUT            = .
 
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
 # doxygen will generate files with .html extension.
 
 HTML_FILE_EXTENSION    = .html
 
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
 # standard header.
 
-HTML_HEADER            = 
+HTML_HEADER            =
 
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
 # standard footer.
 
-HTML_FOOTER            = 
+HTML_FOOTER            =
 
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
 # stylesheet in the HTML output directory as well, or it will be erased!
 
-HTML_STYLESHEET        = 
+HTML_STYLESHEET        =
 
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
 # NO a bullet list will be used.
 
 HTML_ALIGN_MEMBERS     = YES
 
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
 # of the generated HTML documentation.
 
 GENERATE_HTMLHELP      = NO
 
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
-# documentation will contain sections that can be hidden and shown after the 
-# page has loaded. For this to work a browser that supports 
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
 # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
 
 HTML_DYNAMIC_SECTIONS  = NO
 
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
 # written to the html output directory.
 
-CHM_FILE               = 
+CHM_FILE               =
 
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
 # the HTML help compiler on the generated index.hhp.
 
-HHC_LOCATION           = 
+HHC_LOCATION           =
 
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
 # it should be included in the master .chm file (NO).
 
 GENERATE_CHI           = NO
 
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
 # normal table of contents (NO) in the .chm file.
 
 BINARY_TOC             = NO
 
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
 # to the contents of the HTML help documentation and to the tree view.
 
 TOC_EXPAND             = NO
 
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
 # the value YES disables it.
 
 DISABLE_INDEX          = NO
 
-# This tag can be used to set the number of enum values (range [1..20]) 
+# This tag can be used to set the number of enum values (range [1..20])
 # that doxygen will group on one line in the generated HTML documentation.
 
 ENUM_VALUES_PER_LINE   = 3
 
 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
 # probably better off using the HTML help feature.
 
 GENERATE_TREEVIEW      = NO
 
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
 # is shown.
 
 TREEVIEW_WIDTH         = 250
@@ -786,74 +786,74 @@ TREEVIEW_WIDTH         = 250
 # configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
 # generate Latex output.
 
 GENERATE_LATEX         = NO
 
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
 # put in front of it. If left blank `latex' will be used as the default path.
 
 LATEX_OUTPUT           = latex
 
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
 # invoked. If left blank `latex' will be used as the default command name.
 
 LATEX_CMD_NAME         = latex
 
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
 # default command name.
 
 MAKEINDEX_CMD_NAME     = makeindex
 
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
 # save some trees in general.
 
 COMPACT_LATEX          = NO
 
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
 # executive. If left blank a4wide will be used.
 
 PAPER_TYPE             = a4wide
 
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
 # packages that should be included in the LaTeX output.
 
-EXTRA_PACKAGES         = 
+EXTRA_PACKAGES         =
 
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
 # standard header. Notice: only use this tag if you know what you are doing!
 
-LATEX_HEADER           = 
+LATEX_HEADER           =
 
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
 # This makes the output suitable for online browsing using a pdf viewer.
 
 PDF_HYPERLINKS         = YES
 
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
 # higher quality PDF documentation.
 
 USE_PDFLATEX           = YES
 
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
 # This option is also used when generating formulas in HTML.
 
 LATEX_BATCHMODE        = YES
 
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
 # in the output.
 
 LATEX_HIDE_INDICES     = NO
@@ -862,68 +862,68 @@ LATEX_HIDE_INDICES     = NO
 # configuration options related to the RTF output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
 # other RTF readers or editors.
 
 GENERATE_RTF           = NO
 
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
 # put in front of it. If left blank `rtf' will be used as the default path.
 
 RTF_OUTPUT             = rtf
 
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
 # save some trees in general.
 
 COMPACT_RTF            = NO
 
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
 # Note: wordpad (write) and others do not support links.
 
 RTF_HYPERLINKS         = NO
 
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
 # replacements, missing definitions are set to their default value.
 
-RTF_STYLESHEET_FILE    = 
+RTF_STYLESHEET_FILE    =
 
-# Set optional variables used in the generation of an rtf document. 
+# Set optional variables used in the generation of an rtf document.
 # Syntax is similar to doxygen's config file.
 
-RTF_EXTENSIONS_FILE    = 
+RTF_EXTENSIONS_FILE    =
 
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
 # generate man pages
 
 GENERATE_MAN           = NO
 
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
 # put in front of it. If left blank `man' will be used as the default path.
 
 MAN_OUTPUT             = man
 
-# The MAN_EXTENSION tag determines the extension that is added to 
+# The MAN_EXTENSION tag determines the extension that is added to
 # the generated man pages (default is the subroutine's section .3)
 
 MAN_EXTENSION          = .3
 
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
 # would be unable to find the correct page. The default is NO.
 
 MAN_LINKS              = NO
@@ -932,33 +932,33 @@ MAN_LINKS              = NO
 # configuration options related to the XML output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
 # the code including all documentation.
 
 GENERATE_XML           = NO
 
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
 # put in front of it. If left blank `xml' will be used as the default path.
 
 XML_OUTPUT             = xml
 
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
 # syntax of the XML files.
 
-XML_SCHEMA             = 
+XML_SCHEMA             =
 
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
 # syntax of the XML files.
 
-XML_DTD                = 
+XML_DTD                =
 
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
 # enabling this will significantly increase the size of the XML output.
 
 XML_PROGRAMLISTING     = YES
@@ -967,10 +967,10 @@ XML_PROGRAMLISTING     = YES
 # configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
 # and incomplete at the moment.
 
 GENERATE_AUTOGEN_DEF   = NO
@@ -979,319 +979,319 @@ GENERATE_AUTOGEN_DEF   = NO
 # configuration options related to the Perl module output
 #---------------------------------------------------------------------------
 
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
 # moment.
 
 GENERATE_PERLMOD       = NO
 
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
 # to generate PDF and DVI output from the Perl module output.
 
 PERLMOD_LATEX          = NO
 
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.  This is useful
+# if you want to understand what is going on.  On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
 # and Perl will parse it just the same.
 
 PERLMOD_PRETTY         = YES
 
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
 # Makefile don't overwrite each other's variables.
 
-PERLMOD_MAKEVAR_PREFIX = 
+PERLMOD_MAKEVAR_PREFIX =
 
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
 
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
 # files.
 
 ENABLE_PREPROCESSING   = NO
 
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
 # way by setting EXPAND_ONLY_PREDEF to YES.
 
 MACRO_EXPANSION        = NO
 
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
 # PREDEFINED and EXPAND_AS_DEFINED tags.
 
 EXPAND_ONLY_PREDEF     = NO
 
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
 # in the INCLUDE_PATH (see below) will be search if a #include is found.
 
 SEARCH_INCLUDES        = YES
 
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
 # the preprocessor.
 
-INCLUDE_PATH           = 
+INCLUDE_PATH           =
 
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
 # be used.
 
-INCLUDE_FILE_PATTERNS  = 
+INCLUDE_FILE_PATTERNS  =
 
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
 # instead of the = operator.
 
-PREDEFINED             = 
+PREDEFINED             =
 
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
 # Use the PREDEFINED tag if you want to use a different macro definition.
 
-EXPAND_AS_DEFINED      = 
+EXPAND_AS_DEFINED      =
 
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
 # the parser if not removed.
 
 SKIP_FUNCTION_MACROS   = YES
 
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration::additions related to external references
 #---------------------------------------------------------------------------
 
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#   TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#   TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
 # does not have to be run to correct the links.
 # Note that each tag file must have a unique name
 # (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
+# If a tag file is not located in the directory in which doxygen
 # is run, you must also specify the path to the tagfile here.
 
-TAGFILES               = 
+TAGFILES               =
 
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
 # a tag file that is based on the input files it reads.
 
-GENERATE_TAGFILE       = 
+GENERATE_TAGFILE       =
 
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
 # will be listed.
 
 ALLEXTERNALS           = NO
 
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
 # be listed.
 
 EXTERNAL_GROUPS        = YES
 
-# The PERL_PATH should be the absolute path and name of the perl script 
+# The PERL_PATH should be the absolute path and name of the perl script
 # interpreter (i.e. the result of `which perl').
 
 PERL_PATH              = /usr/bin/perl
 
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
 
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
 # powerful graphs.
 
 CLASS_DIAGRAMS         = YES
 
-# You can define message sequence charts within doxygen comments using the \msc 
-# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to 
-# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to 
-# specify the directory where the mscgen tool resides. If left empty the tool is assumed to 
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
+# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
+# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
 # be found in the default search path.
 
-MSCGEN_PATH            = 
+MSCGEN_PATH            =
 
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
 # or is not a class.
 
 HIDE_UNDOC_RELATIONS   = YES
 
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
 # have no effect if this option is set to NO (the default)
 
 HAVE_DOT               = NO
 
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
 # the CLASS_DIAGRAMS tag to NO.
 
 CLASS_GRAPH            = YES
 
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
 # class references variables) of the class with other documented classes.
 
 COLLABORATION_GRAPH    = YES
 
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
 # will generate a graph for groups, showing the direct groups dependencies
 
 GROUP_GRAPHS           = YES
 
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
 # Language.
 
 UML_LOOK               = NO
 
-# If set to YES, the inheritance and collaboration graphs will show the 
+# If set to YES, the inheritance and collaboration graphs will show the
 # relations between templates and their instances.
 
 TEMPLATE_RELATIONS     = YES
 
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
 # other documented files.
 
 INCLUDE_GRAPH          = YES
 
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
 # indirectly include this file.
 
 INCLUDED_BY_GRAPH      = YES
 
-# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
+# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
 # functions only using the \callgraph command.
 
 CALL_GRAPH             = NO
 
-# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will 
-# generate a caller dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable caller graphs for selected 
+# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
+# generate a caller dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
 # functions only using the \callergraph command.
 
 CALLER_GRAPH           = NO
 
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
 # will graphical hierarchy of all classes instead of a textual one.
 
 GRAPHICAL_HIERARCHY    = YES
 
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
 # in a graphical way. The dependency relations are determined by the #include
 # relations between the files in the directories.
 
 DIRECTORY_GRAPH        = YES
 
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
 # generated by dot. Possible values are png, jpg, or gif
 # If left blank png will be used.
 
 DOT_IMAGE_FORMAT       = png
 
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
 # found. If left blank, it is assumed the dot tool can be found in the path.
 
-DOT_PATH               = 
+DOT_PATH               =
 
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
 # \dotfile command).
 
-DOTFILE_DIRS           = 
+DOTFILE_DIRS           =
 
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
-# nodes that will be shown in the graph. If the number of nodes in a graph 
-# becomes larger than this value, doxygen will truncate the graph, which is 
-# visualized by representing a node as a red box. Note that doxygen if the number 
-# of direct children of the root node in a graph is already larger than 
-# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note 
+# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the number
+# of direct children of the root node in a graph is already larger than
+# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note
 # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
 
 DOT_GRAPH_MAX_NODES    = 50
 
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that the size of a graph can be further restricted by 
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
 
 MAX_DOT_GRAPH_DEPTH    = 0
 
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is disabled by default, which results in a white background. 
-# Warning: Depending on the platform used, enabling this option may lead to 
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, which results in a white background.
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
 # read).
 
 DOT_TRANSPARENT        = NO
 
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
 # support this, this feature is disabled by default.
 
 DOT_MULTI_TARGETS      = NO
 
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
 # arrows in the dot generated graphs.
 
 GENERATE_LEGEND        = YES
 
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
 # the various graphs.
 
 DOT_CLEANUP            = YES
 
 #---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
+# Configuration::additions related to the search engine
 #---------------------------------------------------------------------------
 
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# The SEARCHENGINE tag specifies whether or not a search engine should be
 # used. If set to NO the values of all tags below this one will be ignored.
 
 SEARCHENGINE           = NO
similarity index 98%
rename from source3/nsswitch/libwbclient/wbc_util.c
rename to nsswitch/libwbclient/wbc_util.c
index 7cfb64b87e9d9749a3b788ff3fd3db3459072612..5c5034ee13f4e5006353901c1a5e45d94d7d5916 100644 (file)
@@ -299,7 +299,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx,
 
        wbc_status = wbcStringToSid(r, &info->sid);
        BAIL_ON_WBC_ERROR(wbc_status);
-       
+
        /* Trust type */
        r = s;
        if ((s = strchr(r, '\\')) == NULL) {
@@ -332,9 +332,9 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx,
        s++;
 
        if (strcmp(r, "Yes") == 0) {
-               info->trust_flags |= WBC_DOMINFO_TRUST_TRANSITIVE;              
+               info->trust_flags |= WBC_DOMINFO_TRUST_TRANSITIVE;
        }
-       
+
        /* Incoming */
        r = s;
        if ((s = strchr(r, '\\')) == NULL) {
@@ -345,7 +345,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx,
        s++;
 
        if (strcmp(r, "Yes") == 0) {
-               info->trust_flags |= WBC_DOMINFO_TRUST_INCOMING;                
+               info->trust_flags |= WBC_DOMINFO_TRUST_INCOMING;
        }
 
        /* Outgoing */
@@ -358,7 +358,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx,
        s++;
 
        if (strcmp(r, "Yes") == 0) {
-               info->trust_flags |= WBC_DOMINFO_TRUST_OUTGOING;                
+               info->trust_flags |= WBC_DOMINFO_TRUST_OUTGOING;
        }
 
        /* Online/Offline status */
@@ -385,14 +385,14 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
        wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
        char *p = NULL;
        char *q = NULL;
-       char *extra_data = NULL;        
-       int count = 0;  
+       char *extra_data = NULL;
+       int count = 0;
        struct wbcDomainInfo *d_list = NULL;
        int i = 0;
-       
+
        *domains = NULL;
        *num_domains = 0;
-       
+
        ZERO_STRUCT(response);
 
        /* Send request */
@@ -409,20 +409,20 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
        if (strlen(p) == 0) {
                /* We should always at least get back our
                   own SAM domain */
-               
+
                wbc_status = WBC_ERR_DOMAIN_NOT_FOUND;
                BAIL_ON_WBC_ERROR(wbc_status);
        }
 
        /* Count number of domains */
 
-       count = 0;      
+       count = 0;
        while (p) {
                count++;
 
                if ((q = strchr(p, '\n')) != NULL)
                        q++;
-               p = q;          
+               p = q;
        }
 
        d_list = talloc_array(NULL, struct wbcDomainInfo, count);
@@ -431,13 +431,13 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
        extra_data = strdup((char*)response.extra_data.data);
        BAIL_ON_PTR_ERROR(extra_data, wbc_status);
 
-       p = extra_data; 
+       p = extra_data;
 
        /* Outer loop processes the list of domain information */
 
        for (i=0; i<count && p; i++) {
                char *next = strchr(p, '\n');
-               
+
                if (next) {
                        *next = '\0';
                        next++;
@@ -449,9 +449,9 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
                p = next;
        }
 
-       *domains = d_list;      
-       *num_domains = i;       
-       
+       *domains = d_list;
+       *num_domains = i;
+
  done:
        if (!WBC_ERROR_IS_OK(wbc_status)) {
                if (d_list)
similarity index 99%
rename from source3/nsswitch/libwbclient/wbclient.c
rename to nsswitch/libwbclient/wbclient.c
index 3a9afad15d4c49ab0286c8e877bf2ed11bd73427..f5c72315f2e117ea87bb46c1d5de48a3dae03935 100644 (file)
@@ -155,5 +155,3 @@ done:
        talloc_free(info);
        return wbc_status;
 }
-
-
similarity index 99%
rename from source3/nsswitch/libwbclient/wbclient.h
rename to nsswitch/libwbclient/wbclient.h
index fcad3ff69bd8fb71204af93b6c30f53a61b9f601..990cc52df79d1f7444fca0c44fd7185472957426 100644 (file)
@@ -952,7 +952,7 @@ wbcErr wbcDomainInfo(const char *domain,
  *
  * @return #wbcErr
  **/
-wbcErr wbcListTrusts(struct wbcDomainInfo **domains, 
+wbcErr wbcListTrusts(struct wbcDomainInfo **domains,
                     size_t *num_domains);
 
 /* Flags for wbcLookupDomainController */
similarity index 95%
rename from source4/nsswitch/nsstest.c
rename to nsswitch/nsstest.c
index df7f33f8e019b6bcaf217e481803b6f2c669186f..26f816f5d1f237e58ef246c7a5dbefec0188d42a 100644 (file)
@@ -1,18 +1,18 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    nss tester for winbindd
    Copyright (C) Andrew Tridgell 2001
-   
+
    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/>.
 */
@@ -54,13 +54,13 @@ static void report_nss_error(const char *who, NSS_STATUS status)
 {
        last_error = status;
        total_errors++;
-       printf("ERROR %s: NSS_STATUS=%d  %d (nss_errno=%d)\n", 
+       printf("ERROR %s: NSS_STATUS=%d  %d (nss_errno=%d)\n",
               who, status, NSS_STATUS_SUCCESS, nss_errno);
 }
 
 static struct passwd *nss_getpwent(void)
 {
-       NSS_STATUS (*_nss_getpwent_r)(struct passwd *, char *, 
+       NSS_STATUS (*_nss_getpwent_r)(struct passwd *, char *,
                                      size_t , int *) = find_fn("getpwent_r");
        static struct passwd pwd;
        static char buf[1000];
@@ -79,12 +79,12 @@ static struct passwd *nss_getpwent(void)
 
 static struct passwd *nss_getpwnam(const char *name)
 {
-       NSS_STATUS (*_nss_getpwnam_r)(const char *, struct passwd *, char *, 
+       NSS_STATUS (*_nss_getpwnam_r)(const char *, struct passwd *, char *,
                                      size_t , int *) = find_fn("getpwnam_r");
        static struct passwd pwd;
        static char buf[1000];
        NSS_STATUS status;
-       
+
        status = _nss_getpwnam_r(name, &pwd, buf, sizeof(buf), &nss_errno);
        if (status == NSS_STATUS_NOTFOUND) {
                return NULL;
@@ -98,12 +98,12 @@ static struct passwd *nss_getpwnam(const char *name)
 
 static struct passwd *nss_getpwuid(uid_t uid)
 {
-       NSS_STATUS (*_nss_getpwuid_r)(uid_t , struct passwd *, char *, 
+       NSS_STATUS (*_nss_getpwuid_r)(uid_t , struct passwd *, char *,
                                      size_t , int *) = find_fn("getpwuid_r");
        static struct passwd pwd;
        static char buf[1000];
        NSS_STATUS status;
-       
+
        status = _nss_getpwuid_r(uid, &pwd, buf, sizeof(buf), &nss_errno);
        if (status == NSS_STATUS_NOTFOUND) {
                return NULL;
@@ -138,7 +138,7 @@ static void nss_endpwent(void)
 
 static struct group *nss_getgrent(void)
 {
-       NSS_STATUS (*_nss_getgrent_r)(struct group *, char *, 
+       NSS_STATUS (*_nss_getgrent_r)(struct group *, char *,
                                      size_t , int *) = find_fn("getgrent_r");
        static struct group grp;
        static char *buf;
@@ -147,7 +147,7 @@ static struct group *nss_getgrent(void)
 
        if (!buf) buf = malloc_array_p(char, buflen);
 
-again: 
+again:
        status = _nss_getgrent_r(&grp, buf, buflen, &nss_errno);
        if (status == NSS_STATUS_TRYAGAIN) {
                buflen *= 2;
@@ -166,7 +166,7 @@ again:
 
 static struct group *nss_getgrnam(const char *name)
 {
-       NSS_STATUS (*_nss_getgrnam_r)(const char *, struct group *, char *, 
+       NSS_STATUS (*_nss_getgrnam_r)(const char *, struct group *, char *,
                                      size_t , int *) = find_fn("getgrnam_r");
        static struct group grp;
        static char *buf;
@@ -174,7 +174,7 @@ static struct group *nss_getgrnam(const char *name)
        NSS_STATUS status;
 
        if (!buf) buf = malloc_array_p(char, buflen);
-again: 
+again:
        status = _nss_getgrnam_r(name, &grp, buf, buflen, &nss_errno);
        if (status == NSS_STATUS_TRYAGAIN) {
                buflen *= 2;
@@ -193,15 +193,15 @@ again:
 
 static struct group *nss_getgrgid(gid_t gid)
 {
-       NSS_STATUS (*_nss_getgrgid_r)(gid_t , struct group *, char *, 
+       NSS_STATUS (*_nss_getgrgid_r)(gid_t , struct group *, char *,
                                      size_t , int *) = find_fn("getgrgid_r");
        static struct group grp;
        static char *buf;
        static int buflen = 1000;
        NSS_STATUS status;
-       
+
        if (!buf) buf = malloc_array_p(char, buflen);
-again: 
+again:
        status = _nss_getgrgid_r(gid, &grp, buf, buflen, &nss_errno);
        if (status == NSS_STATUS_TRYAGAIN) {
                buflen *= 2;
@@ -241,7 +241,7 @@ static void nss_endgrent(void)
 static int nss_initgroups(char *user, gid_t group, gid_t **groups, long int *start, long int *size)
 {
        NSS_STATUS (*_nss_initgroups)(char *, gid_t , long int *,
-                                     long int *, gid_t **, long int , int *) = 
+                                     long int *, gid_t **, long int , int *) =
                find_fn("initgroups_dyn");
        NSS_STATUS status;
 
@@ -256,7 +256,7 @@ static int nss_initgroups(char *user, gid_t group, gid_t **groups, long int *sta
 
 static void print_passwd(struct passwd *pwd)
 {
-       printf("%s:%s:%d:%d:%s:%s:%s\n", 
+       printf("%s:%s:%d:%d:%s:%s:%s\n",
               pwd->pw_name,
               pwd->pw_passwd,
               pwd->pw_uid,
@@ -269,16 +269,16 @@ static void print_passwd(struct passwd *pwd)
 static void print_group(struct group *grp)
 {
        int i;
-       printf("%s:%s:%d: ", 
+       printf("%s:%s:%d: ",
               grp->gr_name,
               grp->gr_passwd,
               grp->gr_gid);
-       
+
        if (!grp->gr_mem[0]) {
                printf("\n");
                return;
        }
-       
+
        for (i=0; grp->gr_mem[i+1]; i++) {
                printf("%s, ", grp->gr_mem[i]);
        }
@@ -397,7 +397,7 @@ static void nss_test_errors(void)
 }
 
  int main(int argc, char *argv[])
-{      
+{
        if (argc > 1) so_path = argv[1];
        if (argc > 2) nss_name = argv[2];
 
similarity index 99%
rename from source4/nsswitch/nsstest.h
rename to nsswitch/nsstest.h
index 599faf2ee285e4eb85be9e8abf1d1bc71fa9eaa3..e69f17c85785755d7056829438b27fe248f76026 100644 (file)
@@ -1,18 +1,18 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    nss includes for the nss tester
    Copyright (C) Kai Blin 2007
-   
+
    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/>.
 */
@@ -25,7 +25,7 @@
 
 #ifdef HAVE_NSS_COMMON_H
 
-/* 
+/*
  * Sun Solaris
  */
 
similarity index 87%
rename from source4/nsswitch/nsstest.m4
rename to nsswitch/nsstest.m4
index 2856f9de155cb324fa11a2bf37fac2e5ee86d060..37596489c096f027f051933d87dd205529b2a5a0 100644 (file)
@@ -1,9 +1,8 @@
 case "$host_os" in
-       *linux*) 
+       *linux*)
                SMB_ENABLE(nsstest,YES)
        ;;
        *)
                SMB_ENABLE(nsstest,NO)
        ;;
 esac
-
similarity index 97%
rename from source3/nsswitch/pam_winbind.h
rename to nsswitch/pam_winbind.h
index 0656f5972e0b880ef0822eb5b1c750f3623e59e0..c6b2c5e72695499c5365ee2f3e9eef09dfc4a6e2 100644 (file)
@@ -1,4 +1,4 @@
-/* pam_winbind header file 
+/* pam_winbind header file
    (Solaris needs some macros from Linux for common PAM code)
 
    Shirish Kalele 2000
@@ -32,7 +32,7 @@
 /* Solaris always uses dynamic pam modules */
 #define PAM_EXTERN extern
 #if defined(HAVE_SECURITY_PAM_APPL_H)
-#include <security/pam_appl.h> 
+#include <security/pam_appl.h>
 #elif defined(HAVE_PAM_PAM_APPL_H)
 #include <pam/pam_appl.h>
 #endif
@@ -83,7 +83,7 @@ do {                             \
 
 #define _pam_drop(X) SAFE_FREE(X)
 
-#define  x_strdup(s)  ( (s) ? strdup(s):NULL )     
+#define  x_strdup(s)  ( (s) ? strdup(s):NULL )
 #endif /* HAVE_SECURITY__PAM_MACROS_H */
 
 #ifdef HAVE_SECURITY_PAM_EXT_H
@@ -167,4 +167,3 @@ struct pwb_context {
 #define TALLOC_FREE(ctx) do { if ((ctx) != NULL) {talloc_free(ctx); ctx=NULL;} } while(0)
 #define TALLOC_ZERO_P(ctx, type) (type *)_talloc_zero(ctx, sizeof(type), #type)
 #define TALLOC_P(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type)
-
similarity index 98%
rename from source4/nsswitch/tests/test_wbinfo.sh
rename to nsswitch/tests/test_wbinfo.sh
index a67fac9394d410cd5c25a29e7a2e6093fdcba9d5..8fa0db812d82dc5f9184cb8277a09a178c491638 100755 (executable)
@@ -14,10 +14,10 @@ TARGET=$4
 shift 4
 
 failed=0
-samba4bindir=`dirname $0`/../../bin
+samba4bindir=`dirname $0`/../../source4/bin
 wbinfo=$samba4bindir/wbinfo
 
-. `dirname $0`/../../../testprogs/blackbox/subunit.sh
+. `dirname $0`/../../testprogs/blackbox/subunit.sh
 
 testfail() {
        name="$1"
@@ -184,4 +184,3 @@ testit "wbinfo -K against $TARGET with domain creds" $wbinfo -K "$DOMAIN/$USERNA
 testit "wbinfo --separator against $TARGET" $wbinfo --separator || failed=`expr $failed + 1`
 
 exit $failed
-
similarity index 95%
rename from source3/nsswitch/wb_common.c
rename to nsswitch/wb_common.c
index a1646215bdff3d44e7fe977f7cb3bdb2cc8c67f6..d0dfcb8bbfb67326d82f2736b8110b3a9baf8688 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    winbind client common code
@@ -6,18 +6,18 @@
    Copyright (C) Tim Potter 2000
    Copyright (C) Andrew Tridgell 2000
    Copyright (C) Andrew Bartlett 2002
-   
-   
+
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -74,11 +74,11 @@ void winbind_close_sock(void)
 /* Make sure socket handle isn't stdin, stdout or stderr */
 #define RECURSION_LIMIT 3
 
-static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */) 
+static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */)
 {
        int new_fd;
        if (fd >= 0 && fd <= 2) {
-#ifdef F_DUPFD 
+#ifdef F_DUPFD
                if ((new_fd = fcntl(fd, F_DUPFD, 3)) == -1) {
                        return -1;
                }
@@ -92,9 +92,9 @@ static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */)
 #else
                if (limit <= 0)
                        return -1;
-               
+
                new_fd = dup(fd);
-               if (new_fd == -1) 
+               if (new_fd == -1)
                        return -1;
 
                /* use the program stack to hold our list of FDs to close */
@@ -114,7 +114,7 @@ static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */)
  Set close on exec also.
 ****************************************************************************/
 
-static int make_safe_fd(int fd) 
+static int make_safe_fd(int fd)
 {
        int result, flags;
        int new_fd = make_nonstd_fd_internals(fd, RECURSION_LIMIT);
@@ -366,65 +366,65 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
 int winbind_write_sock(void *buffer, int count, int recursing, int need_priv)
 {
        int result, nwritten;
-       
+
        /* Open connection to winbind daemon */
-       
+
  restart:
-       
+
        if (winbind_open_pipe_sock(recursing, need_priv) == -1) {
                errno = ENOENT;
                return -1;
        }
-       
+
        /* Write data to socket */
-       
+
        nwritten = 0;
-       
+
        while(nwritten < count) {
                struct timeval tv;
                fd_set r_fds;
-               
+
                /* Catch pipe close on other end by checking if a read()
                   call would not block by calling select(). */
 
                FD_ZERO(&r_fds);
                FD_SET(winbindd_fd, &r_fds);
                ZERO_STRUCT(tv);
-               
+
                if (select(winbindd_fd + 1, &r_fds, NULL, NULL, &tv) == -1) {
                        winbind_close_sock();
                        return -1;                   /* Select error */
                }
-               
+
                /* Write should be OK if fd not available for reading */
-               
+
                if (!FD_ISSET(winbindd_fd, &r_fds)) {
-                       
+
                        /* Do the write */
-                       
+
                        result = write(winbindd_fd,
-                                      (char *)buffer + nwritten, 
+                                      (char *)buffer + nwritten,
                                       count - nwritten);
-                       
+
                        if ((result == -1) || (result == 0)) {
-                               
+
                                /* Write failed */
-                               
+
                                winbind_close_sock();
                                return -1;
                        }
-                       
+
                        nwritten += result;
-                       
+
                } else {
-                       
+
                        /* Pipe has closed on remote end */
-                       
+
                        winbind_close_sock();
                        goto restart;
                }
        }
-       
+
        return nwritten;
 }
 
@@ -443,7 +443,7 @@ int winbind_read_sock(void *buffer, int count)
        while(nread < count) {
                struct timeval tv;
                fd_set r_fds;
-               
+
                /* Catch pipe close on other end by checking if a read()
                   call would not block by calling select(). */
 
@@ -457,7 +457,7 @@ int winbind_read_sock(void *buffer, int count)
                        winbind_close_sock();
                        return -1;                   /* Select error */
                }
-               
+
                if (selret == 0) {
                        /* Not ready for read yet... */
                        if (total_time >= 30) {
@@ -470,27 +470,27 @@ int winbind_read_sock(void *buffer, int count)
                }
 
                if (FD_ISSET(winbindd_fd, &r_fds)) {
-                       
+
                        /* Do the Read */
-                       
-                       int result = read(winbindd_fd, (char *)buffer + nread, 
+
+                       int result = read(winbindd_fd, (char *)buffer + nread,
                              count - nread);
-                       
+
                        if ((result == -1) || (result == 0)) {
-                               
+
                                /* Read failed.  I think the only useful thing we
                                   can do here is just return -1 and fail since the
                                   transaction has failed half way through. */
-                       
+
                                winbind_close_sock();
                                return -1;
                        }
-                       
+
                        nread += result;
-                       
+
                }
        }
-       
+
        return nread;
 }
 
@@ -503,15 +503,15 @@ int winbindd_read_reply(struct winbindd_response *response)
        if (!response) {
                return -1;
        }
-       
+
        /* Read fixed length response */
-       
+
        result1 = winbind_read_sock(response,
                                    sizeof(struct winbindd_response));
        if (result1 == -1) {
                return -1;
        }
-       
+
        /* We actually send the pointer value of the extra_data field from
           the server.  This has no meaning in the client's address space
           so we clear it out. */
@@ -519,17 +519,17 @@ int winbindd_read_reply(struct winbindd_response *response)
        response->extra_data.data = NULL;
 
        /* Read variable length response */
-       
+
        if (response->length > sizeof(struct winbindd_response)) {
-               int extra_data_len = response->length - 
+               int extra_data_len = response->length -
                        sizeof(struct winbindd_response);
-               
+
                /* Mallocate memory for extra data */
-               
+
                if (!(response->extra_data.data = malloc(extra_data_len))) {
                        return -1;
                }
-               
+
                result2 = winbind_read_sock(response->extra_data.data,
                                            extra_data_len);
                if (result2 == -1) {
@@ -537,14 +537,14 @@ int winbindd_read_reply(struct winbindd_response *response)
                        return -1;
                }
        }
-       
+
        /* Return total amount of data read */
-       
+
        return result1 + result2;
 }
 
-/* 
- * send simple types of requests 
+/*
+ * send simple types of requests
  */
 
 NSS_STATUS winbindd_send_request(int req_type, int need_priv,
@@ -562,33 +562,33 @@ NSS_STATUS winbindd_send_request(int req_type, int need_priv,
                ZERO_STRUCT(lrequest);
                request = &lrequest;
        }
-       
+
        /* Fill in request and send down pipe */
 
        winbindd_init_request(request, req_type);
-       
+
        if (winbind_write_sock(request, sizeof(*request),
                               request->wb_flags & WBFLAG_RECURSE,
-                              need_priv) == -1) 
+                              need_priv) == -1)
        {
                /* Set ENOENT for consistency.  Required by some apps */
                errno = ENOENT;
-               
+
                return NSS_STATUS_UNAVAIL;
        }
 
        if ((request->extra_len != 0) &&
            (winbind_write_sock(request->extra_data.data,
-                               request->extra_len,
+                               request->extra_len,
                                request->wb_flags & WBFLAG_RECURSE,
-                               need_priv) == -1)) 
+                               need_priv) == -1))
        {
                /* Set ENOENT for consistency.  Required by some apps */
                errno = ENOENT;
 
                return NSS_STATUS_UNAVAIL;
        }
-       
+
        return NSS_STATUS_SUCCESS;
 }
 
@@ -624,13 +624,13 @@ NSS_STATUS winbindd_get_response(struct winbindd_response *response)
        if (response->result != WINBINDD_OK) {
                return NSS_STATUS_NOTFOUND;
        }
-       
+
        return NSS_STATUS_SUCCESS;
 }
 
 /* Handle simple types of requests */
 
-NSS_STATUS winbindd_request_response(int req_type, 
+NSS_STATUS winbindd_request_response(int req_type,
                            struct winbindd_request *request,
                            struct winbindd_response *response)
 {
@@ -639,7 +639,7 @@ NSS_STATUS winbindd_request_response(int req_type,
 
        while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
                status = winbindd_send_request(req_type, 0, request);
-               if (status != NSS_STATUS_SUCCESS) 
+               if (status != NSS_STATUS_SUCCESS)
                        return(status);
                status = winbindd_get_response(response);
                count += 1;
@@ -648,7 +648,7 @@ NSS_STATUS winbindd_request_response(int req_type,
        return status;
 }
 
-NSS_STATUS winbindd_priv_request_response(int req_type, 
+NSS_STATUS winbindd_priv_request_response(int req_type,
                                          struct winbindd_request *request,
                                          struct winbindd_response *response)
 {
@@ -657,7 +657,7 @@ NSS_STATUS winbindd_priv_request_response(int req_type,
 
        while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
                status = winbindd_send_request(req_type, 1, request);
-               if (status != NSS_STATUS_SUCCESS) 
+               if (status != NSS_STATUS_SUCCESS)
                        return(status);
                status = winbindd_get_response(response);
                count += 1;
similarity index 99%
rename from source3/nsswitch/wbinfo.c
rename to nsswitch/wbinfo.c
index c85e210cc04de2fd999fc2085e3d0a12fc66aaee..36c2818ccf26b91a4a34528cdebd5f50def59ff4 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind status program.
 
    Copyright (C) Tim Potter      2000-2003
    Copyright (C) Andrew Bartlett 2002
-   
+
    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/>.
 */
@@ -378,8 +378,8 @@ static bool wbinfo_list_domains(bool list_all_domains, bool verbose)
        }
 
        if (print_all) {
-               d_printf("%-16s%-24s%-12s%-12s%-5s%-5s\n", 
-                        "Domain Name", "DNS Domain", "Trust Type", 
+               d_printf("%-16s%-24s%-12s%-12s%-5s%-5s\n",
+                        "Domain Name", "DNS Domain", "Trust Type",
                         "Transitive", "In", "Out");
        }
 
@@ -398,10 +398,10 @@ static bool wbinfo_list_domains(bool list_all_domains, bool verbose)
                case WBC_DOMINFO_TRUSTTYPE_NONE:
                        d_printf("None        ");
                        break;
-               case WBC_DOMINFO_TRUSTTYPE_FOREST:              
+               case WBC_DOMINFO_TRUSTTYPE_FOREST:
                        d_printf("Forest      ");
                        break;
-               case WBC_DOMINFO_TRUSTTYPE_EXTERNAL:            
+               case WBC_DOMINFO_TRUSTTYPE_EXTERNAL:
                        d_printf("External    ");
                        break;
                case WBC_DOMINFO_TRUSTTYPE_IN_FOREST:
@@ -472,8 +472,8 @@ static bool wbinfo_show_onlinestatus(const char *domain)
                }
 
                is_offline = (domain_list[i].domain_flags & WBC_DOMINFO_DOMAIN_OFFLINE);
-               
-               d_printf("%s : %s\n", 
+
+               d_printf("%s : %s\n",
                         domain_list[i].short_name,
                         is_offline ? "offline" : "online" );
        }
@@ -1104,12 +1104,12 @@ static bool wbinfo_auth_krb5(char *username, const char *cctype, uint32 flags)
 
        /* Display response */
 
-       d_printf("plaintext kerberos password authentication for [%s] %s (requesting cctype: %s)\n", 
+       d_printf("plaintext kerberos password authentication for [%s] %s (requesting cctype: %s)\n",
                username, (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed", cctype);
 
        if (response.data.auth.nt_status)
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
-                        response.data.auth.nt_status_string, 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
+                        response.data.auth.nt_status_string,
                         response.data.auth.nt_status,
                         response.data.auth.error_string);
 
@@ -1162,7 +1162,7 @@ static bool wbinfo_auth(char *username)
 
 #if 0
        if (response.data.auth.nt_status)
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
                         response.data.auth.nt_status_string,
                         response.data.auth.nt_status,
                         response.data.auth.error_string);
@@ -1260,7 +1260,7 @@ static bool wbinfo_auth_crap(char *username)
                 WBC_ERROR_IS_OK(wbc_status) ? "succeeded" : "failed");
 
        if (wbc_status == WBC_ERR_AUTH_ERROR) {
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
                         err->nt_string,
                         err->nt_status,
                         err->display_string);
@@ -1312,7 +1312,7 @@ static bool wbinfo_klog(char *username)
                 (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed");
 
        if (response.data.auth.nt_status)
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
                         response.data.auth.nt_status_string,
                         response.data.auth.nt_status,
                         response.data.auth.error_string);
@@ -1853,14 +1853,14 @@ int main(int argc, char **argv, char **envp)
                        break;
                case 'r':
                        if (!wbinfo_get_usergroups(string_arg)) {
-                               d_fprintf(stderr, "Could not get groups for user %s\n", 
+                               d_fprintf(stderr, "Could not get groups for user %s\n",
                                       string_arg);
                                goto done;
                        }
                        break;
                case OPT_USERSIDS:
                        if (!wbinfo_get_usersids(string_arg)) {
-                               d_fprintf(stderr, "Could not get group SIDs for user SID %s\n", 
+                               d_fprintf(stderr, "Could not get group SIDs for user SID %s\n",
                                       string_arg);
                                goto done;
                        }
similarity index 95%
rename from source4/nsswitch/wbinfo.c
rename to nsswitch/wbinfo4.c
index 60c95a3bd06d95a4864e83c9ea3ab4e44f6aa553..465c3f793cfa0d9e04c3550eef78864ca822cfb3 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind status program.
 
    Copyright (C) Tim Potter      2000-2003
    Copyright (C) Andrew Bartlett 2002-2007
-   
+
    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/>.
 */
 #include "dynconfig/dynconfig.h"
 #include "param/param.h"
 
+#ifndef fstrcpy
+#define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1)
+#endif
+
 extern int winbindd_fd;
 
 static char winbind_separator_int(bool strict)
@@ -65,7 +69,7 @@ static char winbind_separator_int(bool strict)
                /* HACK: (this module should not call lp_ funtions) */
                sep = *lp_winbind_separator(cmdline_lp_ctx);
        }
-       
+
        return sep;
 }
 
@@ -86,7 +90,7 @@ static const char *get_winbind_domain(void)
        if (winbindd_request_response(WINBINDD_DOMAIN_NAME, NULL, &response) !=
            NSS_STATUS_SUCCESS) {
                d_fprintf(stderr, "could not obtain winbind domain name!\n");
-               
+
                /* HACK: (this module should not call lp_ funtions) */
                return lp_workgroup(cmdline_lp_ctx);
        }
@@ -100,7 +104,7 @@ static const char *get_winbind_domain(void)
 /* Copy of parse_domain_user from winbindd_util.c.  Parse a string of the
    form DOMAIN/user into a domain and a user */
 
-static bool parse_wbinfo_domain_user(const char *domuser, fstring domain, 
+static bool parse_wbinfo_domain_user(const char *domuser, fstring domain,
                                     fstring user)
 {
 
@@ -111,7 +115,7 @@ static bool parse_wbinfo_domain_user(const char *domuser, fstring domain,
                fstrcpy(domain, get_winbind_domain());
                return true;
        }
-        
+
        fstrcpy(user, p+1);
        fstrcpy(domain, domuser);
        domain[PTR_DIFF(p, domuser)] = 0;
@@ -127,19 +131,19 @@ static bool wbinfo_get_userinfo(char *user)
        struct winbindd_request request;
        struct winbindd_response response;
        NSS_STATUS result;
-       
+
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
 
        /* Send request */
-       
+
        fstrcpy(request.data.username, user);
 
        result = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response);
-       
+
        if (result != NSS_STATUS_SUCCESS)
                return false;
-       
+
        d_printf( "%s:%s:%d:%d:%s:%s:%s\n",
                          response.data.pw.pw_name,
                          response.data.pw.pw_passwd,
@@ -148,7 +152,7 @@ static bool wbinfo_get_userinfo(char *user)
                          response.data.pw.pw_gecos,
                          response.data.pw.pw_dir,
                          response.data.pw.pw_shell );
-       
+
        return true;
 }
 
@@ -201,11 +205,11 @@ static bool wbinfo_get_groupinfo(char *group)
        if ( result != NSS_STATUS_SUCCESS)
                return false;
 
-       d_printf( "%s:%s:%d\n",
+       d_printf( "%s:%s:%d\n",
                  response.data.gr.gr_name,
                  response.data.gr.gr_passwd,
                  response.data.gr.gr_gid );
-       
+
        return true;
 }
 
@@ -217,7 +221,7 @@ static bool wbinfo_get_usergroups(char *user)
        struct winbindd_response response;
        NSS_STATUS result;
        int i;
-       
+
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
 
@@ -290,7 +294,7 @@ static bool wbinfo_get_userdomgroups(const char *user_sid)
 
        if (response.data.num_entries != 0)
                printf("%s", (char *)response.extra_data.data);
-       
+
        SAFE_FREE(response.extra_data.data);
 
        return true;
@@ -503,16 +507,16 @@ static bool wbinfo_check_secret(void)
         ZERO_STRUCT(response);
 
         result = winbindd_request_response(WINBINDD_CHECK_MACHACC, NULL, &response);
-               
-       d_printf("checking the trust secret via RPC calls %s\n", 
+
+       d_printf("checking the trust secret via RPC calls %s\n",
                 (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed");
 
-       if (result != NSS_STATUS_SUCCESS)       
-               d_fprintf(stderr, "error code was %s (0x%x)\n", 
-                        response.data.auth.nt_status_string, 
-                        response.data.auth.nt_status);
-       
-       return result == NSS_STATUS_SUCCESS;    
+       if (result != NSS_STATUS_SUCCESS)
+               d_fprintf(stderr, "error code was %s (0x%x)\n",
+                        response.data.auth.nt_status_string,
+                        response.data.auth.nt_status);
+
+       return result == NSS_STATUS_SUCCESS;
 }
 
 /* Convert uid to sid */
@@ -669,7 +673,7 @@ static bool wbinfo_lookupname(char *name)
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
 
-       parse_wbinfo_domain_user(name, request.data.name.dom_name, 
+       parse_wbinfo_domain_user(name, request.data.name.dom_name,
                                 request.data.name.name);
 
        if (winbindd_request_response(WINBINDD_LOOKUPNAME, &request, &response) !=
@@ -717,12 +721,12 @@ static bool wbinfo_auth_krb5(char *username, const char *cctype, uint32_t flags)
 
        /* Display response */
 
-       d_printf("plaintext kerberos password authentication for [%s] %s (requesting cctype: %s)\n", 
+       d_printf("plaintext kerberos password authentication for [%s] %s (requesting cctype: %s)\n",
                username, (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed", cctype);
 
        if (response.data.auth.nt_status)
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
-                        response.data.auth.nt_status_string, 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
+                        response.data.auth.nt_status_string,
                         response.data.auth.nt_status,
                         response.data.auth.error_string);
 
@@ -772,12 +776,12 @@ static bool wbinfo_auth(char *username)
 
        /* Display response */
 
-        d_printf("plaintext password authentication %s\n", 
+        d_printf("plaintext password authentication %s\n",
                (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed");
 
        if (response.data.auth.nt_status)
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
-                        response.data.auth.nt_status_string, 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
+                        response.data.auth.nt_status_string,
                         response.data.auth.nt_status,
                         response.data.auth.error_string);
 
@@ -807,21 +811,21 @@ static bool wbinfo_auth_crap(struct loadparm_context *lp_ctx, char *username)
                 *p = 0;
                 fstrcpy(pass, p + 1);
        }
-               
+
        parse_wbinfo_domain_user(username, name_domain, name_user);
 
        request.data.auth_crap.logon_parameters = MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT | MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT;
 
        fstrcpy(request.data.auth_crap.user, name_user);
 
-       fstrcpy(request.data.auth_crap.domain, 
+       fstrcpy(request.data.auth_crap.domain,
                              name_domain);
 
        generate_random_buffer(request.data.auth_crap.chal, 8);
-        
+
        if (lp_client_ntlmv2_auth(lp_ctx)) {
                DATA_BLOB server_chal;
-               DATA_BLOB names_blob;   
+               DATA_BLOB names_blob;
 
                DATA_BLOB lm_response;
                DATA_BLOB nt_response;
@@ -833,12 +837,12 @@ static bool wbinfo_auth_crap(struct loadparm_context *lp_ctx, char *username)
                        return false;
                }
 
-               server_chal = data_blob(request.data.auth_crap.chal, 8); 
-               
+               server_chal = data_blob(request.data.auth_crap.chal, 8);
+
                /* Pretend this is a login to 'us', for blob purposes */
                names_blob = NTLMv2_generate_names_blob(mem_ctx, lp_netbios_name(lp_ctx), lp_workgroup(lp_ctx));
-               
-               if (!SMBNTLMv2encrypt(mem_ctx, name_user, name_domain, pass, &server_chal, 
+
+               if (!SMBNTLMv2encrypt(mem_ctx, name_user, name_domain, pass, &server_chal,
                                      &names_blob,
                                      &lm_response, &nt_response, NULL, NULL)) {
                        data_blob_free(&names_blob);
@@ -848,22 +852,22 @@ static bool wbinfo_auth_crap(struct loadparm_context *lp_ctx, char *username)
                data_blob_free(&names_blob);
                data_blob_free(&server_chal);
 
-               memcpy(request.data.auth_crap.nt_resp, nt_response.data, 
-                      MIN(nt_response.length, 
+               memcpy(request.data.auth_crap.nt_resp, nt_response.data,
+                      MIN(nt_response.length,
                           sizeof(request.data.auth_crap.nt_resp)));
                request.data.auth_crap.nt_resp_len = nt_response.length;
 
-               memcpy(request.data.auth_crap.lm_resp, lm_response.data, 
-                      MIN(lm_response.length, 
+               memcpy(request.data.auth_crap.lm_resp, lm_response.data,
+                      MIN(lm_response.length,
                           sizeof(request.data.auth_crap.lm_resp)));
                request.data.auth_crap.lm_resp_len = lm_response.length;
-                      
+
                data_blob_free(&nt_response);
                data_blob_free(&lm_response);
 
        } else {
-               if (lp_client_lanman_auth(lp_ctx) 
-                   && SMBencrypt(pass, request.data.auth_crap.chal, 
+               if (lp_client_lanman_auth(lp_ctx)
+                   && SMBencrypt(pass, request.data.auth_crap.chal,
                               (unsigned char *)request.data.auth_crap.lm_resp)) {
                        request.data.auth_crap.lm_resp_len = 24;
                } else {
@@ -879,12 +883,12 @@ static bool wbinfo_auth_crap(struct loadparm_context *lp_ctx, char *username)
 
        /* Display response */
 
-        d_printf("challenge/response password authentication %s\n", 
+        d_printf("challenge/response password authentication %s\n",
                (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed");
 
        if (response.data.auth.nt_status)
-               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", 
-                        response.data.auth.nt_status_string, 
+               d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n",
+                        response.data.auth.nt_status_string,
                         response.data.auth.nt_status,
                         response.data.auth.error_string);
 
@@ -904,7 +908,7 @@ static bool print_domain_users(const char *domain)
 
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
-       
+
        if (domain) {
                /* '.' is the special sign for our own domain */
                if ( strequal(domain, ".") )
@@ -926,7 +930,7 @@ static bool print_domain_users(const char *domain)
 
        while(next_token(&extra_data, name, ",", sizeof(fstring)))
                d_printf("%s\n", name);
-       
+
        SAFE_FREE(response.extra_data.data);
 
        return true;
@@ -966,7 +970,7 @@ static bool print_domain_groups(const char *domain)
                d_printf("%s\n", name);
 
        SAFE_FREE(response.extra_data.data);
-       
+
        return true;
 }
 
@@ -978,7 +982,7 @@ static bool wbinfo_ping(void)
 
        /* Display response */
 
-        d_printf("Ping to winbindd %s on fd %d\n", 
+        d_printf("Ping to winbindd %s on fd %d\n",
                (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed", winbindd_fd);
 
         return result == NSS_STATUS_SUCCESS;
@@ -1016,7 +1020,7 @@ int main(int argc, char **argv, char **envp)
        struct poptOption long_options[] = {
                POPT_AUTOHELP
 
-               /* longName, shortName, argInfo, argPtr, value, descrip, 
+               /* longName, shortName, argInfo, argPtr, value, descrip,
                   argDesc */
 
                { "domain-users", 'u', POPT_ARG_NONE, 0, 'u', "Lists all domain users", "domain"},
@@ -1042,7 +1046,7 @@ int main(int argc, char **argv, char **envp)
                { "user-domgroups", 0, POPT_ARG_STRING, &string_arg,
                  OPT_USERDOMGROUPS, "Get user domain groups", "SID" },
                { "user-sids", 0, POPT_ARG_STRING, &string_arg, OPT_USERSIDS, "Get user group sids for user SID", "SID" },
-               { "authenticate", 'a', POPT_ARG_STRING, &string_arg, 'a', "authenticate user", "user%password" },
+               { "authenticate", 'a', POPT_ARG_STRING, &string_arg, 'a', "authenticate user", "user%password" },
                { "getdcname", 0, POPT_ARG_STRING, &string_arg, OPT_GETDCNAME,
                  "Get a DC name for a foreign domain", "domainname" },
                { "ping", 'p', POPT_ARG_NONE, 0, 'p', "Ping winbindd to see if it is alive" },
@@ -1075,7 +1079,7 @@ int main(int argc, char **argv, char **envp)
 
        poptFreeContext(pc);
 
-       pc = poptGetContext(NULL, argc, (const char **)argv, long_options, 
+       pc = poptGetContext(NULL, argc, (const char **)argv, long_options,
                            POPT_CONTEXT_KEEP_FIRST);
 
        while((opt = poptGetNextOpt(pc)) != -1) {
@@ -1190,14 +1194,14 @@ int main(int argc, char **argv, char **envp)
                        break;
                case 'r':
                        if (!wbinfo_get_usergroups(string_arg)) {
-                               d_fprintf(stderr, "Could not get groups for user %s\n", 
+                               d_fprintf(stderr, "Could not get groups for user %s\n",
                                       string_arg);
                                goto done;
                        }
                        break;
                case OPT_USERSIDS:
                        if (!wbinfo_get_usersids(string_arg)) {
-                               d_fprintf(stderr, "Could not get group SIDs for user SID %s\n", 
+                               d_fprintf(stderr, "Could not get group SIDs for user SID %s\n",
                                       string_arg);
                                goto done;
                        }
similarity index 90%
rename from source3/nsswitch/winbind_client.h
rename to nsswitch/winbind_client.h
index 757f5869e90168de797e9bcee81ad395877ca1bd..b004d9c2c02ed22b6213b238b5e7ee97775fbab8 100644 (file)
@@ -6,10 +6,10 @@ void winbindd_free_response(struct winbindd_response *response);
 NSS_STATUS winbindd_send_request(int req_type, int need_priv,
                                 struct winbindd_request *request);
 NSS_STATUS winbindd_get_response(struct winbindd_response *response);
-NSS_STATUS winbindd_request_response(int req_type, 
+NSS_STATUS winbindd_request_response(int req_type,
                            struct winbindd_request *request,
                            struct winbindd_response *response);
-NSS_STATUS winbindd_priv_request_response(int req_type, 
+NSS_STATUS winbindd_priv_request_response(int req_type,
                                          struct winbindd_request *request,
                                          struct winbindd_response *response);
 int winbindd_read_reply(struct winbindd_response *response);
similarity index 96%
rename from source4/nsswitch/winbind_nss.h
rename to nsswitch/winbind_nss.h
index 0a3bc7cefac88172d2bb7d70bed6eff18e23a781..05e07ad5d3137ffaecec9656298222a81451ce59 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    A common place to work out how to define NSS_STATUS on various
    platforms.
 
    Copyright (C) Tim Potter 2000
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -25,8 +25,8 @@
 
 #ifdef HAVE_NSS_COMMON_H
 
-/* 
- * Sun Solaris 
+/*
+ * Sun Solaris
  */
 
 #include "nsswitch/winbind_nss_solaris.h"
@@ -42,7 +42,7 @@
 #elif HAVE_NS_API_H
 
 /*
- * SGI IRIX 
+ * SGI IRIX
  */
 
 #include "nsswitch/winbind_nss_irix.h"
similarity index 96%
rename from source3/nsswitch/winbind_nss_aix.c
rename to nsswitch/winbind_nss_aix.c
index 9c84e5f8aa518d33bccaad057a560f4db3cd0f6a..17578cf3501ad2b79206e0003a52f41748338dc1 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    AIX loadable authentication module, providing identification and
@@ -7,17 +7,17 @@
    Copyright (C) Tim Potter 2003
    Copyright (C) Steve Roylance 2003
    Copyright (C) Andrew Tridgell 2003-2004
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -31,7 +31,7 @@
   changing routines, so you do not need to install the winbind PAM
   module.
 
-  see 
+  see
   http://publib16.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/kernextc/sec_load_mod.htm
   for some information in the interface that this module implements
 
@@ -113,12 +113,12 @@ static void free_grp(struct group *grp)
 
        free(grp->gr_name);
        free(grp->gr_passwd);
-       
+
        if (!grp->gr_mem) {
                free(grp);
                return;
        }
-       
+
        for (i=0; grp->gr_mem[i]; i++) {
                free(grp->gr_mem[i]);
        }
@@ -200,7 +200,7 @@ static struct passwd *fill_pwent(struct winbindd_pw *pw)
        result->pw_gecos  = strdup(pw->pw_gecos);
        result->pw_dir    = strdup(pw->pw_dir);
        result->pw_shell  = strdup(pw->pw_shell);
-       
+
        return result;
 }
 
@@ -229,12 +229,12 @@ static struct group *fill_grent(struct winbindd_gr *gr, char *gr_mem)
        if ((gr->num_gr_mem < 0) || !gr_mem) {
                gr->num_gr_mem = 0;
        }
-       
+
        if (gr->num_gr_mem == 0) {
-               /* Group is empty */            
+               /* Group is empty */
                return result;
        }
-       
+
        result->gr_mem = (char **)malloc(sizeof(char *) * (gr->num_gr_mem+1));
        if (!result->gr_mem) {
                errno = ENOMEM;
@@ -243,8 +243,8 @@ static struct group *fill_grent(struct winbindd_gr *gr, char *gr_mem)
 
        /* Start looking at extra data */
        i=0;
-       for (name = strtok_r(gr_mem, ",", &p); 
-            name; 
+       for (name = strtok_r(gr_mem, ",", &p);
+            name;
             name = strtok_r(NULL, ",", &p)) {
                if (i == gr->num_gr_mem) {
                        break;
@@ -261,7 +261,7 @@ static struct group *fill_grent(struct winbindd_gr *gr, char *gr_mem)
 
 
 
-/* take a group id and return a filled struct group */ 
+/* take a group id and return a filled struct group */
 static struct group *wb_aix_getgrgid(gid_t gid)
 {
        struct winbindd_response response;
@@ -273,7 +273,7 @@ static struct group *wb_aix_getgrgid(gid_t gid)
 
        ZERO_STRUCT(response);
        ZERO_STRUCT(request);
-       
+
        request.data.gid = gid;
 
        ret = winbindd_request_response(WINBINDD_GETGRGID, &request, &response);
@@ -309,7 +309,7 @@ static struct group *wb_aix_getgrnam(const char *name)
        STRCPY_RETNULL(request.data.groupname, name);
 
        ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response);
-       
+
        HANDLE_ERRORS(ret);
 
        grp = fill_grent(&response.data.gr, response.extra_data.data);
@@ -373,7 +373,7 @@ static char *wb_aix_getgrset(char *user)
 
        num_gids = response.data.num_entries;
        gid_list = (gid_t *)response.extra_data.data;
-               
+
        /* allocate a space large enough to contruct the string */
        tmpbuf = malloc(num_gids*12);
        if (!tmpbuf) {
@@ -381,9 +381,9 @@ static char *wb_aix_getgrset(char *user)
        }
 
        for (idx=i=0; i < num_gids-1; i++) {
-               idx += sprintf(tmpbuf+idx, "%u,", gid_list[i]); 
+               idx += sprintf(tmpbuf+idx, "%u,", gid_list[i]);
        }
-       idx += sprintf(tmpbuf+idx, "%u", gid_list[i]);  
+       idx += sprintf(tmpbuf+idx, "%u", gid_list[i]);
 
        winbindd_free_response(&response);
 
@@ -391,7 +391,7 @@ static char *wb_aix_getgrset(char *user)
 }
 
 
-/* take a uid and return a filled struct passwd */     
+/* take a uid and return a filled struct passwd */
 static struct passwd *wb_aix_getpwuid(uid_t uid)
 {
        struct winbindd_response response;
@@ -403,9 +403,9 @@ static struct passwd *wb_aix_getpwuid(uid_t uid)
 
        ZERO_STRUCT(response);
        ZERO_STRUCT(request);
-               
+
        request.data.uid = uid;
-       
+
        ret = winbindd_request_response(WINBINDD_GETPWUID, &request, &response);
 
        HANDLE_ERRORS(ret);
@@ -442,7 +442,7 @@ static struct passwd *wb_aix_getpwnam(const char *name)
        ret = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response);
 
        HANDLE_ERRORS(ret);
-       
+
        pwd = fill_pwent(&response.data.pw);
 
        winbindd_free_response(&response);
@@ -471,7 +471,7 @@ static int wb_aix_lsuser(char *attributes[], attrval_t results[], int size)
 
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
-       
+
        ret = winbindd_request_response(WINBINDD_LIST_USERS, &request, &response);
        if (ret != 0) {
                errno = EINVAL;
@@ -486,7 +486,7 @@ static int wb_aix_lsuser(char *attributes[], attrval_t results[], int size)
                errno = ENOMEM;
                return -1;
        }
-       
+
        memcpy(s, response.extra_data.data, len+1);
 
        replace_commas(s);
@@ -495,7 +495,7 @@ static int wb_aix_lsuser(char *attributes[], attrval_t results[], int size)
        results[0].attr_flag = 0;
 
        winbindd_free_response(&response);
-       
+
        return 0;
 }
 
@@ -519,7 +519,7 @@ static int wb_aix_lsgroup(char *attributes[], attrval_t results[], int size)
 
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
-       
+
        ret = winbindd_request_response(WINBINDD_LIST_GROUPS, &request, &response);
        if (ret != 0) {
                errno = EINVAL;
@@ -534,7 +534,7 @@ static int wb_aix_lsgroup(char *attributes[], attrval_t results[], int size)
                errno = ENOMEM;
                return -1;
        }
-       
+
        memcpy(s, response.extra_data.data, len+1);
 
        replace_commas(s);
@@ -543,7 +543,7 @@ static int wb_aix_lsgroup(char *attributes[], attrval_t results[], int size)
        results[0].attr_flag = 0;
 
        winbindd_free_response(&response);
-       
+
        return 0;
 }
 
@@ -552,9 +552,9 @@ static attrval_t pwd_to_group(struct passwd *pwd)
 {
        attrval_t r;
        struct group *grp = wb_aix_getgrgid(pwd->pw_gid);
-       
+
        if (!grp) {
-               r.attr_flag = EINVAL;                           
+               r.attr_flag = EINVAL;
        } else {
                r.attr_flag = 0;
                r.attr_un.au_char = strdup(grp->gr_name);
@@ -692,18 +692,18 @@ static int wb_aix_group_attrib(const char *key, char *attributes[],
 /*
   called for user/group enumerations
 */
-static int wb_aix_getentry(char *key, char *table, char *attributes[], 
+static int wb_aix_getentry(char *key, char *table, char *attributes[],
                           attrval_t results[], int size)
 {
-       logit("Got getentry with key='%s' table='%s' size=%d attributes[0]='%s'\n", 
+       logit("Got getentry with key='%s' table='%s' size=%d attributes[0]='%s'\n",
              key, table, size, attributes[0]);
 
-       if (strcmp(key, "ALL") == 0 && 
+       if (strcmp(key, "ALL") == 0 &&
            strcmp(table, "user") == 0) {
                return wb_aix_lsuser(attributes, results, size);
        }
 
-       if (strcmp(key, "ALL") == 0 && 
+       if (strcmp(key, "ALL") == 0 &&
            strcmp(table, "group") == 0) {
                return wb_aix_lsgroup(attributes, results, size);
        }
@@ -732,7 +732,7 @@ static void *wb_aix_open(const char *name, const char *domain, int mode, char *o
        if (strstr(options, "debug")) {
                debug_enabled = 1;
        }
-       logit("open name='%s' mode=%d domain='%s' options='%s'\n", name, domain, 
+       logit("open name='%s' mode=%d domain='%s' options='%s'\n", name, domain,
              mode, options);
        return NULL;
 }
@@ -744,14 +744,14 @@ static void wb_aix_close(void *token)
 }
 
 #ifdef HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST
-/* 
-   return a list of additional attributes supported by the backend 
+/*
+   return a list of additional attributes supported by the backend
 */
 static attrlist_t **wb_aix_attrlist(void)
 {
        /* pretty confusing but we are allocating the array of pointers
           and the structures we'll be pointing to all at once.  So
-          you need N+1 pointers and N structures. */
+          you need N+1 pointers and N structures. */
 
        attrlist_t **ret = NULL;
        attrlist_t *offset = NULL;
@@ -821,7 +821,7 @@ static attrlist_t **wb_aix_attrlist(void)
 
 
 /*
-  turn a long username into a short one. Needed to cope with the 8 char 
+  turn a long username into a short one. Needed to cope with the 8 char
   username limit in AIX 5.2 and below
 */
 static int wb_aix_normalize(char *longname, char *shortname)
@@ -854,7 +854,7 @@ static int wb_aix_normalize(char *longname, char *shortname)
 /*
   authenticate a user
  */
-static int wb_aix_authenticate(char *user, char *pass, 
+static int wb_aix_authenticate(char *user, char *pass,
                               int *reenter, char **message)
 {
        struct winbindd_request request;
@@ -950,7 +950,7 @@ static int wb_aix_chpass(char *user, char *oldpass, char *newpass, char **messag
 /*
   don't do any password strength testing for now
 */
-static int wb_aix_passwdrestrictions(char *user, char *newpass, char *oldpass, 
+static int wb_aix_passwdrestrictions(char *user, char *newpass, char *oldpass,
                                     char **message)
 {
        logit("passwdresrictions called for '%s'\n", user);
@@ -977,13 +977,13 @@ static char *wb_aix_getpasswd(char *user)
 }
 
 /*
-  this is called to update things like the last login time. We don't 
+  this is called to update things like the last login time. We don't
   currently pass this onto the DC
 */
-static int wb_aix_putentry(char *key, char *table, char *attributes[], 
+static int wb_aix_putentry(char *key, char *table, char *attributes[],
                           attrval_t values[], int size)
 {
-       logit("putentry key='%s' table='%s' attrib='%s'\n", 
+       logit("putentry key='%s' table='%s' attrib='%s'\n",
              key, table, size>=1?attributes[0]:"<null>");
        errno = ENOSYS;
        return -1;
@@ -1047,7 +1047,7 @@ int wb_aix_init(struct secmethod_table *methods)
        methods->method_passwdexpired      = wb_aix_passwdexpired;
        methods->method_putentry           = wb_aix_putentry;
        methods->method_getpasswd          = wb_aix_getpasswd;
-       methods->method_authenticate       = wb_aix_authenticate;       
+       methods->method_authenticate       = wb_aix_authenticate;
        methods->method_commit             = wb_aix_commit;
        methods->method_chpass             = wb_aix_chpass;
        methods->method_passwdrestrictions = wb_aix_passwdrestrictions;
@@ -1074,4 +1074,3 @@ int wb_aix_init(struct secmethod_table *methods)
 
        return AUTH_SUCCESS;
 }
-
similarity index 96%
rename from source3/nsswitch/winbind_nss_config.h
rename to nsswitch/winbind_nss_config.h
index bed507fdeb50e0e4c9771f539aad60e7980f35f1..3e2ce68252ab98362b895061b2a7f66c85463a4d 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind daemon for ntdom nss module
 
    Copyright (C) Tim Potter 2000
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -54,6 +54,7 @@
 #ifndef FSTRING_LEN
 #define FSTRING_LEN 256
 typedef char fstring[FSTRING_LEN];
+#define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1)
 #endif
 
 /* Some systems (SCO) treat UNIX domain sockets as FIFOs */
similarity index 97%
rename from source3/nsswitch/winbind_nss_freebsd.c
rename to nsswitch/winbind_nss_freebsd.c
index 02e29f3131022d2f8557feae7aa918b3296209b0..ac230c8a9a4c39eda4c648a2db6ffdedfb3b8ceb 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
-   AIX loadable authentication module, providing identification 
+   AIX loadable authentication module, providing identification
    routines against Samba winbind/Windows NT Domain
 
    Copyright (C) Aaron Collins 2003
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
similarity index 98%
rename from source4/nsswitch/winbind_nss_hpux.h
rename to nsswitch/winbind_nss_hpux.h
index 62cf3c26c5209aadffd7115519cdc746d3d60246..40a352d4d3b796fb8cd22a5368058cfc694ee819 100644 (file)
@@ -1,19 +1,19 @@
 /*
    Unix SMB/CIFS implementation.
+
    Donated by HP to enable Winbindd to build on HPUX 11.x.
    Copyright (C) Jeremy Allison 2002.
+
    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
    Library 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/>.
 */
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
 #endif
+
 typedef enum {
        NSS_SUCCESS,
        NSS_NOTFOUND,
        NSS_UNAVAIL,
        NSS_TRYAGAIN
 } nss_status_t;
+
 typedef nss_status_t NSS_STATUS;
 
 struct nss_backend;
+
 typedef nss_status_t (*nss_backend_op_t)(struct nss_backend *, void *args);
+
 struct nss_backend {
        nss_backend_op_t *ops;
        int n_ops;
@@ -58,41 +58,41 @@ typedef int nss_dbop_t;
 #include <errno.h>
 #include <netdb.h>
 #include <limits.h>
+
 #ifndef NSS_INCLUDE_UNSAFE
 #define NSS_INCLUDE_UNSAFE      1       /* Build old, MT-unsafe interfaces, */
 #endif  /* NSS_INCLUDE_UNSAFE */
+
 enum nss_netgr_argn {
        NSS_NETGR_MACHINE,
        NSS_NETGR_USER,
        NSS_NETGR_DOMAIN,
        NSS_NETGR_N
 };
+
 enum nss_netgr_status {
        NSS_NETGR_FOUND,
        NSS_NETGR_NO,
        NSS_NETGR_NOMEM
 };
+
 typedef unsigned nss_innetgr_argc;
 typedef char **nss_innetgr_argv;
+
 struct nss_innetgr_1arg {
        nss_innetgr_argc argc;
        nss_innetgr_argv argv;
 };
+
 typedef struct {
        void *result;        /* "result" parameter to getXbyY_r() */
        char *buffer;        /* "buffer"     "             "      */
        int buflen;         /* "buflen"     "             "      */
 } nss_XbyY_buf_t;
+
 extern nss_XbyY_buf_t *_nss_XbyY_buf_alloc(int struct_size, int buffer_size);
 extern void _nss_XbyY_buf_free(nss_XbyY_buf_t *);
+
 union nss_XbyY_key {
        uid_t uid;
        gid_t gid;
@@ -116,7 +116,7 @@ union nss_XbyY_key {
        } serv;
        void *ether;
 };
+
 typedef struct nss_XbyY_args {
        nss_XbyY_buf_t  buf;
        int stayopen;
@@ -127,11 +127,11 @@ typedef struct nss_XbyY_args {
         */
        int (*str2ent)(const char *instr, int instr_len, void *ent, char *buffer, int buflen);
        union nss_XbyY_key key;
+
        void *returnval;
        int erange;
        int h_errno;
        nss_status_t status;
 } nss_XbyY_args_t;
+
 #endif /* _WINBIND_NSS_HPUX_H */
similarity index 97%
rename from source3/nsswitch/winbind_nss_irix.c
rename to nsswitch/winbind_nss_irix.c
index 5bc0fa54da9a00d0fd68e64f877ff42fa3487758..66fa4b529d6e6adba5342e85b7d4f201db2ca8f2 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Windows NT Domain nsswitch module
 
    Copyright (C) Tim Potter 2000
    Copyright (C) James Peach 2006
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -38,7 +38,7 @@ int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3);
 #endif
 
 /* Maximum number of users to pass back over the unix domain socket
-   per call. This is not a static limit on the total number of users 
+   per call. This is not a static limit on the total number of users
    or groups returned in total. */
 
 #define MAX_GETPWENT_USERS 250
@@ -170,7 +170,7 @@ do_request(nsd_file_t *rq, struct winbindd_request *request)
        }
 }
 
-static int 
+static int
 winbind_callback(nsd_file_t **rqp, int fd)
 {
        struct winbindd_response response;
@@ -195,7 +195,7 @@ winbind_callback(nsd_file_t **rqp, int fd)
        if (status != NSS_STATUS_SUCCESS) {
                /* free any extra data area in response structure */
                winbindd_free_response(&response);
-               nsd_logprintf(NSD_LOG_MIN, 
+               nsd_logprintf(NSD_LOG_MIN,
                        "callback (winbind) returning not found, status = %d\n",
                        status);
 
@@ -225,9 +225,9 @@ winbind_callback(nsd_file_t **rqp, int fd)
                if (rlen == 0 || result == NULL) {
                        return NSD_ERROR;
                }
-               
+
                winbindd_free_response(&response);
-               
+
                nsd_logprintf(NSD_LOG_MIN, "    %s\n", result);
                nsd_set_result(rq, NS_SUCCESS, result, rlen, DYNAMIC);
                return NSD_OK;
@@ -236,7 +236,7 @@ winbind_callback(nsd_file_t **rqp, int fd)
            case WINBINDD_GETPWNAM:
            {
                struct winbindd_pw *pw = &response.data.pw;
-           
+
                nsd_logprintf(NSD_LOG_MIN,
                        "callback (winbind) GETPWUID | GETPWUID\n");
 
@@ -250,9 +250,9 @@ winbind_callback(nsd_file_t **rqp, int fd)
                                pw->pw_shell);
                if (rlen == 0 || result == NULL)
                    return NSD_ERROR;
-           
+
                winbindd_free_response(&response);
-           
+
                nsd_logprintf(NSD_LOG_MIN, "    %s\n", result);
                nsd_set_result(rq, NS_SUCCESS, result, rlen, DYNAMIC);
                return NSD_OK;
@@ -263,7 +263,7 @@ winbind_callback(nsd_file_t **rqp, int fd)
            {
                const struct winbindd_gr *gr = &response.data.gr;
                const char * members;
-           
+
                nsd_logprintf(NSD_LOG_MIN,
                        "callback (winbind) GETGRNAM | GETGRGID\n");
 
@@ -272,14 +272,14 @@ winbind_callback(nsd_file_t **rqp, int fd)
                } else {
                        members = "";
                }
-           
+
                rlen = asprintf(&result, "%s:%s:%d:%s\n",
                            gr->gr_name, gr->gr_passwd, gr->gr_gid, members);
                if (rlen == 0 || result == NULL)
                    return NSD_ERROR;
-           
+
                winbindd_free_response(&response);
-           
+
                nsd_logprintf(NSD_LOG_MIN, "    %s\n", result);
                nsd_set_result(rq, NS_SUCCESS, result, rlen, DYNAMIC);
                return NSD_OK;
@@ -296,46 +296,46 @@ winbind_callback(nsd_file_t **rqp, int fd)
            case WINBINDD_GETGRLST:
            {
                int entries;
-           
+
                nsd_logprintf(NSD_LOG_MIN,
                    "callback (winbind) GETGRENT | GETGRLIST %d responses\n",
                    response.data.num_entries);
-           
+
                if (response.data.num_entries) {
                    const struct winbindd_gr *gr = &response.data.gr;
                    const char * members;
                    fstring grp_name;
                    int     i;
-           
+
                    gr = (struct winbindd_gr *)response.extra_data.data;
                    if (! gr ) {
                        nsd_logprintf(NSD_LOG_MIN, "     no extra_data\n");
                        winbindd_free_response(&response);
                        return NSD_ERROR;
                    }
-           
+
                    members = (char *)response.extra_data.data +
                        (response.data.num_entries * sizeof(struct winbindd_gr));
-           
+
                    for (i = 0; i < response.data.num_entries; i++) {
                        snprintf(grp_name, sizeof(grp_name) - 1, "%s:%s:%d:",
                                    gr->gr_name, gr->gr_passwd, gr->gr_gid);
-           
+
                        nsd_append_element(rq, NS_SUCCESS, result, rlen);
                        nsd_append_result(rq, NS_SUCCESS,
                                &members[gr->gr_mem_ofs],
                                strlen(&members[gr->gr_mem_ofs]));
-           
+
                        /* Don't log the whole list, because it might be
                         * _really_ long and we probably don't want to clobber
                         * the log with it.
                         */
                        nsd_logprintf(NSD_LOG_MIN, "    %s (...)\n", grp_name);
-           
+
                        gr++;
                    }
                }
-           
+
                entries = response.data.num_entries;
                winbindd_free_response(&response);
                if (entries < MAX_GETPWENT_USERS)
@@ -405,7 +405,7 @@ winbind_callback(nsd_file_t **rqp, int fd)
        }
 }
 
-static int 
+static int
 winbind_timeout(nsd_file_t **rqp, nsd_times_t *to)
 {
        nsd_file_t *rq;
@@ -455,7 +455,7 @@ send_next_request(nsd_file_t *rq, struct winbindd_request *request)
        SAFE_FREE(request);
 
        if (status != NSS_STATUS_SUCCESS) {
-               nsd_logprintf(NSD_LOG_MIN, 
+               nsd_logprintf(NSD_LOG_MIN,
                        "send_next_request (winbind) error status = %d\n",
                        status);
                rq->f_status = status;
@@ -512,15 +512,15 @@ int lookup(nsd_file_t *rq)
            request->data.uid = atoi(key);
            rq->f_cmd_data = (void *)WINBINDD_GETPWUID;
        } else if (strcasecmp(map,"passwd.byname") == 0) {
-           strncpy(request->data.username, key, 
+           strncpy(request->data.username, key,
                sizeof(request->data.username) - 1);
            request->data.username[sizeof(request->data.username) - 1] = '\0';
-           rq->f_cmd_data = (void *)WINBINDD_GETPWNAM; 
+           rq->f_cmd_data = (void *)WINBINDD_GETPWNAM;
        } else if (strcasecmp(map,"group.byname") == 0) {
-           strncpy(request->data.groupname, key, 
+           strncpy(request->data.groupname, key,
                sizeof(request->data.groupname) - 1);
            request->data.groupname[sizeof(request->data.groupname) - 1] = '\0';
-           rq->f_cmd_data = (void *)WINBINDD_GETGRNAM; 
+           rq->f_cmd_data = (void *)WINBINDD_GETGRNAM;
        } else if (strcasecmp(map,"group.bygid") == 0) {
            request->data.gid = atoi(key);
            rq->f_cmd_data = (void *)WINBINDD_GETGRGID;
similarity index 98%
rename from source3/nsswitch/winbind_nss_irix.h
rename to nsswitch/winbind_nss_irix.h
index b40b14b0b034c894e6362ab28deac024936182b8..b47d23e204b7943ac83f46b3304cddef1c2caeef 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind daemon for ntdom nss module
 
    Copyright (C) Tim Potter 2000
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
similarity index 96%
rename from source3/nsswitch/winbind_nss_linux.c
rename to nsswitch/winbind_nss_linux.c
index c11c18759e65cb4526c6dd32c2ac24322637312a..2b51a8e15dbf6de4c7d848b745c53ab189e173f3 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Windows NT Domain nsswitch module
 
    Copyright (C) Tim Potter 2000
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -30,7 +30,7 @@ static pthread_mutex_t winbind_nss_mutex = PTHREAD_MUTEX_INITIALIZER;
 #endif
 
 /* Maximum number of users to pass back over the unix domain socket
-   per call. This is not a static limit on the total number of users 
+   per call. This is not a static limit on the total number of users
    or groups returned in total. */
 
 #define MAX_GETPWENT_USERS 250
@@ -38,37 +38,37 @@ static pthread_mutex_t winbind_nss_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 NSS_STATUS _nss_winbind_setpwent(void);
 NSS_STATUS _nss_winbind_endpwent(void);
-NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
+NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer,
                                   size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, 
+NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result,
                                   char *buffer, size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result, 
+NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result,
                                   char *buffer, size_t buflen, int *errnop);
 NSS_STATUS _nss_winbind_setgrent(void);
 NSS_STATUS _nss_winbind_endgrent(void);
-NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer, 
+NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer,
                                   size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer, 
+NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer,
                                   size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result, 
+NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result,
                                   char *buffer, size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer, 
+NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer,
                                   size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, 
-                                      long int *size, gid_t **groups, 
+NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start,
+                                      long int *size, gid_t **groups,
                                       long int limit, int *errnop);
-NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids, 
-                                   int *num_groups, char *buffer, size_t buf_size, 
+NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids,
+                                   int *num_groups, char *buffer, size_t buf_size,
                                    int *errnop);
 NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid, char *buffer,
                                  size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, 
+NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer,
                                  size_t buflen, int *errnop);
 NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop);
 NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop);
-NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer, 
+NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer,
                                 size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer, 
+NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer,
                                 size_t buflen, int *errnop);
 
 /* Prototypes from wb_common.c */
@@ -180,7 +180,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
 {
        /* User name */
 
-       if ((result->pw_name = 
+       if ((result->pw_name =
             get_static(buffer, buflen, strlen(pw->pw_name) + 1)) == NULL) {
 
                /* Out of memory */
@@ -192,7 +192,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
 
        /* Password */
 
-       if ((result->pw_passwd = 
+       if ((result->pw_passwd =
             get_static(buffer, buflen, strlen(pw->pw_passwd) + 1)) == NULL) {
 
                /* Out of memory */
@@ -201,7 +201,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
        }
 
        strcpy(result->pw_passwd, pw->pw_passwd);
-        
+
        /* [ug]id */
 
        result->pw_uid = pw->pw_uid;
@@ -209,7 +209,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
 
        /* GECOS */
 
-       if ((result->pw_gecos = 
+       if ((result->pw_gecos =
             get_static(buffer, buflen, strlen(pw->pw_gecos) + 1)) == NULL) {
 
                /* Out of memory */
@@ -218,10 +218,10 @@ static NSS_STATUS fill_pwent(struct passwd *result,
        }
 
        strcpy(result->pw_gecos, pw->pw_gecos);
-       
+
        /* Home directory */
-       
-       if ((result->pw_dir = 
+
+       if ((result->pw_dir =
             get_static(buffer, buflen, strlen(pw->pw_dir) + 1)) == NULL) {
 
                /* Out of memory */
@@ -232,10 +232,10 @@ static NSS_STATUS fill_pwent(struct passwd *result,
        strcpy(result->pw_dir, pw->pw_dir);
 
        /* Logon shell */
-       
-       if ((result->pw_shell = 
+
+       if ((result->pw_shell =
             get_static(buffer, buflen, strlen(pw->pw_shell) + 1)) == NULL) {
-               
+
                /* Out of memory */
 
                return NSS_STATUS_TRYAGAIN;
@@ -423,7 +423,7 @@ _nss_winbind_endpwent(void)
 /* Fetch the next password entry from ntdom password database */
 
 NSS_STATUS
-_nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
+_nss_winbind_getpwent_r(struct passwd *result, char *buffer,
                        size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
@@ -446,7 +446,7 @@ _nss_winbind_getpwent_r(struct passwd *result, char *buffer,
        }
 
        /* Else call winbindd to get a bunch of entries */
-       
+
        if (num_pw_cache > 0) {
                winbindd_free_response(&getpwent_response);
        }
@@ -456,7 +456,7 @@ _nss_winbind_getpwent_r(struct passwd *result, char *buffer,
 
        request.data.num_entries = MAX_GETPWENT_USERS;
 
-       ret = winbindd_request_response(WINBINDD_GETPWENT, &request, 
+       ret = winbindd_request_response(WINBINDD_GETPWENT, &request,
                               &getpwent_response);
 
        if (ret == NSS_STATUS_SUCCESS) {
@@ -483,7 +483,7 @@ _nss_winbind_getpwent_r(struct passwd *result, char *buffer,
 
                ret = fill_pwent(result, &pw_cache[ndx_pw_cache],
                                 &buffer, &buflen);
-               
+
                /* Out of memory - try again */
 
                if (ret == NSS_STATUS_TRYAGAIN) {
@@ -547,7 +547,7 @@ _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, char *buffer,
                ret = winbindd_request_response(WINBINDD_GETPWUID, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
-                       ret = fill_pwent(result, &response.data.pw, 
+                       ret = fill_pwent(result, &response.data.pw,
                                         &buffer, &buflen);
 
                        if (ret == NSS_STATUS_TRYAGAIN) {
@@ -615,7 +615,7 @@ _nss_winbind_getpwnam_r(const char *name, struct passwd *result, char *buffer,
                ZERO_STRUCT(response);
                ZERO_STRUCT(request);
 
-               strncpy(request.data.username, name, 
+               strncpy(request.data.username, name,
                        sizeof(request.data.username) - 1);
                request.data.username
                        [sizeof(request.data.username) - 1] = '\0';
@@ -746,7 +746,7 @@ winbind_getgrent(enum winbindd_cmd cmd,
        NSS_STATUS ret;
        static struct winbindd_request request;
        static int called_again;
-       
+
 
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: getgrent\n", getpid());
@@ -764,7 +764,7 @@ winbind_getgrent(enum winbindd_cmd cmd,
        }
 
        /* Else call winbindd to get a bunch of entries */
-       
+
        if (num_gr_cache > 0) {
                winbindd_free_response(&getgrent_response);
        }
@@ -774,7 +774,7 @@ winbind_getgrent(enum winbindd_cmd cmd,
 
        request.data.num_entries = MAX_GETGRENT_USERS;
 
-       ret = winbindd_request_response(cmd, &request, 
+       ret = winbindd_request_response(cmd, &request,
                               &getgrent_response);
 
        if (ret == NSS_STATUS_SUCCESS) {
@@ -810,7 +810,7 @@ winbind_getgrent(enum winbindd_cmd cmd,
                ret = fill_grent(result, &gr_cache[ndx_gr_cache],
                                 ((char *)getgrent_response.extra_data.data)+mem_ofs,
                                 &buffer, &buflen);
-               
+
                /* Out of memory - try again */
 
                if (ret == NSS_STATUS_TRYAGAIN) {
@@ -869,7 +869,7 @@ _nss_winbind_getgrnam_r(const char *name,
        static struct winbindd_response response;
        struct winbindd_request request;
        static int keep_response;
-       
+
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: getgrnam %s\n", getpid(), name);
 #endif
@@ -888,7 +888,7 @@ _nss_winbind_getgrnam_r(const char *name,
                ZERO_STRUCT(request);
                ZERO_STRUCT(response);
 
-               strncpy(request.data.groupname, name, 
+               strncpy(request.data.groupname, name,
                        sizeof(request.data.groupname));
                request.data.groupname
                        [sizeof(request.data.groupname) - 1] = '\0';
@@ -896,7 +896,7 @@ _nss_winbind_getgrnam_r(const char *name,
                ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
-                       ret = fill_grent(result, &response.data.gr, 
+                       ret = fill_grent(result, &response.data.gr,
                                         (char *)response.extra_data.data,
                                         &buffer, &buflen);
 
@@ -911,7 +911,7 @@ _nss_winbind_getgrnam_r(const char *name,
 
                /* We've been called again */
 
-               ret = fill_grent(result, &response.data.gr, 
+               ret = fill_grent(result, &response.data.gr,
                                 (char *)response.extra_data.data, &buffer,
                                 &buflen);
 
@@ -975,8 +975,8 @@ _nss_winbind_getgrgid_r(gid_t gid,
 
                if (ret == NSS_STATUS_SUCCESS) {
 
-                       ret = fill_grent(result, &response.data.gr, 
-                                        (char *)response.extra_data.data, 
+                       ret = fill_grent(result, &response.data.gr,
+                                        (char *)response.extra_data.data,
                                         &buffer, &buflen);
 
                        if (ret == NSS_STATUS_TRYAGAIN) {
@@ -990,7 +990,7 @@ _nss_winbind_getgrgid_r(gid_t gid,
 
                /* We've been called again */
 
-               ret = fill_grent(result, &response.data.gr, 
+               ret = fill_grent(result, &response.data.gr,
                                 (char *)response.extra_data.data, &buffer,
                                 &buflen);
 
@@ -1110,7 +1110,7 @@ _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start,
                        *start += 1;
                }
        }
-       
+
        /* Back to your regularly scheduled programming */
 
  done:
@@ -1167,7 +1167,7 @@ _nss_winbind_getusersids(const char *user_sid, char **group_sids,
        *group_sids = buffer;
        memcpy(buffer, response.extra_data.data, response.length - sizeof(response));
        errno = *errnop = 0;
-       
+
  done:
        winbindd_free_response(&response);
 
@@ -1199,7 +1199,7 @@ _nss_winbind_nametosid(const char *name, char **sid, char *buffer,
        ZERO_STRUCT(response);
        ZERO_STRUCT(request);
 
-       strncpy(request.data.name.name, name, 
+       strncpy(request.data.name.name, name,
                sizeof(request.data.name.name) - 1);
        request.data.name.name[sizeof(request.data.name.name) - 1] = '\0';
 
@@ -1264,7 +1264,7 @@ _nss_winbind_sidtoname(const char *sid, char **name, char *buffer,
        }
 
 
-       strncpy(request.data.sid, sid, 
+       strncpy(request.data.sid, sid,
                sizeof(request.data.sid) - 1);
        request.data.sid[sizeof(request.data.sid) - 1] = '\0';
 
@@ -1274,7 +1274,7 @@ _nss_winbind_sidtoname(const char *sid, char **name, char *buffer,
                goto failed;
        }
 
-       needed = 
+       needed =
                strlen(response.data.name.dom_name) +
                strlen(response.data.name.name) + 2;
 
@@ -1284,7 +1284,7 @@ _nss_winbind_sidtoname(const char *sid, char **name, char *buffer,
                goto failed;
        }
 
-       snprintf(buffer, needed, "%s%c%s", 
+       snprintf(buffer, needed, "%s%c%s",
                 response.data.name.dom_name,
                 sep_char,
                 response.data.name.name);
similarity index 98%
rename from source3/nsswitch/winbind_nss_linux.h
rename to nsswitch/winbind_nss_linux.h
index 74aaec5ce6059af2f23c4ee9944abf94a25cadf8..db5a378aad642867bf2878cf7d994df4deae7034 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind daemon for ntdom nss module
 
    Copyright (C) Tim Potter 2000
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
similarity index 98%
rename from source4/nsswitch/winbind_nss_netbsd.h
rename to nsswitch/winbind_nss_netbsd.h
index dceb57c78444b88824259b065dd351c1f6c9bcf7..5aeb2b9d7da705dffa4e4c2b94322dba24c01315 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
-   NetBSD loadable authentication module, providing identification 
+   NetBSD loadable authentication module, providing identification
    routines against Samba winbind/Windows NT Domain
 
    Copyright (C) Luke Mewburn 2004-2005
-  
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
similarity index 97%
rename from source3/nsswitch/winbind_nss_solaris.c
rename to nsswitch/winbind_nss_solaris.c
index 865b6ebbb068d6d3597a442a99dc7f6441ceaf55..5fb37643ce2c92cfe55a87d96f9bf114f4fba954 100644 (file)
@@ -1,8 +1,8 @@
 /*
-  Solaris NSS wrapper for winbind 
+  Solaris NSS wrapper for winbind
   - Shirish Kalele 2000
-  
-  Based on Luke Howard's ldap_nss module for Solaris 
+
+  Based on Luke Howard's ldap_nss module for Solaris
   */
 
 /*
@@ -38,7 +38,7 @@
 #include <sys/syslog.h>
 #endif /*hpux*/
 
-#if defined(HAVE_NSS_COMMON_H) || defined(HPUX) 
+#if defined(HAVE_NSS_COMMON_H) || defined(HPUX)
 
 #undef NSS_DEBUG
 
@@ -63,9 +63,9 @@ struct nss_groupsbymem {
        gid_t *gid_array;
        int maxgids;
        int force_slow_way;
-       int (*str2ent)(const char *instr, int instr_len, void *ent, 
+       int (*str2ent)(const char *instr, int instr_len, void *ent,
                      char *buffer, int buflen);
-       nss_status_t (*process_cstr)(const char *instr, int instr_len, 
+       nss_status_t (*process_cstr)(const char *instr, int instr_len,
                                    struct nss_groupsbymem *);
        int numgids;
 };
@@ -106,7 +106,7 @@ _nss_winbind_getpwent_solwrap (nss_backend_t* be, void *args)
        int* errnop = &NSS_ARGS(args)->erange;
        char logmsg[80];
 
-       ret = _nss_winbind_getpwent_r(result, buffer, 
+       ret = _nss_winbind_getpwent_r(result, buffer,
                                      buflen, errnop);
 
        if(ret == NSS_STATUS_SUCCESS)
@@ -119,7 +119,7 @@ _nss_winbind_getpwent_solwrap (nss_backend_t* be, void *args)
                        snprintf(logmsg, 79, "_nss_winbind_getpwent_solwrap: Returning error: %d.\n",ret);
                        NSS_DEBUG(logmsg);
                }
-    
+
        return ret;
 }
 
@@ -138,7 +138,7 @@ _nss_winbind_getpwnam_solwrap (nss_backend_t* be, void* args)
                                                &NSS_ARGS(args)->erange);
        if(ret == NSS_STATUS_SUCCESS)
                NSS_ARGS(args)->returnval = (void*) result;
-  
+
        return ret;
 }
 
@@ -147,7 +147,7 @@ _nss_winbind_getpwuid_solwrap(nss_backend_t* be, void* args)
 {
        NSS_STATUS ret;
        struct passwd* result = (struct passwd*) NSS_ARGS(args)->buf.result;
-  
+
        NSS_DEBUG("_nss_winbind_getpwuid_solwrap");
        ret = _nss_winbind_getpwuid_r (NSS_ARGS(args)->key.uid,
                                       result,
@@ -156,7 +156,7 @@ _nss_winbind_getpwuid_solwrap(nss_backend_t* be, void* args)
                                       &NSS_ARGS(args)->erange);
        if(ret == NSS_STATUS_SUCCESS)
                NSS_ARGS(args)->returnval = (void*) result;
-  
+
        return ret;
 }
 
@@ -183,7 +183,7 @@ _nss_winbind_passwd_constr (const char* db_name,
                            const char* cfg_args)
 {
        nss_backend_t *be;
-  
+
        if(!(be = SMB_MALLOC_P(nss_backend_t)) )
                return NULL;
 
@@ -221,7 +221,7 @@ _nss_winbind_getgrent_solwrap(nss_backend_t* be, void* args)
        int* errnop = &NSS_ARGS(args)->erange;
        char logmsg[80];
 
-       ret = _nss_winbind_getgrent_r(result, buffer, 
+       ret = _nss_winbind_getgrent_r(result, buffer,
                                      buflen, errnop);
 
        if(ret == NSS_STATUS_SUCCESS)
@@ -235,7 +235,7 @@ _nss_winbind_getgrent_solwrap(nss_backend_t* be, void* args)
                }
 
        return ret;
-       
+
 }
 
 static NSS_STATUS
@@ -253,10 +253,10 @@ _nss_winbind_getgrnam_solwrap(nss_backend_t* be, void* args)
 
        if(ret == NSS_STATUS_SUCCESS)
                NSS_ARGS(args)->returnval = (void*) result;
-  
+
        return ret;
 }
-  
+
 static NSS_STATUS
 _nss_winbind_getgrgid_solwrap(nss_backend_t* be, void* args)
 {
@@ -281,17 +281,22 @@ _nss_winbind_getgroupsbymember_solwrap(nss_backend_t* be, void* args)
 {
        int errnop;
        struct nss_groupsbymem *gmem = (struct nss_groupsbymem *)args;
+       long int numgids = gmem->numgids;
+       long int maxgids = gmem->maxgids;
 
        NSS_DEBUG("_nss_winbind_getgroupsbymember");
 
        _nss_winbind_initgroups_dyn(gmem->username,
                gmem->gid_array[0], /* Primary Group */
-               &gmem->numgids,
-               &gmem->maxgids,
+               &numgids,
+               &maxgids,
                &gmem->gid_array,
                gmem->maxgids,
                &errnop);
 
+       gmem->numgids = numgids;
+       gmem->maxgids = maxgids;
+
        /*
         * If the maximum number of gids have been found, return
         * SUCCESS so the switch engine will stop searching. Otherwise
@@ -310,7 +315,7 @@ _nss_winbind_group_destr (nss_backend_t* be, void* args)
        return NSS_STATUS_SUCCESS;
 }
 
-static nss_backend_op_t group_ops[] = 
+static nss_backend_op_t group_ops[] =
 {
        _nss_winbind_group_destr,
        _nss_winbind_endgrent_solwrap,
@@ -319,7 +324,7 @@ static nss_backend_op_t group_ops[] =
        _nss_winbind_getgrnam_solwrap,
        _nss_winbind_getgrgid_solwrap,
        _nss_winbind_getgroupsbymember_solwrap
-}; 
+};
 
 nss_backend_t*
 _nss_winbind_group_constr (const char* db_name,
@@ -333,7 +338,7 @@ _nss_winbind_group_constr (const char* db_name,
 
        be->ops = group_ops;
        be->n_ops = sizeof(group_ops) / sizeof(nss_backend_op_t);
-  
+
        NSS_DEBUG("Initialized nss_winbind group backend");
        return be;
 }
@@ -410,7 +415,7 @@ parse_response(int af, nss_XbyY_args_t* argp, struct winbindd_response *response
                argp->erange = 1;
                return NSS_STR_PARSE_ERANGE;
        }
-       
+
        data = response->data.winsresp;
        for( i = 0; i < addrcount; i++) {
                p = strchr(data, '\t');
@@ -524,7 +529,7 @@ _nss_winbind_hosts_getbyname(nss_backend_t* be, void *args)
 
        ZERO_STRUCT(response);
        ZERO_STRUCT(request);
-       
+
        strncpy(request.data.winsreq, argp->key.name, sizeof(request.data.winsreq) - 1);
        request.data.winsreq[sizeof(request.data.winsreq) - 1] = '\0';
 
@@ -560,7 +565,7 @@ _nss_winbind_hosts_getbyaddr(nss_backend_t* be, void *args)
                        request.data.winsreq, sizeof request.data.winsreq);
 #else
         snprintf(request.data.winsreq, sizeof request.data.winsreq,
-                "%u.%u.%u.%u", 
+                "%u.%u.%u.%u",
                 ((unsigned char *)argp->key.hostaddr.addr)[0],
                 ((unsigned char *)argp->key.hostaddr.addr)[1],
                 ((unsigned char *)argp->key.hostaddr.addr)[2],
similarity index 94%
rename from source4/nsswitch/winbind_nss_solaris.h
rename to nsswitch/winbind_nss_solaris.h
index 941b3e66dfc0cad156db5fbf79052200ad30ad40..f805542f7535265ea5c861f2cf207c65f064d5db 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind daemon for ntdom nss module
 
    Copyright (C) Tim Potter 2000
-   
+
    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
    Library General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -37,9 +37,6 @@
 
 #include <nss_common.h>
 
-/*
-TODO: we need to cleanup samba4's headers..
-
 #ifndef __cplusplus
 #define class #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
 #define private #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
@@ -51,7 +48,6 @@ TODO: we need to cleanup samba4's headers..
 #define delete #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
 #define friend #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
 #endif
-*/
 
 #include <nss_dbdefs.h>
 #include <nsswitch.h>
@@ -85,5 +81,8 @@ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
 NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
                                   struct group *result, char *buffer,
                                   size_t buflen, int *errnop);
+NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start,
+                                      long int *size, gid_t **groups,
+                                      long int limit, int *errnop);
 
 #endif /* _WINBIND_NSS_SOLARIS_H */
similarity index 98%
rename from source3/nsswitch/winbind_struct_protocol.h
rename to nsswitch/winbind_struct_protocol.h
index 36873f2096f2552dc12e3f6f9c604ba97f735c24..fe3da817910eb107c6dd8b5d686c4d3801b6e3bc 100644 (file)
@@ -1,14 +1,14 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    Winbind daemon for ntdom nss module
 
    Copyright (C) Tim Potter 2000
    Copyright (C) Gerald Carter 2006
-   
+
    You are free to use this interface definition in any way you see
    fit, including without restriction, using this header in your own
-   products. You do not need to give any attribution.  
+   products. You do not need to give any attribution.
 */
 
 #ifndef SAFE_FREE
@@ -41,8 +41,6 @@
 
 /* Update this when you change the interface.  */
 
-/* Version 20: added WINBINDD_REMOVE_MAPPING command */
-
 #define WINBIND_INTERFACE_VERSION 20
 
 /* Have to deal with time_t being 4 or 8 bytes due to structure alignment.
@@ -217,7 +215,7 @@ typedef struct winbindd_gr {
 /*******************************************************************************
  * This structure MUST be the same size in the 32bit and 64bit builds
  * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
- * 
+ *
  * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
  * A 64BIT WINBINDD    --jerry
  ******************************************************************************/
@@ -327,7 +325,7 @@ struct winbindd_request {
                } dsgetdcname;
 
                /* padding -- needed to fix alignment between 32bit and 64bit libs.
-                  The size is the sizeof the union without the padding aligned on 
+                  The size is the sizeof the union without the padding aligned on
                   an 8 byte boundary.   --jerry */
 
                char padding[1800];
@@ -353,27 +351,27 @@ enum winbindd_result {
 /*******************************************************************************
  * This structure MUST be the same size in the 32bit and 64bit builds
  * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
- * 
+ *
  * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
  * A 64BIT WINBINDD    --jerry
  ******************************************************************************/
 
 struct winbindd_response {
-    
+
        /* Header information */
 
        uint32_t length;                      /* Length of response */
        enum winbindd_result result;          /* Result code */
 
        /* Fixed length return data */
-       
+
        union {
                int interface_version;  /* Try to ensure this is always in the same spot... */
-               
+
                fstring winsresp;               /* WINS response */
 
                /* getpwnam, getpwuid */
-               
+
                struct winbindd_pw pw;
 
                /* getgrnam, getgrgid */
@@ -387,7 +385,7 @@ struct winbindd_response {
                } sid;
                struct winbindd_name {
                        fstring dom_name;       /* lookupsid */
-                       fstring name;       
+                       fstring name;
                        int type;
                } name;
                uid_t uid;          /* sid_to_uid */
similarity index 99%
rename from source3/nsswitch/wins.c
rename to nsswitch/wins.c
index e028eb8cf2ba69fcdc4437fb43b84b742cd65ea8..80f01191080c46ea136867773060f30603aaade8 100644 (file)
@@ -1,21 +1,21 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
-   a WINS nsswitch module 
+   a WINS nsswitch module
    Copyright (C) Andrew Tridgell 1999
-   
+
    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/>.
-   
+
 */
 
 #include "includes.h"
@@ -207,7 +207,7 @@ int lookup(nsd_file_t *rq)
        bool found = False;
 
        nsd_logprintf(NSD_LOG_MIN, "entering lookup (wins)\n");
-       if (! rq) 
+       if (! rq)
                return NSD_ERROR;
 
        map = nsd_attr_fetch_string(rq->f_attrs, "table", (char*)0);
@@ -225,7 +225,7 @@ int lookup(nsd_file_t *rq)
        response[0] = '\0';
        len = sizeof(response) - 2;
 
-       /* 
+       /*
         * response needs to be a string of the following format
         * ip_address[ ip_address]*\tname[ alias]*
         */
@@ -276,7 +276,7 @@ int lookup(nsd_file_t *rq)
                if (size > len) {
                    free(ip_list);
                    return NSD_ERROR;
-               }   
+               }
                strncat(response,key,size);
                strncat(response,"\n",1);
                found = True;
@@ -306,7 +306,7 @@ static char *get_static(char **buffer, size_t *buflen, int len)
 
        /* Error check.  We return false if things aren't set up right, or
           there isn't enough buffer space left. */
-       
+
        if ((buffer == NULL) || (buflen == NULL) || (*buflen < len)) {
                return NULL;
        }
@@ -333,7 +333,7 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he,
        int i, count;
        fstring name;
        size_t namelen;
-               
+
 #if HAVE_PTHREAD
        pthread_mutex_lock(&wins_nss_mutex);
 #endif
index 4109ce996211ad51881ebbcab302fff32a0461ec..9a7a037b5444c6329d720db8326ff76844982a9d 100644 (file)
@@ -12,7 +12,7 @@ use Exporter;
 @EXPORT_OK = qw(ParseFunction $res $res_hdr ParseOutputArgument);
 
 use strict;
-use Parse::Pidl qw(fatal warning);
+use Parse::Pidl qw(fatal warning error);
 use Parse::Pidl::Util qw(has_property ParseExpr);
 use Parse::Pidl::Samba4 qw(DeclLong);
 use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv);
@@ -76,7 +76,11 @@ sub ParseOutputArgument($$$)
        my ($self, $fn, $e) = @_;
        my $level = 0;
 
-       fatal($e->{ORIGINAL}, "[out] argument is not a pointer or array") if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and $e->{LEVELS}[0]->{TYPE} ne "ARRAY");
+       if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and $e->{LEVELS}[0]->{TYPE} ne "ARRAY") {
+               $self->pidl("return NT_STATUS_NOT_SUPPORTED;");
+               error($e->{ORIGINAL}, "[out] argument is not a pointer or array");
+               return;
+       }
 
        if ($e->{LEVELS}[0]->{TYPE} eq "POINTER") {
                $level = 1;
index 5bdb91ee2519776433e64227da689ae25697846c..20c518dcebf66beddd2a319a491819ca7c412445 100644 (file)
@@ -12,7 +12,7 @@ require Exporter;
 use Parse::Pidl::Util qw(has_property is_constant);
 use Parse::Pidl::NDR qw(GetNextLevel);
 use Parse::Pidl::Typelist qw(mapTypeName scalar_is_reference);
-use Parse::Pidl qw(fatal);
+use Parse::Pidl qw(fatal error);
 use strict;
 
 use vars qw($VERSION);
@@ -69,7 +69,7 @@ sub NumStars($;$)
                $n++;
        }
 
-       fatal($e->{ORIGINAL}, "Too few pointers $n < $d") if ($n < $d);
+       error($e->{ORIGINAL}, "Too few pointers $n < $d") if ($n < $d);
 
        $n -= $d;
 
index 996689b4b626431b4c340373598506e659236906..de7d4547a5b020cbb97f990c5f6ab7289a82c6b0 100644 (file)
@@ -127,6 +127,7 @@ sub Parse($$)
 {
        my ($idl,$ndr_header) = @_;
        my $res = "";
+       my $has_obj = 0;
 
        $res .= "#include \"librpc/gen_ndr/orpc.h\"\n" . 
                        "#include \"$ndr_header\"\n\n";
@@ -135,6 +136,7 @@ sub Parse($$)
        {
                if ($_->{TYPE} eq "INTERFACE" && has_property($_, "object")) {
                        $res .="struct $_->{NAME};\n";
+                       $has_obj = 1;
                }
        }
 
@@ -142,14 +144,17 @@ sub Parse($$)
        {
                if ($_->{TYPE} eq "INTERFACE" && has_property($_, "object")) {
                        $res.=ParseInterface($_);
+                       $has_obj = 1;
                } 
 
                if ($_->{TYPE} eq "COCLASS") {
                        $res.=ParseCoClass($_);
+                       $has_obj = 1;
                }
        }
 
-       return $res;
+       return $res if ($has_obj);
+       return undef;
 }
 
 1;
index ca9f37a0531fc69a64b77d2a727f7df55627f436..27e1e5d4243c323784fccfeac83224db23e01b2c 100644 (file)
@@ -201,6 +201,7 @@ sub Parse($$)
 {
        my ($pidl,$comh_filename) = @_;
        my $res = "";
+       my $has_obj = 0;
 
        $res .= "#include \"includes.h\"\n" .
                        "#include \"lib/com/dcom/dcom.h\"\n" .
@@ -213,9 +214,12 @@ sub Parse($$)
                next unless has_property($_, "object");
 
                $res .= ParseInterface($_);
+
+               $has_obj = 1;
        }
 
-       return $res;
+       return $res if ($has_obj);
+       return undef;
 }
 
 1;
diff --git a/pidl/lib/Parse/Pidl/Samba4/SWIG.pm b/pidl/lib/Parse/Pidl/Samba4/SWIG.pm
deleted file mode 100644 (file)
index 14424cf..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-###################################################
-# Samba4 parser generator for swig wrappers
-# Copyright tpot@samba.org 2004,2005
-# Copyright jelmer@samba.org 2006
-# released under the GNU GPL
-
-package Parse::Pidl::Samba4::SWIG;
-
-use vars qw($VERSION);
-use Parse::Pidl::Samba4 qw(DeclLong);
-use Parse::Pidl::Typelist qw(mapTypeName);
-use Parse::Pidl::Util qw(has_property);
-$VERSION = '0.01';
-
-use strict;
-
-my $ret = "";
-my $tabs = "";
-
-sub pidl($)
-{
-       my $p = shift;
-       $ret .= $tabs. $p . "\n";
-}
-
-sub indent() { $tabs.="  "; }
-sub deindent() { $tabs = substr($tabs,0,-2); }
-
-sub IgnoreInterface($$)
-{
-       my ($basename,$if) = @_;
-
-       foreach (@{$if->{TYPES}}) {
-               next unless (has_property($_, "public"));
-               pidl "\%types($_->{NAME});";
-       }
-}
-
-sub GenerateResultTypemap($)
-{
-       my $name = shift;
-       pidl "%typemap(in,numinputs=0) $name*result ($name tmp) {";
-       indent;
-       pidl "\$1 = &tmp;";
-       deindent;
-       pidl "}";
-       pidl "";
-       pidl "%typemap(argout) $name*result {";
-       indent;
-       pidl "\$result = SWIG_NewPointerObj(*\$1, \$1_descriptor, 0);";
-       deindent;
-       pidl "}";
-}
-
-sub ParseInterface($$)
-{
-       my ($basename,$if) = @_;
-
-       pidl "\%inline {";
-       pidl "typedef struct $if->{NAME} { struct dcerpc_pipe *pipe; } $if->{NAME};";
-       pidl "}";
-       pidl "";
-       pidl "%talloctype($if->{NAME});";
-       pidl "";
-       pidl "\%extend $if->{NAME} {";
-       indent();
-       pidl "$if->{NAME} () {";
-       indent;
-       pidl "return talloc(NULL, struct $if->{NAME});";
-       deindent;
-       pidl "}";
-       pidl "";
-       pidl "NTSTATUS connect (const char *binding, struct cli_credentials *cred, struct event_context *event)";
-       pidl "{";
-       indent;
-       pidl "return dcerpc_pipe_connect(\$self, &\$self->pipe, binding, &ndr_table_$if->{NAME}, cred, event);";
-       deindent;
-       pidl "}";
-       pidl "";
-
-       foreach my $fn (@{$if->{FUNCTIONS}}) {
-               pidl "/* $fn->{NAME} */";
-               my $args = "";
-               foreach (@{$fn->{ELEMENTS}}) {
-                       $args .= DeclLong($_) . ", ";
-               }
-               my $name = $fn->{NAME};
-               $name =~ s/^$if->{NAME}_//g;
-               $name =~ s/^$basename\_//g;
-               $args .= "TALLOC_CTX *mem_ctx, " . mapTypeName($fn->{RETURN_TYPE}) . " *result";
-               pidl "NTSTATUS $name($args)";
-               pidl "{";
-               indent;
-               pidl "struct $fn->{NAME} r;";
-               pidl "NTSTATUS status;";
-               pidl "";
-               pidl "/* Fill r structure */";
-
-               foreach (@{$fn->{ELEMENTS}}) {
-                       if (grep(/in/, @{$_->{DIRECTION}})) {
-                               pidl "r.in.$_->{NAME} = $_->{NAME};";
-                       } 
-               }
-
-               pidl "";
-               pidl "status = dcerpc_$fn->{NAME}(\$self->pipe, mem_ctx, &r);";
-               pidl "if (NT_STATUS_IS_ERR(status)) {";
-               indent; pidl "return status;"; deindent;
-               pidl "}";
-               pidl "";
-               pidl "/* Set out arguments */";
-               foreach (@{$fn->{ELEMENTS}}) {
-                       next unless (grep(/out/, @{$_->{DIRECTION}}));
-
-                       pidl ("/* FIXME: $_->{NAME} [out] argument is not a pointer */") if ($_->{LEVELS}[0]->{TYPE} ne "POINTER");
-
-                       pidl "*$_->{NAME} = *r.out.$_->{NAME};";
-               }
-
-               if (defined($fn->{RETURN_TYPE})) {
-                       pidl "*result = r.out.result;";
-               }
-               pidl "return NT_STATUS_OK;";
-               deindent;
-               pidl "}";
-               pidl "";
-       }
-
-       deindent();
-       pidl "};";
-       pidl "";
-
-       foreach (@{$if->{TYPES}}) {
-               pidl "/* $_->{NAME} */";
-       }
-       
-       pidl "";
-}
-
-sub Parse($$$$)
-{
-    my($ndr,$basename,$header,$gen_header) = @_;
-
-       $ret = "";
-
-       pidl "/* This file is autogenerated by pidl. DO NOT EDIT */";
-
-       pidl "\%module $basename";
-       
-       pidl "";
-
-       pidl "\%{";
-       pidl "#include \"includes.h\"";
-       pidl "#include \"$header\"";
-       pidl "#include \"$gen_header\"";
-       pidl "%}";
-       pidl "\%import \"../rpc/dcerpc.i\"";
-       pidl "\%import \"../../libcli/util/errors.i\"";
-       pidl "\%import \"../../lib/talloc/talloc.i\"";
-       pidl "";
-       foreach (@$ndr) {
-               IgnoreInterface($basename, $_) if ($_->{TYPE} eq "INTERFACE");
-       }
-       pidl "";
-
-       pidl "";
-
-       foreach (@$ndr) {
-               ParseInterface($basename, $_) if ($_->{TYPE} eq "INTERFACE");
-       }
-       #FIXME: Foreach ref pointer, set NONNULL
-       #FIXME: Foreach unique/full pointer, set MAYBENULL
-       #FIXME: Foreach [out] parameter, set OUTPARAM
-       return $ret;
-}
-
-1;
index 577db0a53fda2852f408263bb1e20d6656f1d744..02817c093b629890bfcbaf7912ad4337c037c96b 100755 (executable)
--- a/pidl/pidl
+++ b/pidl/pidl
@@ -17,7 +17,7 @@ pidl - An IDL compiler written in Perl
 
 pidl --help
 
-pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree] [--dump-ndr-tree] [--header[=OUTPUT]] [--python[=OUTPUT]] [--swig[=OUTPUT]] [--ndr-parser[=OUTPUT]] [--client] [--server] [--warn-compat] [--quiet] [--verbose] [--template] [--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]] [--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [--typelib=[OUTPUT]] [<idlfile>.idl]...
+pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree] [--dump-ndr-tree] [--header[=OUTPUT]] [--python[=OUTPUT]] [--ndr-parser[=OUTPUT]] [--client] [--server] [--warn-compat] [--quiet] [--verbose] [--template] [--ws-parser[=OUTPUT]] [--diff] [--dump-idl] [--tdr-parser[=OUTPUT]] [--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [--typelib=[OUTPUT]] [<idlfile>.idl]...
 
 =head1 DESCRIPTION
 
@@ -477,7 +477,6 @@ my($opt_server);
 my($opt_ndr_parser);
 my($opt_tdr_parser);
 my($opt_ws_parser);
-my($opt_swig);
 my($opt_python);
 my($opt_quiet) = 0;
 my($opt_outputdir) = '.';
@@ -521,7 +520,6 @@ Samba 4 output:
  --client[=OUTFILE]      create a C NDR client [ndr_BASENAME_c.c]
  --tdr-parser[=OUTFILE]  create a C TDR parser [tdr_BASENAME.c]
  --python[=OUTFILE]      create python wrapper file [py_BASENAME.c]
- --swig[=OUTFILE]        create swig wrapper file [BASENAME.i]
  --server[=OUTFILE]      create server boilerplate [ndr_BASENAME_s.c]
  --template              print a template for a pipe
  --dcom-proxy[=OUTFILE]  create DCOM proxy [ndr_BASENAME_p.c]
@@ -567,7 +565,6 @@ my $result = GetOptions (
            'ws-parser:s' => \$opt_ws_parser,
                'python' => \$opt_python,
            'diff' => \$opt_diff,
-           'swig:s' => \$opt_swig,
         'dcom-proxy:s' => \$opt_dcom_proxy,
                'com-header:s' => \$opt_com_header,
            'quiet' => \$opt_quiet,
@@ -666,7 +663,6 @@ sub process_file($)
            defined($opt_samba3_header) or 
            defined($opt_samba3_parser) or 
            defined($opt_samba3_server) or 
-           defined($opt_swig) or
            defined($opt_samba3_ndr_client) or
            defined($opt_samba3_ndr_server)) {
                require Parse::Pidl::NDR;
@@ -698,13 +694,6 @@ sub process_file($)
                FileSave($c_header, $hdrd);
        }
 
-       if (defined($opt_swig)) {
-                 require Parse::Pidl::Samba4::SWIG;
-                 my($filename) = ($opt_swig or "$outputdir/$basename.i");
-                 my $code = Parse::Pidl::Samba4::SWIG::Parse($ndr, $basename, "$outputdir/ndr_$basename\_c.h", $gen_header);
-                 FileSave($filename, $code);
-       }
-
        if (defined($opt_python)) {
                require Parse::Pidl::Samba4::Python;
                my $generator = new Parse::Pidl::Samba4::Python(); 
index f53406c39eec6168b93f464cc023b8ed44ed06e9..0a2893a4e8fd0e1311aae15eafc7a3776418bb55 100644 (file)
@@ -208,7 +208,7 @@ BIN_PROGS = @EXTRA_BIN_PROGS@ \
 
 EVERYTHING_PROGS = bin/debug2html@EXEEXT@ bin/smbfilter@EXEEXT@ \
        bin/talloctort@EXEEXT@ bin/replacetort@EXEEXT@ \
-       bin/log2pcap@EXEEXT@ bin/sharesec@EXEEXT@ bin/ndrdump@EXEEXT@ \
+       bin/log2pcap@EXEEXT@ bin/sharesec@EXEEXT@ \
        bin/vlp@EXEEXT@ bin/smbiconv@EXEEXT@
 
 PAM_MODULES = @PAM_MODULES@
@@ -244,7 +244,7 @@ SMBLDAP_OBJ = @SMBLDAP@ @SMBLDAPUTIL@
 
 VERSION_OBJ = lib/version.o
 
-WBCOMMON_OBJ = nsswitch/wb_common.o
+WBCOMMON_OBJ = ../nsswitch/wb_common.o
 
 AFS_OBJ = lib/afs.o
 
@@ -256,9 +256,9 @@ PASSCHANGE_OBJ = libsmb/passchange.o
 
 LIBNDR_DRSUAPI_OBJ = ../librpc/ndr/ndr_drsuapi.o \
                     ../librpc/ndr/ndr_compression.o \
-                    librpc/gen_ndr/ndr_drsuapi.o \
+                    ../librpc/gen_ndr/ndr_drsuapi.o \
                     ../librpc/ndr/ndr_drsblobs.o \
-                    librpc/gen_ndr/ndr_drsblobs.o
+                    ../librpc/gen_ndr/ndr_drsblobs.o
 
 ZLIB_OBJ = @ZLIB_OBJS@
 
@@ -272,8 +272,8 @@ DRSUAPI_OBJ = $(LIBNDR_DRSUAPI_OBJ) \
 LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
             ../librpc/ndr/ndr.o \
             ../librpc/ndr/ndr_misc.o \
-            librpc/gen_ndr/ndr_misc.o \
-            librpc/gen_ndr/ndr_security.o \
+            ../librpc/gen_ndr/ndr_misc.o \
+            ../librpc/gen_ndr/ndr_security.o \
             ../librpc/ndr/ndr_sec_helper.o \
             librpc/ndr/ndr_string.o \
             librpc/ndr/sid.o \
@@ -282,27 +282,27 @@ LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
 
 RPCCLIENT_NDR_OBJ = rpc_client/ndr.o
 
-LIBNDR_GEN_OBJ0 = librpc/gen_ndr/ndr_samr.o \
-                 librpc/gen_ndr/ndr_lsa.o
+LIBNDR_GEN_OBJ0 = ../librpc/gen_ndr/ndr_samr.o \
+                 ../librpc/gen_ndr/ndr_lsa.o
 
-LIBNDR_GEN_OBJ1 = librpc/gen_ndr/ndr_netlogon.o \
+LIBNDR_GEN_OBJ1 = ../librpc/gen_ndr/ndr_netlogon.o \
                  ../librpc/ndr/ndr_netlogon.o
 
-LIBNDR_GEN_OBJ = librpc/gen_ndr/ndr_wkssvc.o \
+LIBNDR_GEN_OBJ = ../librpc/gen_ndr/ndr_wkssvc.o \
                 $(LIBNDR_GEN_OBJ0) \
-                librpc/gen_ndr/ndr_dfs.o \
-                librpc/gen_ndr/ndr_echo.o \
-                librpc/gen_ndr/ndr_winreg.o \
-                librpc/gen_ndr/ndr_initshutdown.o \
-                librpc/gen_ndr/ndr_srvsvc.o \
-                librpc/gen_ndr/ndr_eventlog.o \
+                ../librpc/gen_ndr/ndr_dfs.o \
+                ../librpc/gen_ndr/ndr_echo.o \
+                ../librpc/gen_ndr/ndr_winreg.o \
+                ../librpc/gen_ndr/ndr_initshutdown.o \
+                ../librpc/gen_ndr/ndr_srvsvc.o \
+                ../librpc/gen_ndr/ndr_eventlog.o \
                 $(LIBNDR_GEN_OBJ1) \
-                librpc/gen_ndr/ndr_dssetup.o \
+                ../librpc/gen_ndr/ndr_dssetup.o \
                 librpc/gen_ndr/ndr_notify.o \
-                librpc/gen_ndr/ndr_xattr.o \
-                librpc/gen_ndr/ndr_epmapper.o \
-                librpc/gen_ndr/ndr_named_pipe_auth.o \
-                librpc/gen_ndr/ndr_ntsvcs.o
+                ../librpc/gen_ndr/ndr_xattr.o \
+                ../librpc/gen_ndr/ndr_epmapper.o \
+                ../librpc/gen_ndr/ndr_named_pipe_auth.o \
+                ../librpc/gen_ndr/ndr_ntsvcs.o
 
 RPC_PARSE_OBJ0 = rpc_parse/parse_prs.o rpc_parse/parse_misc.o
 
@@ -399,15 +399,15 @@ LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o \
 
 LIBADS_SERVER_OBJ = libads/kerberos_verify.o libads/authdata.o \
                    ../librpc/ndr/ndr_krb5pac.o \
-                   librpc/gen_ndr/ndr_krb5pac.o
+                   ../librpc/gen_ndr/ndr_krb5pac.o
 
 SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o
 
 LIBNBT_OBJ = ../libcli/nbt/nbtname.o \
             ../libcli/netlogon.o \
             ../libcli/ndr_netlogon.o \
-            librpc/gen_ndr/ndr_nbt.o \
-            librpc/gen_ndr/ndr_svcctl.o
+            ../librpc/gen_ndr/ndr_nbt.o \
+            ../librpc/gen_ndr/ndr_svcctl.o
 
 LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
             libsmb/namequery.o libsmb/conncache.o libads/dns.o
@@ -459,21 +459,21 @@ LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
                   librpc/rpc/dcerpc.o \
                   ../librpc/rpc/binding.o
 
-LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_lsa.o \
-                  librpc/gen_ndr/cli_dfs.o \
-                  librpc/gen_ndr/cli_echo.o \
-                  librpc/gen_ndr/cli_srvsvc.o \
-                  librpc/gen_ndr/cli_svcctl.o \
-                  librpc/gen_ndr/cli_winreg.o \
-                  librpc/gen_ndr/cli_initshutdown.o \
-                  librpc/gen_ndr/cli_eventlog.o \
-                  librpc/gen_ndr/cli_wkssvc.o \
-                  librpc/gen_ndr/cli_netlogon.o \
-                  librpc/gen_ndr/cli_samr.o \
-                  librpc/gen_ndr/cli_dssetup.o \
-                  librpc/gen_ndr/cli_ntsvcs.o \
-                  librpc/gen_ndr/cli_epmapper.o \
-                  librpc/gen_ndr/cli_drsuapi.o \
+LIBMSRPC_GEN_OBJ = ../librpc/gen_ndr/cli_lsa.o \
+                  ../librpc/gen_ndr/cli_dfs.o \
+                  ../librpc/gen_ndr/cli_echo.o \
+                  ../librpc/gen_ndr/cli_srvsvc.o \
+                  ../librpc/gen_ndr/cli_svcctl.o \
+                  ../librpc/gen_ndr/cli_winreg.o \
+                  ../librpc/gen_ndr/cli_initshutdown.o \
+                  ../librpc/gen_ndr/cli_eventlog.o \
+                  ../librpc/gen_ndr/cli_wkssvc.o \
+                  ../librpc/gen_ndr/cli_netlogon.o \
+                  ../librpc/gen_ndr/cli_samr.o \
+                  ../librpc/gen_ndr/cli_dssetup.o \
+                  ../librpc/gen_ndr/cli_ntsvcs.o \
+                  ../librpc/gen_ndr/cli_epmapper.o \
+                  ../librpc/gen_ndr/cli_drsuapi.o \
                   $(LIBNDR_GEN_OBJ) \
                   $(RPCCLIENT_NDR_OBJ)
 
@@ -527,47 +527,47 @@ REG_FULL_OBJ = $(REG_SMBCONF_OBJ) \
               registry/reg_util_legacy.o
 
 
-RPC_LSA_OBJ = rpc_server/srv_lsa_nt.o librpc/gen_ndr/srv_lsa.o
+RPC_LSA_OBJ = rpc_server/srv_lsa_nt.o ../librpc/gen_ndr/srv_lsa.o
 
 RPC_NETLOG_OBJ = rpc_server/srv_netlog_nt.o \
-                librpc/gen_ndr/srv_netlogon.o
+                ../librpc/gen_ndr/srv_netlogon.o
 
 RPC_SAMR_OBJ = rpc_server/srv_samr_nt.o \
                rpc_server/srv_samr_util.o \
-              librpc/gen_ndr/srv_samr.o
+              ../librpc/gen_ndr/srv_samr.o
 
-RPC_INITSHUTDOWN_OBJ =  librpc/gen_ndr/srv_initshutdown.o rpc_server/srv_initshutdown_nt.o
+RPC_INITSHUTDOWN_OBJ =  ../librpc/gen_ndr/srv_initshutdown.o rpc_server/srv_initshutdown_nt.o
 
 RPC_REG_OBJ =  rpc_server/srv_winreg_nt.o \
-              librpc/gen_ndr/srv_winreg.o
+              ../librpc/gen_ndr/srv_winreg.o
 
-RPC_DSSETUP_OBJ =  rpc_server/srv_dssetup_nt.o librpc/gen_ndr/srv_dssetup.o
+RPC_DSSETUP_OBJ =  rpc_server/srv_dssetup_nt.o ../librpc/gen_ndr/srv_dssetup.o
 
 RPC_SVC_OBJ = rpc_server/srv_srvsvc_nt.o \
-             librpc/gen_ndr/srv_srvsvc.o
+             ../librpc/gen_ndr/srv_srvsvc.o
 
-RPC_WKS_OBJ =  librpc/gen_ndr/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
+RPC_WKS_OBJ =  ../librpc/gen_ndr/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
 
 RPC_SVCCTL_OBJ =  rpc_server/srv_svcctl.o rpc_server/srv_svcctl_nt.o \
-                 librpc/gen_ndr/srv_svcctl.o \
+                 ../librpc/gen_ndr/srv_svcctl.o \
                   services/svc_spoolss.o services/svc_rcinit.o services/services_db.o \
                   services/svc_netlogon.o services/svc_winreg.o \
                   services/svc_wins.o
 
 RPC_NTSVCS_OBJ = rpc_server/srv_ntsvcs.o rpc_server/srv_ntsvcs_nt.o \
-                librpc/gen_ndr/srv_ntsvcs.o
+                ../librpc/gen_ndr/srv_ntsvcs.o
 
-RPC_DFS_OBJ =  librpc/gen_ndr/srv_dfs.o rpc_server/srv_dfs_nt.o
+RPC_DFS_OBJ =  ../librpc/gen_ndr/srv_dfs.o rpc_server/srv_dfs_nt.o
 
 RPC_SPOOLSS_OBJ = rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o
 
 RPC_EVENTLOG_OBJ = rpc_server/srv_eventlog.o rpc_server/srv_eventlog_nt.o \
-                  rpc_server/srv_eventlog_lib.o librpc/gen_ndr/srv_eventlog.o
+                  rpc_server/srv_eventlog_lib.o ../librpc/gen_ndr/srv_eventlog.o
 
 RPC_PIPE_OBJ = rpc_server/srv_pipe_hnd.o \
                rpc_server/srv_pipe.o rpc_server/srv_lsa_hnd.o
 
-RPC_ECHO_OBJ = rpc_server/srv_echo_nt.o librpc/gen_ndr/srv_echo.o
+RPC_ECHO_OBJ = rpc_server/srv_echo_nt.o ../librpc/gen_ndr/srv_echo.o
 
 RPC_SERVER_OBJ = @RPC_STATIC@ $(RPC_PIPE_OBJ)
 
@@ -809,7 +809,7 @@ RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
             $(LIBADS_OBJ) $(POPT_LIB_OBJ) \
             $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(LDB_OBJ) 
 
-PAM_WINBIND_OBJ = nsswitch/pam_winbind.o localedir.o $(WBCOMMON_OBJ) \
+PAM_WINBIND_OBJ = ../nsswitch/pam_winbind.o localedir.o $(WBCOMMON_OBJ) \
                  $(LIBREPLACE_OBJ) @BUILD_INIPARSER@
 
 LIBSMBCLIENT_OBJ0 = \
@@ -994,22 +994,13 @@ REPLACETORT_OBJ = @libreplacedir@/test/testsuite.o \
                @libreplacedir@/test/main.o \
                $(LIBREPLACE_OBJ)
 
-NDRDUMP_OBJ = ../librpc/tools/ndrdump.o \
-             $(PARAM_OBJ) $(LIBNDR_GEN_OBJ) \
-             $(LIBSAMBA_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
-                 $(LIBNDR_DRSUAPI_OBJ) $(COMPRESSION_OBJ) \
-             librpc/gen_ndr/ndr_svcctl.o \
-                 librpc/gen_ndr/tables.o ../librpc/ndr/ndr_table.o \
-             ../librpc/ndr/ndr_krb5pac.o \
-                 librpc/gen_ndr/ndr_krb5pac.o ../lib/util/asn1.o
-
 DEBUG2HTML_OBJ = utils/debug2html.o utils/debugparse.o
 
 SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
                  $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
                 $(LIBNDR_GEN_OBJ0)
 
-WINBIND_WINS_NSS_OBJ = nsswitch/wins.o $(PARAM_OBJ) \
+WINBIND_WINS_NSS_OBJ = ../nsswitch/wins.o $(PARAM_OBJ) \
        $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(NSSWINS_OBJ) $(KRBCLIENT_OBJ) \
        $(LIBNDR_GEN_OBJ0)
 
@@ -1073,7 +1064,7 @@ WINBINDD_OBJ = \
                $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) \
                $(LIBADS_SERVER_OBJ) $(SERVER_MUTEX_OBJ) $(LDB_OBJ) 
 
-WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
+WBINFO_OBJ = ../nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
                $(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ) \
                lib/winbind_util.o $(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@
 
@@ -1110,7 +1101,7 @@ LDBADD_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbadd.o
 LDBDEL_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbdel.o
 LDBMODIFY_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbmodify.o
 
-WINBIND_KRB5_LOCATOR_OBJ1 = nsswitch/winbind_krb5_locator.o
+WINBIND_KRB5_LOCATOR_OBJ1 = ../nsswitch/winbind_krb5_locator.o
 WINBIND_KRB5_LOCATOR_OBJ = $(WINBIND_KRB5_LOCATOR_OBJ1) $(LIBREPLACE_OBJ)
 
 POPT_OBJ=../lib/popt/findme.o ../lib/popt/popt.o ../lib/popt/poptconfig.o \
@@ -1227,24 +1218,11 @@ modules:: SHOWFLAGS $(MODULES)
 #####################################################################
 ## Perl IDL Compiler
 samba3-idl::
-       @PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
-        srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh ../librpc/idl/lsa.idl \
-               ../librpc/idl/dfs.idl ../librpc/idl/echo.idl ../librpc/idl/winreg.idl \
-               ../librpc/idl/initshutdown.idl ../librpc/idl/srvsvc.idl ../librpc/idl/svcctl.idl \
-               ../librpc/idl/eventlog.idl ../librpc/idl/wkssvc.idl ../librpc/idl/netlogon.idl \
-               ../librpc/idl/notify.idl ../librpc/idl/epmapper.idl librpc/idl/messaging.idl \
-               ../librpc/idl/xattr.idl ../librpc/idl/misc.idl ../librpc/idl/samr.idl \
-               ../librpc/idl/security.idl ../librpc/idl/dssetup.idl ../librpc/idl/krb5pac.idl \
-               ../librpc/idl/ntsvcs.idl librpc/idl/libnetapi.idl ../librpc/idl/drsuapi.idl \
-               ../librpc/idl/drsblobs.idl ../librpc/idl/nbt.idl \
-               ../librpc/idl/named_pipe_auth.idl librpc/idl/dom_sid.idl
-       @$(MAKE) ndr-tables
-
-NDR_TABLES = librpc/gen_ndr/tables.c
-
-ndr-tables:: librpc/gen_ndr/*.h
-       @echo "Generating $(NDR_TABLES)"
-       @$(PERL) ../librpc/tables.pl $^ > $(NDR_TABLES)
+       @PIDL_OUTPUTDIR="../librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
+        srcdir="$(srcdir)" ../librpc/build_idl.sh ../librpc/idl/*.idl
+       @PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
+        srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh \
+               librpc/idl/messaging.idl librpc/idl/libnetapi.idl librpc/idl/notify.idl
 
 #####################################################################
 
@@ -1572,11 +1550,6 @@ bin/locktest2@EXEEXT@: $(BINARY_PREREQS) $(LOCKTEST2_OBJ) @BUILD_POPT@ @LIBTALLO
                $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) $(POPT_LIBS) \
                $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
 
-bin/ndrdump@EXEEXT@: $(BINARY_PREREQS) $(NDRDUMP_OBJ) @BUILD_POPT@ @LIBTALLOC_SHARED@ @LIBTDB_SHARED@
-       @echo Linking $@
-       @$(CC) $(FLAGS) -o $@ $(NDRDUMP_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) \
-               $(POPT_LIBS) $(LDAP_LIBS) $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) $(ZLIB_LIBS)
-
 bin/debug2html@EXEEXT@: $(BINARY_PREREQS) $(DEBUG2HTML_OBJ) @BUILD_POPT@ @LIBTALLOC_SHARED@
        @echo Linking $@
        @$(CC) $(FLAGS) -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(DYNEXP) \
@@ -1767,13 +1740,13 @@ shlibs test_shlibs: @LIBTDB_SHARED@
 #
 #-------------------------------------------------------------------
 
-LIBWBCLIENT_OBJ0 = nsswitch/libwbclient/wbclient.o \
-                 nsswitch/libwbclient/wbc_util.o \
-                 nsswitch/libwbclient/wbc_pwd.o \
-                 nsswitch/libwbclient/wbc_idmap.o \
-                 nsswitch/libwbclient/wbc_sid.o \
-                 nsswitch/libwbclient/wbc_guid.o \
-                 nsswitch/libwbclient/wbc_pam.o
+LIBWBCLIENT_OBJ0 = ../nsswitch/libwbclient/wbclient.o \
+                 ../nsswitch/libwbclient/wbc_util.o \
+                 ../nsswitch/libwbclient/wbc_pwd.o \
+                 ../nsswitch/libwbclient/wbc_idmap.o \
+                 ../nsswitch/libwbclient/wbc_sid.o \
+                 ../nsswitch/libwbclient/wbc_guid.o \
+                 ../nsswitch/libwbclient/wbc_pam.o
 LIBWBCLIENT_OBJ = $(LIBWBCLIENT_OBJ0) \
                  $(WBCOMMON_OBJ) \
                  @LIBTALLOC_STATIC@ $(LIBREPLACE_OBJ)
@@ -1784,7 +1757,7 @@ LIBWBCLIENT_SHARED_TARGET_SONAME=$(LIBWBCLIENT_SHARED_TARGET).$(LIBWBCLIENT_SOVE
 LIBWBCLIENT_STATIC_TARGET=@LIBWBCLIENT_STATIC_TARGET@
 LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@
 LIBWBCLIENT_SYMS=$(srcdir)/exports/libwbclient.@SYMSEXT@
-LIBWBCLIENT_HEADERS=$(srcdir)/nsswitch/libwbclient/wbclient.h
+LIBWBCLIENT_HEADERS=$(srcdir)/../nsswitch/libwbclient/wbclient.h
 
 $(LIBWBCLIENT_SYMS): $(LIBWBCLIENT_HEADERS)
        @$(MKSYMS_SH) $(AWK) $@ $(LIBWBCLIENT_HEADERS)
@@ -2776,7 +2749,7 @@ etags::
        etags --append `find $(srcdir)/../source4/ldap_server -name "*.[ch]"`
        etags --append `find $(srcdir)/../source4/smb_server -name "*.[ch]"`
        etags --append `find $(srcdir)/../source4/include -name "*.[ch]"`
-       etags --append `find $(srcdir)/../source4/nsswitch -name "*.[ch]"`
+       etags --append `find $(srcdir)/../nsswitch -name "*.[ch]"`
        etags --append `find $(srcdir)/../source4/cldap_server -name "*.[ch]"`
        etags --append `find $(srcdir)/../source4/utils -name "*.[ch]"`
        etags --append `find $(srcdir)/../source4/librpc -name "*.[ch]"`
index b90b1b3f6043ac8a4ebc5b9d05c672ef678e39e7..42bdddf5f986d0c8393562d7037983a91f073677 100644 (file)
@@ -5699,8 +5699,8 @@ HAVE_WINBIND=yes
 # Define the winbind shared library name and any specific linker flags
 # it needs to be built with.
 
-WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
-WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
+WINBIND_NSS="../nsswitch/libnss_winbind.$SHLIBEXT"
+WINBIND_WINS_NSS="../nsswitch/libnss_wins.$SHLIBEXT"
 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
 NSSSONAMEVERSIONSUFFIX=""
 WINBIND_NSS_PTHREAD=""
@@ -5708,16 +5708,16 @@ WINBIND_NSS_PTHREAD=""
 case "$host_os" in
        *linux*)
                NSSSONAMEVERSIONSUFFIX=".2"
-               WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
+               WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_linux.o"
                ;;
        *freebsd[[5-9]]*)
                # FreeBSD winbind client is implemented as a wrapper around
                # the Linux version.
                NSSSONAMEVERSIONSUFFIX=".1"
-               WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
-                   nsswitch/winbind_nss_linux.o"
-               WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
-               WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
+               WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_freebsd.o \
+                   ../nsswitch/winbind_nss_linux.o"
+               WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT"
+               WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT"
                ;;
 
        *netbsd*[[3-9]]*)
@@ -5727,10 +5727,10 @@ case "$host_os" in
                #
                if test x"$ac_cv_func_getpwent_r" = x"yes"; then
                        WINBIND_NSS_EXTRA_OBJS="\
-                           nsswitch/winbind_nss_netbsd.o \
-                           nsswitch/winbind_nss_linux.o"
-                       WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
-                       WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
+                           ../nsswitch/winbind_nss_netbsd.o \
+                           ../nsswitch/winbind_nss_linux.o"
+                       WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT"
+                       WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT"
                else
                        HAVE_WINBIND=no
                        winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported"
@@ -5738,28 +5738,28 @@ case "$host_os" in
                ;;
        *irix*)
                # IRIX has differently named shared libraries
-               WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
-               WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
-               WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
+               WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_irix.o"
+               WINBIND_NSS="../nsswitch/libns_winbind.$SHLIBEXT"
+               WINBIND_WINS_NSS="../nsswitch/libns_wins.$SHLIBEXT"
                ;;
        *solaris*)
                # Solaris winbind client is implemented as a wrapper around
                # the Linux version.
                NSSSONAMEVERSIONSUFFIX=".1"
-               WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
-                   nsswitch/winbind_nss_linux.o"
+               WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o \
+                   ../nsswitch/winbind_nss_linux.o"
                WINBIND_NSS_EXTRA_LIBS="${LIBREPLACE_NETWORK_LIBS}"
                PAM_WINBIND_EXTRA_LIBS="${LIBREPLACE_NETWORK_LIBS}"
                ;;
        *hpux11*)
-               WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
+               WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o"
                ;;
        *aix*)
                # AIX has even differently named shared libraries.  No
                # WINS support has been implemented yet.
-               WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
+               WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_aix.o"
                WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
-               WINBIND_NSS="nsswitch/WINBIND"
+               WINBIND_NSS="../nsswitch/WINBIND"
                WINBIND_WINS_NSS=""
                ;;
        *)
index 3b909d13b95e25744434493464b55220fb403374..b4881169396fa7e8aed3558ba834e073eab5ab96 100644 (file)
@@ -113,18 +113,19 @@ struct SMBC_internal_data {
        /* True when this handle is initialized */
        bool                                    initialized;
 
-        /* dirent pointer location
-         *
+        /* dirent pointer location */
+       struct smbc_dirent                      dirent;
+       /*
          * Leave room for any urlencoded filename and the comment field.
          *
-         * We really should use sizeof(struct smbc_dirent) plus (NAME_MAX * 3)
-         * plus whatever the max length of a comment is, plus a couple of null
-         * terminators (one after the filename, one after the comment).
+        * We use (NAME_MAX * 3) plus whatever the max length of a comment is,
+        * plus a couple of null terminators (one after the filename,
+        * one after the comment).
          *
          * According to <linux/limits.h>, NAME_MAX is 255.  Is it longer
          * anyplace else?
          */
-       char                                    dirent[1024];
+       char                                    _dirent_name[1024];
 
        /*
          * server connection list
index 605bbf1fb6b4b557e6aff4926cc09f196a87276d..7fe8ed82a21b82ecca5205c4bd060d396b14f844 100644 (file)
@@ -368,13 +368,14 @@ static void print_socket_options(int s)
         * leak in SCO Openserver 5.0 */
        /* reported on samba-technical  --jerry */
        if ( DEBUGLEVEL >= 5 ) {
+               DEBUG(5,("Socket options:\n"));
                for (; p->name != NULL; p++) {
                        if (getsockopt(s, p->level, p->option,
                                                (void *)&value, &vlen) == -1) {
-                               DEBUG(5,("Could not test socket option %s.\n",
+                               DEBUGADD(5,("\tCould not test socket option %s.\n",
                                                        p->name));
                        } else {
-                               DEBUG(5,("socket option %s = %d\n",
+                               DEBUGADD(5,("\t%s = %d\n",
                                                        p->name,value));
                        }
                }
diff --git a/source3/librpc/gen_ndr/dom_sid.h b/source3/librpc/gen_ndr/dom_sid.h
deleted file mode 100644 (file)
index 57dd168..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* header auto-generated by pidl */
-
-#include <stdint.h>
-
-#define dom_sid2 dom_sid
-#define dom_sid28 dom_sid
-#define dom_sid0 dom_sid
-#ifndef _HEADER_dom_sid
-#define _HEADER_dom_sid
-
-struct _dummy_domsid {
-       uint8_t dummy;
-};
-
-#endif /* _HEADER_dom_sid */
diff --git a/source3/librpc/gen_ndr/ndr_dom_sid.h b/source3/librpc/gen_ndr/ndr_dom_sid.h
deleted file mode 100644 (file)
index 145ec1d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* header auto-generated by pidl */
-
-#include "librpc/ndr/libndr.h"
-#include "librpc/gen_ndr/dom_sid.h"
-
-#ifndef _HEADER_NDR_dom_sid
-#define _HEADER_NDR_dom_sid
-
-#define NDR_DOM_SID_CALL_COUNT (0)
-#endif /* _HEADER_NDR_dom_sid */
index dfa72d8004068610a73b5537520c7d832c2ed2b8..00ba8bc29329107c6c0c5e9e0ac91a657109a40b 100644 (file)
@@ -3,7 +3,6 @@
 #include "includes.h"
 #include "librpc/gen_ndr/ndr_notify.h"
 
-#include "librpc/gen_ndr/ndr_security.h"
 _PUBLIC_ enum ndr_err_code ndr_push_notify_entry(struct ndr_push *ndr, int ndr_flags, const struct notify_entry *r)
 {
        if (ndr_flags & NDR_SCALARS) {
index 46a7e24e0df4f7ca4380fef500ccab5ca471dabf..c809702e5d509e555b4eec66d8656e4af79dfe15 100644 (file)
@@ -2,7 +2,6 @@
 
 #include <stdint.h>
 
-#include "librpc/gen_ndr/security.h"
 #ifndef _HEADER_notify
 #define _HEADER_notify
 
diff --git a/source3/librpc/idl/dom_sid.idl b/source3/librpc/idl/dom_sid.idl
deleted file mode 100644 (file)
index c405c18..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-   use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
-   just a dom sid, but with the sub_auths represented as a conformant
-   array. As with all in-structure conformant arrays, the array length
-   is placed before the start of the structure. That's what gives rise
-   to the extra num_auths elemenent. We don't want the Samba code to
-   have to bother with such esoteric NDR details, so its easier to just
-   define it as a dom_sid and use pidl magic to make it all work. It
-   just means you need to mark a sid as a "dom_sid2" in the IDL when you
-   know it is of the conformant array variety
-*/
-cpp_quote("#define dom_sid2 dom_sid")
-
-/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */
-cpp_quote("#define dom_sid28 dom_sid")
-
-/* same struct as dom_sid but in a variable byte buffer, which is maybe empty in NDR */
-cpp_quote("#define dom_sid0 dom_sid")
-
-[
-       pointer_default(unique)
-]
-interface dom_sid
-{
-       struct _dummy_domsid {
-               uint8 dummy;
-       };
-}
-
diff --git a/source3/librpc/idl/notify.idl b/source3/librpc/idl/notify.idl
new file mode 100644 (file)
index 0000000..c4e633c
--- /dev/null
@@ -0,0 +1,56 @@
+#include "idl_types.h"
+
+/*
+   IDL structures for notify change code
+
+   this defines the structures used in the notify database code, and
+   the change notify buffers
+*/
+
+[
+  pointer_default(unique)
+]
+interface notify
+{
+
+       /* structure used in the notify database */
+       typedef [public] struct {
+               server_id server;
+               uint32 filter; /* filter to apply in this directory */
+               uint32 subdir_filter; /* filter to apply in child directories */
+               utf8string path;
+               uint32 path_len; /* saves some computation on search */
+               pointer private_data;
+       } notify_entry;
+
+       /*
+         to allow for efficient search for matching entries, we
+         divide them by the directory depth, with a separate array
+         per depth. The entries within each depth are sorted by path,
+         allowing for a bisection search.
+
+         The max_mask and max_mask_subdir at each depth is the
+         bitwise or of the filters and subdir filters for all entries
+         at that depth. This allows a depth to be quickly skipped if
+         no entries will match the target filter         
+       */
+       typedef struct {
+               uint32 max_mask;
+               uint32 max_mask_subdir;
+               uint32 num_entries;
+               notify_entry entries[num_entries];
+       } notify_depth;
+
+       typedef [public] struct {
+               uint32 num_depths;
+               notify_depth depth[num_depths];
+       } notify_array;
+
+       /* structure sent between servers in notify messages */
+       typedef [public] struct {
+               uint32 action;
+               utf8string path;
+               pointer private_data;
+       } notify_event;
+
+}
index d12e7487f6325cc85faaccfbc71a65a8b5b73390..770014b6f62350632a16fef274bdf37277ea4572 100644 (file)
@@ -976,9 +976,8 @@ SMBC_readdir_ctx(SMBCCTX *context,
 
         }
 
-        dirp = (struct smbc_dirent *)context->internal->dirent;
-        maxlen = (sizeof(context->internal->dirent) -
-                  sizeof(struct smbc_dirent));
+        dirp = &context->internal->dirent;
+        maxlen = sizeof(context->internal->_dirent_name);
 
         smbc_readdir_internal(context, dirp, dirent, maxlen);
 
@@ -1049,9 +1048,8 @@ SMBC_getdents_ctx(SMBCCTX *context,
                }
 
                 /* Do urlencoding of next entry, if so selected */
-                dirent = (struct smbc_dirent *)context->internal->dirent;
-                maxlen = (sizeof(context->internal->dirent) -
-                          sizeof(struct smbc_dirent));
+                dirent = &context->internal->dirent;
+                maxlen = sizeof(context->internal->_dirent_name);
                 smbc_readdir_internal(context, dirent,
                                       dirlist->dirent, maxlen);
 
index 149a3e1ab977b126118ed60ea555484f3d4b0b9c..a27b75f7f1ec1870739a7e4ba36beccf1932f08f 100644 (file)
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 1.875a.  */
+/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Free Software Foundation, Inc.
 
    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
    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/>.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
 
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
@@ -34,6 +46,9 @@
 /* Identify Bison output.  */
 #define YYBISON 1
 
+/* Bison version.  */
+#define YYBISON_VERSION "2.3"
+
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 
@@ -69,6 +84,7 @@
      tUNUMBER = 273
    };
 #endif
+/* Tokens.  */
 #define tAGO 258
 #define tDST 259
 #define tDAY 260
@@ -250,9 +266,6 @@ typedef struct
 #define YYLEX_PARAM parm
 #define YYPARSE_PARAM parm
 
-static int yyerror ();
-static int yylex ();
-
 
 
 /* Enabling traces.  */
@@ -268,14 +281,21 @@ static int yylex ();
 # define YYERROR_VERBOSE 0
 #endif
 
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 172 "getdate.y"
-typedef union YYSTYPE {
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+#line 169 "getdate.y"
+{
   int intval;
   textint textintval;
-} YYSTYPE;
-/* Line 191 of yacc.c.  */
-#line 281 "getdate.c"
+}
+/* Line 187 of yacc.c.  */
+#line 298 "getdate.c"
+       YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -284,51 +304,179 @@ typedef union YYSTYPE {
 
 
 /* Copy the second part of user declarations.  */
+#line 174 "getdate.y"
 
 
-/* Line 214 of yacc.c.  */
-#line 293 "getdate.c"
+static int yyerror(const char *);
+static int yylex(YYSTYPE *, parser_control *);
 
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
 
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
 
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
+/* Line 216 of yacc.c.  */
+#line 317 "getdate.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
 # else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+    int i;
+#endif
+{
+  return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
 #   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
+#    define YYSTACK_ALLOC alloca
+#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#     ifndef _STDLIB_H
+#      define _STDLIB_H 1
+#     endif
 #    endif
 #   endif
 #  endif
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+#  endif
 # else
-#  if defined (__STDC__) || defined (__cplusplus)
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+#  endif
+#  if (defined __cplusplus && ! defined _STDLIB_H \
+       && ! ((defined YYMALLOC || defined malloc) \
+            && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
+#   ifndef _STDLIB_H
+#    define _STDLIB_H 1
+#   endif
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
 #  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
 # endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
 
 
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-        || (YYSTYPE_IS_TRIVIAL)))
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  short yyss;
+  yytype_int16 yyss;
   YYSTYPE yyvs;
   };
 
@@ -338,24 +486,24 @@ union yyalloc
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
 # define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
 # ifndef YYCOPY
-#  if 1 < __GNUC__
+#  if defined __GNUC__ && 1 < __GNUC__
 #   define YYCOPY(To, From, Count) \
       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 #  else
 #   define YYCOPY(To, From, Count)             \
       do                                       \
        {                                       \
-         register YYSIZE_T yyi;                \
+         YYSIZE_T yyi;                         \
          for (yyi = 0; yyi < (Count); yyi++)   \
            (To)[yyi] = (From)[yyi];            \
        }                                       \
-      while (0)
+      while (YYID (0))
 #  endif
 # endif
 
@@ -373,39 +521,33 @@ union yyalloc
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
-    while (0)
+    while (YYID (0))
 
 #endif
 
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
+/* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
 #define YYLAST   52
 
-/* YYNTOKENS -- Number of terminals. */
+/* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  22
-/* YYNNTS -- Number of nonterminals. */
+/* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  12
-/* YYNRULES -- Number of rules. */
+/* YYNRULES -- Number of rules.  */
 #define YYNRULES  54
-/* YYNRULES -- Number of states. */
+/* YYNRULES -- Number of states.  */
 #define YYNSTATES  64
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   273
 
-#define YYTRANSLATE(YYX)                                               \
+#define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
+static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -440,7 +582,7 @@ static const unsigned char yytranslate[] =
 #if YYDEBUG
 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    YYRHS.  */
-static const unsigned char yyprhs[] =
+static const yytype_uint8 yyprhs[] =
 {
        0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
       19,    21,    24,    29,    34,    41,    48,    50,    53,    55,
@@ -450,8 +592,8 @@ static const unsigned char yyprhs[] =
      149,   152,   154,   156,   157
 };
 
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
 {
       23,     0,    -1,    -1,    23,    24,    -1,    25,    -1,    26,
       -1,    27,    -1,    29,    -1,    28,    -1,    30,    -1,    32,
@@ -472,27 +614,27 @@ static const yysigned_char yyrhs[] =
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short yyrline[] =
+static const yytype_uint16 yyrline[] =
 {
-       0,   188,   188,   190,   194,   196,   198,   200,   202,   204,
-     206,   210,   217,   224,   232,   239,   251,   253,   258,   260,
-     262,   267,   272,   277,   285,   290,   310,   317,   325,   330,
-     336,   341,   350,   359,   363,   365,   367,   369,   371,   373,
-     375,   377,   379,   381,   383,   385,   387,   389,   391,   393,
-     395,   397,   402,   439,   440
+       0,   192,   192,   194,   198,   200,   202,   204,   206,   208,
+     210,   214,   221,   228,   236,   243,   255,   257,   262,   264,
+     266,   271,   276,   281,   289,   294,   314,   321,   329,   334,
+     340,   345,   354,   363,   367,   369,   371,   373,   375,   377,
+     379,   381,   383,   385,   387,   389,   391,   393,   395,   397,
+     399,   401,   406,   443,   444
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "tAGO", "tDST", "tDAY", "tDAY_UNIT", 
-  "tDAYZONE", "tHOUR_UNIT", "tLOCAL_ZONE", "tMERIDIAN", "tMINUTE_UNIT", 
-  "tMONTH", "tMONTH_UNIT", "tSEC_UNIT", "tYEAR_UNIT", "tZONE", "tSNUMBER", 
-  "tUNUMBER", "':'", "','", "'/'", "$accept", "spec", "item", "time", 
-  "local_zone", "zone", "day", "date", "rel", "relunit", "number", 
+  "$end", "error", "$undefined", "tAGO", "tDST", "tDAY", "tDAY_UNIT",
+  "tDAYZONE", "tHOUR_UNIT", "tLOCAL_ZONE", "tMERIDIAN", "tMINUTE_UNIT",
+  "tMONTH", "tMONTH_UNIT", "tSEC_UNIT", "tYEAR_UNIT", "tZONE", "tSNUMBER",
+  "tUNUMBER", "':'", "','", "'/'", "$accept", "spec", "item", "time",
+  "local_zone", "zone", "day", "date", "rel", "relunit", "number",
   "o_merid", 0
 };
 #endif
@@ -500,7 +642,7 @@ static const char *const yytname[] =
 # ifdef YYPRINT
 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    token YYLEX-NUM.  */
-static const unsigned short yytoknum[] =
+static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,    58,
@@ -509,7 +651,7 @@ static const unsigned short yytoknum[] =
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned char yyr1[] =
+static const yytype_uint8 yyr1[] =
 {
        0,    22,    23,    23,    24,    24,    24,    24,    24,    24,
       24,    25,    25,    25,    25,    25,    26,    26,    27,    27,
@@ -520,7 +662,7 @@ static const unsigned char yyr1[] =
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
+static const yytype_uint8 yyr2[] =
 {
        0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
        1,     2,     4,     4,     6,     6,     1,     2,     1,     1,
@@ -533,7 +675,7 @@ static const unsigned char yyr2[] =
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */
-static const unsigned char yydefact[] =
+static const yytype_uint8 yydefact[] =
 {
        2,     0,     1,    21,    42,    19,    45,    16,    48,     0,
       39,    51,    36,    18,     0,    52,     3,     4,     5,     6,
@@ -544,8 +686,8 @@ static const unsigned char yydefact[] =
       53,    25,    15,    14
 };
 
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int8 yydefgoto[] =
 {
       -1,     1,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    58
@@ -554,7 +696,7 @@ static const yysigned_char yydefgoto[] =
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
 #define YYPACT_NINF -17
-static const yysigned_char yypact[] =
+static const yytype_int8 yypact[] =
 {
      -17,     0,   -17,     1,   -17,   -17,   -17,    19,   -17,   -14,
      -17,   -17,   -17,    32,    26,    14,   -17,   -17,   -17,   -17,
@@ -566,7 +708,7 @@ static const yysigned_char yypact[] =
 };
 
 /* YYPGOTO[NTERM-NUM].  */
-static const yysigned_char yypgoto[] =
+static const yytype_int8 yypgoto[] =
 {
      -17,   -17,   -17,   -17,   -17,   -17,   -17,   -17,   -17,   -17,
      -17,   -10
@@ -577,7 +719,7 @@ static const yysigned_char yypgoto[] =
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
 #define YYTABLE_NINF -1
-static const unsigned char yytable[] =
+static const yytype_uint8 yytable[] =
 {
        2,    49,    50,    55,    27,     3,     4,     5,     6,     7,
       62,     8,     9,    10,    11,    12,    13,    14,    15,    35,
@@ -587,7 +729,7 @@ static const unsigned char yytable[] =
       63,    60,    61
 };
 
-static const unsigned char yycheck[] =
+static const yytype_uint8 yycheck[] =
 {
        0,    17,    18,    10,    18,     5,     6,     7,     8,     9,
       17,    11,    12,    13,    14,    15,    16,    17,    18,     5,
@@ -599,7 +741,7 @@ static const unsigned char yycheck[] =
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
-static const unsigned char yystos[] =
+static const yytype_uint8 yystos[] =
 {
        0,    23,     0,     5,     6,     7,     8,     9,    11,    12,
       13,    14,    15,    16,    17,    18,    24,    25,    26,    27,
@@ -610,22 +752,6 @@ static const unsigned char yystos[] =
       18,    18,    17,    33
 };
 
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                (-2)
@@ -633,7 +759,7 @@ static const unsigned char yystos[] =
 
 #define YYACCEPT       goto yyacceptlab
 #define YYABORT                goto yyabortlab
-#define YYERROR                goto yyerrlab1
+#define YYERROR                goto yyerrorlab
 
 
 /* Like YYERROR except do call yyerror.  This remains here temporarily
@@ -651,30 +777,63 @@ do                                                                \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
       yytoken = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK;                                              \
+      YYPOPSTACK (1);                                          \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
-    {                                                          \
-      yyerror ("syntax error: cannot back up");\
+    {                                                          \
+      yyerror (YY_("syntax error: cannot back up")); \
       YYERROR;                                                 \
     }                                                          \
-while (0)
+while (YYID (0))
+
 
 #define YYTERROR       1
 #define YYERRCODE      256
 
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).  */
 
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)         \
-  Current.first_line   = Rhs[1].first_line;      \
-  Current.first_column = Rhs[1].first_column;    \
-  Current.last_line    = Rhs[N].last_line;       \
-  Current.last_column  = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)                               \
+    do                                                                 \
+      if (YYID (N))                                                    \
+       {                                                               \
+         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
+         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
+         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
+         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
+       }                                                               \
+      else                                                             \
+       {                                                               \
+         (Current).first_line   = (Current).last_line   =              \
+           YYRHSLOC (Rhs, 0).last_line;                                \
+         (Current).first_column = (Current).last_column =              \
+           YYRHSLOC (Rhs, 0).last_column;                              \
+       }                                                               \
+    while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+   This macro was not mandated originally: define only if we know
+   we won't break user code: when these are the locations we know.  */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+#  define YY_LOCATION_PRINT(File, Loc)                 \
+     fprintf (File, "%d.%d-%d.%d",                     \
+             (Loc).first_line, (Loc).first_column,     \
+             (Loc).last_line,  (Loc).last_column)
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
 #endif
 
+
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
 #ifdef YYLEX_PARAM
@@ -695,42 +854,96 @@ while (0)
 do {                                           \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
-} while (0)
+} while (YYID (0))
 
-# define YYDSYMPRINT(Args)                     \
-do {                                           \
-  if (yydebug)                                 \
-    yysymprint Args;                           \
-} while (0)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
+do {                                                                     \
+  if (yydebug)                                                           \
+    {                                                                    \
+      YYFPRINTF (stderr, "%s ", Title);                                          \
+      yy_symbol_print (stderr,                                           \
+                 Type, Value); \
+      YYFPRINTF (stderr, "\n");                                                  \
+    }                                                                    \
+} while (YYID (0))
 
-# define YYDSYMPRINTF(Title, Token, Value, Location)           \
-do {                                                           \
-  if (yydebug)                                                 \
-    {                                                          \
-      YYFPRINTF (stderr, "%s ", Title);                                \
-      yysymprint (stderr,                                      \
-                  Token, Value);       \
-      YYFPRINTF (stderr, "\n");                                        \
-    }                                                          \
-} while (0)
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (!yyvaluep)
+    return;
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+       break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+  YYFPRINTF (yyoutput, ")");
+}
 
 /*------------------------------------------------------------------.
 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (cinluded).                                                   |
+| TOP (included).                                                   |
 `------------------------------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (short *bottom, short *top)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
 #else
 static void
 yy_stack_print (bottom, top)
-    short *bottom;
-    short *top;
+    yytype_int16 *bottom;
+    yytype_int16 *top;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (/* Nothing. */; bottom <= top; ++bottom)
+  for (; bottom <= top; ++bottom)
     YYFPRINTF (stderr, " %d", *bottom);
   YYFPRINTF (stderr, "\n");
 }
@@ -739,45 +952,52 @@ yy_stack_print (bottom, top)
 do {                                                           \
   if (yydebug)                                                 \
     yy_stack_print ((Bottom), (Top));                          \
-} while (0)
+} while (YYID (0))
 
 
 /*------------------------------------------------.
 | Report that the YYRULE is going to be reduced.  |
 `------------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
 #else
 static void
-yy_reduce_print (yyrule)
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
     int yyrule;
 #endif
 {
+  int yynrhs = yyr2[yyrule];
   int yyi;
-  unsigned int yylineno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-             yyrule - 1, yylineno);
-  /* Print the symbols being reduced, and their result.  */
-  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+            yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      fprintf (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+                      &(yyvsp[(yyi + 1) - (yynrhs)])
+                                      );
+      fprintf (stderr, "\n");
+    }
 }
 
 # define YY_REDUCE_PRINT(Rule)         \
 do {                                   \
   if (yydebug)                         \
-    yy_reduce_print (Rule);            \
-} while (0)
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 # define YY_STACK_PRINT(Bottom, Top)
 # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
@@ -792,13 +1012,9 @@ int yydebug;
    if the built-in stack extension method is used).
 
    Do not make this value too large; the results are undefined if
-   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    evaluated with infinite-precision integer arithmetic.  */
 
-#if YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
@@ -808,45 +1024,47 @@ int yydebug;
 #if YYERROR_VERBOSE
 
 # ifndef yystrlen
-#  if defined (__GLIBC__) && defined (_STRING_H)
+#  if defined __GLIBC__ && defined _STRING_H
 #   define yystrlen strlen
 #  else
 /* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static YYSIZE_T
-#   if defined (__STDC__) || defined (__cplusplus)
 yystrlen (const char *yystr)
-#   else
+#else
+static YYSIZE_T
 yystrlen (yystr)
-     const char *yystr;
-#   endif
+    const char *yystr;
+#endif
 {
-  register const char *yys = yystr;
-
-  while (*yys++ != '\0')
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
     continue;
-
-  return yys - yystr - 1;
+  return yylen;
 }
 #  endif
 # endif
 
 # ifndef yystpcpy
-#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
 #   define yystpcpy stpcpy
 #  else
 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static char *
-#   if defined (__STDC__) || defined (__cplusplus)
 yystpcpy (char *yydest, const char *yysrc)
-#   else
+#else
+static char *
 yystpcpy (yydest, yysrc)
-     char *yydest;
-     const char *yysrc;
-#   endif
+    char *yydest;
+    const char *yysrc;
+#endif
 {
-  register char *yyd = yydest;
-  register const char *yys = yysrc;
+  char *yyd = yydest;
+  const char *yys = yysrc;
 
   while ((*yyd++ = *yys++) != '\0')
     continue;
@@ -856,70 +1074,192 @@ yystpcpy (yydest, yysrc)
 #  endif
 # endif
 
-#endif /* !YYERROR_VERBOSE */
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
+    {
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+       switch (*++yyp)
+         {
+         case '\'':
+         case ',':
+           goto do_not_strip_quotes;
+
+         case '\\':
+           if (*++yyp != '\\')
+             goto do_not_strip_quotes;
+           /* Fall through.  */
+         default:
+           if (yyres)
+             yyres[yyn] = *yyp;
+           yyn++;
+           break;
 
-\f
+         case '"':
+           if (yyres)
+             yyres[yyn] = '\0';
+           return yyn;
+         }
+    do_not_strip_quotes: ;
+    }
 
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
+  if (! yyres)
+    return yystrlen (yystr);
 
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
+   including the terminating null byte.  If YYRESULT is null, do not
+   copy anything; just return the number of bytes that would be
+   copied.  As a special case, return 0 if an ordinary "syntax error"
+   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
+   size calculation.  */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
 {
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
+  int yyn = yypact[yystate];
 
-  if (yytype < YYNTOKENS)
+  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+    return 0;
+  else
     {
-      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
-      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+      int yytype = YYTRANSLATE (yychar);
+      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+      YYSIZE_T yysize = yysize0;
+      YYSIZE_T yysize1;
+      int yysize_overflow = 0;
+      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+      int yyx;
+
+# if 0
+      /* This is so xgettext sees the translatable formats that are
+        constructed on the fly.  */
+      YY_("syntax error, unexpected %s");
+      YY_("syntax error, unexpected %s, expecting %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
 # endif
-    }
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+      char *yyfmt;
+      char const *yyf;
+      static char const yyunexpected[] = "syntax error, unexpected %s";
+      static char const yyexpecting[] = ", expecting %s";
+      static char const yyor[] = " or %s";
+      char yyformat[sizeof yyunexpected
+                   + sizeof yyexpecting - 1
+                   + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+                      * (sizeof yyor - 1))];
+      char const *yyprefix = yyexpecting;
+
+      /* Start YYX at -YYN if negative to avoid negative indexes in
+        YYCHECK.  */
+      int yyxbegin = yyn < 0 ? -yyn : 0;
+
+      /* Stay within bounds of both yycheck and yytname.  */
+      int yychecklim = YYLAST - yyn + 1;
+      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+      int yycount = 1;
+
+      yyarg[0] = yytname[yytype];
+      yyfmt = yystpcpy (yyformat, yyunexpected);
+
+      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+       if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+         {
+           if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+             {
+               yycount = 1;
+               yysize = yysize0;
+               yyformat[sizeof yyunexpected - 1] = '\0';
+               break;
+             }
+           yyarg[yycount++] = yytname[yyx];
+           yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+           yysize_overflow |= (yysize1 < yysize);
+           yysize = yysize1;
+           yyfmt = yystpcpy (yyfmt, yyprefix);
+           yyprefix = yyor;
+         }
 
-  switch (yytype)
-    {
-      default:
-        break;
+      yyf = YY_(yyformat);
+      yysize1 = yysize + yystrlen (yyf);
+      yysize_overflow |= (yysize1 < yysize);
+      yysize = yysize1;
+
+      if (yysize_overflow)
+       return YYSIZE_MAXIMUM;
+
+      if (yyresult)
+       {
+         /* Avoid sprintf, as that infringes on the user's name space.
+            Don't have undefined behavior even if the translation
+            produced a string with the wrong number of "%s"s.  */
+         char *yyp = yyresult;
+         int yyi = 0;
+         while ((*yyp = *yyf) != '\0')
+           {
+             if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+               {
+                 yyp += yytnamerr (yyp, yyarg[yyi++]);
+                 yyf += 2;
+               }
+             else
+               {
+                 yyp++;
+                 yyf++;
+               }
+           }
+       }
+      return yysize;
     }
-  YYFPRINTF (yyoutput, ")");
 }
+#endif /* YYERROR_VERBOSE */
+\f
 
-#endif /* ! YYDEBUG */
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
-#if defined (__STDC__) || defined (__cplusplus)
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 #else
 static void
-yydestruct (yytype, yyvaluep)
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
     int yytype;
     YYSTYPE *yyvaluep;
 #endif
 {
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvaluep;
+  YYUSE (yyvaluep);
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
   switch (yytype)
     {
 
       default:
-        break;
+       break;
     }
 }
 \f
@@ -927,13 +1267,13 @@ yydestruct (yytype, yyvaluep)
 /* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
-# else
+#else
 int yyparse ();
-# endif
+#endif
 #else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
 int yyparse (void);
 #else
 int yyparse ();
@@ -950,14 +1290,18 @@ int yyparse ();
 `----------*/
 
 #ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
-  void *YYPARSE_PARAM;
-# endif
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
+#endif
 #else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 int
 yyparse (void)
 #else
@@ -967,22 +1311,28 @@ yyparse ()
 #endif
 #endif
 {
-  /* The lookahead symbol.  */
+  /* The look-ahead symbol.  */
 int yychar;
 
-/* The semantic value of the lookahead symbol.  */
+/* The semantic value of the look-ahead symbol.  */
 YYSTYPE yylval;
 
 /* Number of syntax errors so far.  */
 int yynerrs;
 
-  register int yystate;
-  register int yyn;
+  int yystate;
+  int yyn;
   int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
-  /* Lookahead token as an internal (translated) token number.  */
+  /* Look-ahead token as an internal (translated) token number.  */
   int yytoken = 0;
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -993,18 +1343,18 @@ int yynerrs;
      to reallocate them elsewhere.  */
 
   /* The state stack.  */
-  short        yyssa[YYINITDEPTH];
-  short *yyss = yyssa;
-  register short *yyssp;
+  yytype_int16 yyssa[YYINITDEPTH];
+  yytype_int16 *yyss = yyssa;
+  yytype_int16 *yyssp;
 
   /* The semantic value stack.  */
   YYSTYPE yyvsa[YYINITDEPTH];
   YYSTYPE *yyvs = yyvsa;
-  register YYSTYPE *yyvsp;
+  YYSTYPE *yyvsp;
 
 
 
-#define YYPOPSTACK   (yyvsp--, yyssp--)
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   YYSIZE_T yystacksize = YYINITDEPTH;
 
@@ -1013,9 +1363,9 @@ int yynerrs;
   YYSTYPE yyval;
 
 
-  /* When reducing, the number of symbols on the RHS of the reduced
-     rule.  */
-  int yylen;
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
 
@@ -1039,8 +1389,7 @@ int yynerrs;
 `------------------------------------------------------------*/
  yynewstate:
   /* In all cases, when you get here, the value and location stacks
-     have just been pushed. so pushing a state here evens the stacks.
-     */
+     have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
  yysetstate:
@@ -1053,18 +1402,18 @@ int yynerrs;
 
 #ifdef yyoverflow
       {
-       /* Give user a chance to reallocate the stack. Use copies of
+       /* Give user a chance to reallocate the stack.  Use copies of
           these so that the &'s don't force the real ones into
           memory.  */
        YYSTYPE *yyvs1 = yyvs;
-       short *yyss1 = yyss;
+       yytype_int16 *yyss1 = yyss;
 
 
        /* Each stack pointer address is followed by the size of the
           data in use in that stack, in bytes.  This used to be a
           conditional around just the two extra args, but that might
           be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
+       yyoverflow (YY_("memory exhausted"),
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
 
@@ -1075,21 +1424,21 @@ int yynerrs;
       }
 #else /* no yyoverflow */
 # ifndef YYSTACK_RELOCATE
-      goto yyoverflowlab;
+      goto yyexhaustedlab;
 # else
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-       goto yyoverflowlab;
+       goto yyexhaustedlab;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
-       short *yyss1 = yyss;
+       yytype_int16 *yyss1 = yyss;
        union yyalloc *yyptr =
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
-         goto yyoverflowlab;
+         goto yyexhaustedlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
 
@@ -1120,19 +1469,17 @@ int yynerrs;
 `-----------*/
 yybackup:
 
-/* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
-/* yyresume: */
-
-  /* First try to decide what to do without reference to lookahead token.  */
+  /* Do appropriate processing given the current state.  Read a
+     look-ahead token if we need one and don't already have one.  */
 
+  /* First try to decide what to do without reference to look-ahead token.  */
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a lookahead token if don't already have one.  */
+  /* Not known => get a look-ahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -1147,7 +1494,7 @@ yybackup:
   else
     {
       yytoken = YYTRANSLATE (yychar);
-      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
     }
 
   /* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1167,22 +1514,21 @@ yybackup:
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
-
-  /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
-  *++yyvsp = yylval;
-
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
+  /* Shift the look-ahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
   yystate = yyn;
+  *++yyvsp = yylval;
+
   goto yynewstate;
 
 
@@ -1218,225 +1564,225 @@ yyreduce:
   switch (yyn)
     {
         case 4:
-#line 195 "getdate.y"
-    { PC.times_seen++; }
+#line 199 "getdate.y"
+    { PC.times_seen++; ;}
     break;
 
   case 5:
-#line 197 "getdate.y"
-    { PC.local_zones_seen++; }
+#line 201 "getdate.y"
+    { PC.local_zones_seen++; ;}
     break;
 
   case 6:
-#line 199 "getdate.y"
-    { PC.zones_seen++; }
+#line 203 "getdate.y"
+    { PC.zones_seen++; ;}
     break;
 
   case 7:
-#line 201 "getdate.y"
-    { PC.dates_seen++; }
+#line 205 "getdate.y"
+    { PC.dates_seen++; ;}
     break;
 
   case 8:
-#line 203 "getdate.y"
-    { PC.days_seen++; }
+#line 207 "getdate.y"
+    { PC.days_seen++; ;}
     break;
 
   case 9:
-#line 205 "getdate.y"
-    { PC.rels_seen++; }
+#line 209 "getdate.y"
+    { PC.rels_seen++; ;}
     break;
 
   case 11:
-#line 211 "getdate.y"
+#line 215 "getdate.y"
     {
-       PC.hour = yyvsp[-1].textintval.value;
+       PC.hour = (yyvsp[(1) - (2)].textintval).value;
        PC.minutes = 0;
        PC.seconds = 0;
-       PC.meridian = yyvsp[0].intval;
-      }
+       PC.meridian = (yyvsp[(2) - (2)].intval);
+      ;}
     break;
 
   case 12:
-#line 218 "getdate.y"
+#line 222 "getdate.y"
     {
-       PC.hour = yyvsp[-3].textintval.value;
-       PC.minutes = yyvsp[-1].textintval.value;
+       PC.hour = (yyvsp[(1) - (4)].textintval).value;
+       PC.minutes = (yyvsp[(3) - (4)].textintval).value;
        PC.seconds = 0;
-       PC.meridian = yyvsp[0].intval;
-      }
+       PC.meridian = (yyvsp[(4) - (4)].intval);
+      ;}
     break;
 
   case 13:
-#line 225 "getdate.y"
+#line 229 "getdate.y"
     {
-       PC.hour = yyvsp[-3].textintval.value;
-       PC.minutes = yyvsp[-1].textintval.value;
+       PC.hour = (yyvsp[(1) - (4)].textintval).value;
+       PC.minutes = (yyvsp[(3) - (4)].textintval).value;
        PC.meridian = MER24;
        PC.zones_seen++;
-       PC.time_zone = yyvsp[0].textintval.value % 100 + (yyvsp[0].textintval.value / 100) * 60;
-      }
+       PC.time_zone = (yyvsp[(4) - (4)].textintval).value % 100 + ((yyvsp[(4) - (4)].textintval).value / 100) * 60;
+      ;}
     break;
 
   case 14:
-#line 233 "getdate.y"
+#line 237 "getdate.y"
     {
-       PC.hour = yyvsp[-5].textintval.value;
-       PC.minutes = yyvsp[-3].textintval.value;
-       PC.seconds = yyvsp[-1].textintval.value;
-       PC.meridian = yyvsp[0].intval;
-      }
+       PC.hour = (yyvsp[(1) - (6)].textintval).value;
+       PC.minutes = (yyvsp[(3) - (6)].textintval).value;
+       PC.seconds = (yyvsp[(5) - (6)].textintval).value;
+       PC.meridian = (yyvsp[(6) - (6)].intval);
+      ;}
     break;
 
   case 15:
-#line 240 "getdate.y"
+#line 244 "getdate.y"
     {
-       PC.hour = yyvsp[-5].textintval.value;
-       PC.minutes = yyvsp[-3].textintval.value;
-       PC.seconds = yyvsp[-1].textintval.value;
+       PC.hour = (yyvsp[(1) - (6)].textintval).value;
+       PC.minutes = (yyvsp[(3) - (6)].textintval).value;
+       PC.seconds = (yyvsp[(5) - (6)].textintval).value;
        PC.meridian = MER24;
        PC.zones_seen++;
-       PC.time_zone = yyvsp[0].textintval.value % 100 + (yyvsp[0].textintval.value / 100) * 60;
-      }
+       PC.time_zone = (yyvsp[(6) - (6)].textintval).value % 100 + ((yyvsp[(6) - (6)].textintval).value / 100) * 60;
+      ;}
     break;
 
   case 16:
-#line 252 "getdate.y"
-    { PC.local_isdst = yyvsp[0].intval; }
+#line 256 "getdate.y"
+    { PC.local_isdst = (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 17:
-#line 254 "getdate.y"
-    { PC.local_isdst = yyvsp[-1].intval < 0 ? 1 : yyvsp[-1].intval + 1; }
+#line 258 "getdate.y"
+    { PC.local_isdst = (yyvsp[(1) - (2)].intval) < 0 ? 1 : (yyvsp[(1) - (2)].intval) + 1; ;}
     break;
 
   case 18:
-#line 259 "getdate.y"
-    { PC.time_zone = yyvsp[0].intval; }
+#line 263 "getdate.y"
+    { PC.time_zone = (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 19:
-#line 261 "getdate.y"
-    { PC.time_zone = yyvsp[0].intval + 60; }
+#line 265 "getdate.y"
+    { PC.time_zone = (yyvsp[(1) - (1)].intval) + 60; ;}
     break;
 
   case 20:
-#line 263 "getdate.y"
-    { PC.time_zone = yyvsp[-1].intval + 60; }
+#line 267 "getdate.y"
+    { PC.time_zone = (yyvsp[(1) - (2)].intval) + 60; ;}
     break;
 
   case 21:
-#line 268 "getdate.y"
+#line 272 "getdate.y"
     {
        PC.day_ordinal = 1;
-       PC.day_number = yyvsp[0].intval;
-      }
+       PC.day_number = (yyvsp[(1) - (1)].intval);
+      ;}
     break;
 
   case 22:
-#line 273 "getdate.y"
+#line 277 "getdate.y"
     {
        PC.day_ordinal = 1;
-       PC.day_number = yyvsp[-1].intval;
-      }
+       PC.day_number = (yyvsp[(1) - (2)].intval);
+      ;}
     break;
 
   case 23:
-#line 278 "getdate.y"
+#line 282 "getdate.y"
     {
-       PC.day_ordinal = yyvsp[-1].textintval.value;
-       PC.day_number = yyvsp[0].intval;
-      }
+       PC.day_ordinal = (yyvsp[(1) - (2)].textintval).value;
+       PC.day_number = (yyvsp[(2) - (2)].intval);
+      ;}
     break;
 
   case 24:
-#line 286 "getdate.y"
+#line 290 "getdate.y"
     {
-       PC.month = yyvsp[-2].textintval.value;
-       PC.day = yyvsp[0].textintval.value;
-      }
+       PC.month = (yyvsp[(1) - (3)].textintval).value;
+       PC.day = (yyvsp[(3) - (3)].textintval).value;
+      ;}
     break;
 
   case 25:
-#line 291 "getdate.y"
+#line 295 "getdate.y"
     {
        /* Interpret as YYYY/MM/DD if the first value has 4 or more digits,
           otherwise as MM/DD/YY.
           The goal in recognizing YYYY/MM/DD is solely to support legacy
           machine-generated dates like those in an RCS log listing.  If
           you want portability, use the ISO 8601 format.  */
-       if (4 <= yyvsp[-4].textintval.digits)
+       if (4 <= (yyvsp[(1) - (5)].textintval).digits)
          {
-           PC.year = yyvsp[-4].textintval;
-           PC.month = yyvsp[-2].textintval.value;
-           PC.day = yyvsp[0].textintval.value;
+           PC.year = (yyvsp[(1) - (5)].textintval);
+           PC.month = (yyvsp[(3) - (5)].textintval).value;
+           PC.day = (yyvsp[(5) - (5)].textintval).value;
          }
        else
          {
-           PC.month = yyvsp[-4].textintval.value;
-           PC.day = yyvsp[-2].textintval.value;
-           PC.year = yyvsp[0].textintval;
+           PC.month = (yyvsp[(1) - (5)].textintval).value;
+           PC.day = (yyvsp[(3) - (5)].textintval).value;
+           PC.year = (yyvsp[(5) - (5)].textintval);
          }
-      }
+      ;}
     break;
 
   case 26:
-#line 311 "getdate.y"
+#line 315 "getdate.y"
     {
        /* ISO 8601 format.  YYYY-MM-DD.  */
-       PC.year = yyvsp[-2].textintval;
-       PC.month = -yyvsp[-1].textintval.value;
-       PC.day = -yyvsp[0].textintval.value;
-      }
+       PC.year = (yyvsp[(1) - (3)].textintval);
+       PC.month = -(yyvsp[(2) - (3)].textintval).value;
+       PC.day = -(yyvsp[(3) - (3)].textintval).value;
+      ;}
     break;
 
   case 27:
-#line 318 "getdate.y"
+#line 322 "getdate.y"
     {
        /* e.g. 17-JUN-1992.  */
-       PC.day = yyvsp[-2].textintval.value;
-       PC.month = yyvsp[-1].intval;
-       PC.year.value = -yyvsp[0].textintval.value;
-       PC.year.digits = yyvsp[0].textintval.digits;
-      }
+       PC.day = (yyvsp[(1) - (3)].textintval).value;
+       PC.month = (yyvsp[(2) - (3)].intval);
+       PC.year.value = -(yyvsp[(3) - (3)].textintval).value;
+       PC.year.digits = (yyvsp[(3) - (3)].textintval).digits;
+      ;}
     break;
 
   case 28:
-#line 326 "getdate.y"
+#line 330 "getdate.y"
     {
-       PC.month = yyvsp[-1].intval;
-       PC.day = yyvsp[0].textintval.value;
-      }
+       PC.month = (yyvsp[(1) - (2)].intval);
+       PC.day = (yyvsp[(2) - (2)].textintval).value;
+      ;}
     break;
 
   case 29:
-#line 331 "getdate.y"
+#line 335 "getdate.y"
     {
-       PC.month = yyvsp[-3].intval;
-       PC.day = yyvsp[-2].textintval.value;
-       PC.year = yyvsp[0].textintval;
-      }
+       PC.month = (yyvsp[(1) - (4)].intval);
+       PC.day = (yyvsp[(2) - (4)].textintval).value;
+       PC.year = (yyvsp[(4) - (4)].textintval);
+      ;}
     break;
 
   case 30:
-#line 337 "getdate.y"
+#line 341 "getdate.y"
     {
-       PC.day = yyvsp[-1].textintval.value;
-       PC.month = yyvsp[0].intval;
-      }
+       PC.day = (yyvsp[(1) - (2)].textintval).value;
+       PC.month = (yyvsp[(2) - (2)].intval);
+      ;}
     break;
 
   case 31:
-#line 342 "getdate.y"
+#line 346 "getdate.y"
     {
-       PC.day = yyvsp[-2].textintval.value;
-       PC.month = yyvsp[-1].intval;
-       PC.year = yyvsp[0].textintval;
-      }
+       PC.day = (yyvsp[(1) - (3)].textintval).value;
+       PC.month = (yyvsp[(2) - (3)].intval);
+       PC.year = (yyvsp[(3) - (3)].textintval);
+      ;}
     break;
 
   case 32:
-#line 351 "getdate.y"
+#line 355 "getdate.y"
     {
        PC.rel_seconds = -PC.rel_seconds;
        PC.rel_minutes = -PC.rel_minutes;
@@ -1444,155 +1790,154 @@ yyreduce:
        PC.rel_day = -PC.rel_day;
        PC.rel_month = -PC.rel_month;
        PC.rel_year = -PC.rel_year;
-      }
+      ;}
     break;
 
   case 34:
-#line 364 "getdate.y"
-    { PC.rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 368 "getdate.y"
+    { PC.rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 35:
-#line 366 "getdate.y"
-    { PC.rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 370 "getdate.y"
+    { PC.rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 36:
-#line 368 "getdate.y"
-    { PC.rel_year += yyvsp[0].intval; }
+#line 372 "getdate.y"
+    { PC.rel_year += (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 37:
-#line 370 "getdate.y"
-    { PC.rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 374 "getdate.y"
+    { PC.rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 38:
-#line 372 "getdate.y"
-    { PC.rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 376 "getdate.y"
+    { PC.rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 39:
-#line 374 "getdate.y"
-    { PC.rel_month += yyvsp[0].intval; }
+#line 378 "getdate.y"
+    { PC.rel_month += (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 40:
-#line 376 "getdate.y"
-    { PC.rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 380 "getdate.y"
+    { PC.rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 41:
-#line 378 "getdate.y"
-    { PC.rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 382 "getdate.y"
+    { PC.rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 42:
-#line 380 "getdate.y"
-    { PC.rel_day += yyvsp[0].intval; }
+#line 384 "getdate.y"
+    { PC.rel_day += (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 43:
-#line 382 "getdate.y"
-    { PC.rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 386 "getdate.y"
+    { PC.rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 44:
-#line 384 "getdate.y"
-    { PC.rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 388 "getdate.y"
+    { PC.rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 45:
-#line 386 "getdate.y"
-    { PC.rel_hour += yyvsp[0].intval; }
+#line 390 "getdate.y"
+    { PC.rel_hour += (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 46:
-#line 388 "getdate.y"
-    { PC.rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 392 "getdate.y"
+    { PC.rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 47:
-#line 390 "getdate.y"
-    { PC.rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 394 "getdate.y"
+    { PC.rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 48:
-#line 392 "getdate.y"
-    { PC.rel_minutes += yyvsp[0].intval; }
+#line 396 "getdate.y"
+    { PC.rel_minutes += (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 49:
-#line 394 "getdate.y"
-    { PC.rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 398 "getdate.y"
+    { PC.rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 50:
-#line 396 "getdate.y"
-    { PC.rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; }
+#line 400 "getdate.y"
+    { PC.rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 51:
-#line 398 "getdate.y"
-    { PC.rel_seconds += yyvsp[0].intval; }
+#line 402 "getdate.y"
+    { PC.rel_seconds += (yyvsp[(1) - (1)].intval); ;}
     break;
 
   case 52:
-#line 403 "getdate.y"
+#line 407 "getdate.y"
     {
        if (PC.dates_seen
-           && ! PC.rels_seen && (PC.times_seen || 2 < yyvsp[0].textintval.digits))
-         PC.year = yyvsp[0].textintval;
+           && ! PC.rels_seen && (PC.times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits))
+         PC.year = (yyvsp[(1) - (1)].textintval);
        else
          {
-           if (4 < yyvsp[0].textintval.digits)
+           if (4 < (yyvsp[(1) - (1)].textintval).digits)
              {
                PC.dates_seen++;
-               PC.day = yyvsp[0].textintval.value % 100;
-               PC.month = (yyvsp[0].textintval.value / 100) % 100;
-               PC.year.value = yyvsp[0].textintval.value / 10000;
-               PC.year.digits = yyvsp[0].textintval.digits - 4;
+               PC.day = (yyvsp[(1) - (1)].textintval).value % 100;
+               PC.month = ((yyvsp[(1) - (1)].textintval).value / 100) % 100;
+               PC.year.value = (yyvsp[(1) - (1)].textintval).value / 10000;
+               PC.year.digits = (yyvsp[(1) - (1)].textintval).digits - 4;
              }
            else
              {
                PC.times_seen++;
-               if (yyvsp[0].textintval.digits <= 2)
+               if ((yyvsp[(1) - (1)].textintval).digits <= 2)
                  {
-                   PC.hour = yyvsp[0].textintval.value;
+                   PC.hour = (yyvsp[(1) - (1)].textintval).value;
                    PC.minutes = 0;
                  }
                else
                  {
-                   PC.hour = yyvsp[0].textintval.value / 100;
-                   PC.minutes = yyvsp[0].textintval.value % 100;
+                   PC.hour = (yyvsp[(1) - (1)].textintval).value / 100;
+                   PC.minutes = (yyvsp[(1) - (1)].textintval).value % 100;
                  }
                PC.seconds = 0;
                PC.meridian = MER24;
              }
          }
-      }
+      ;}
     break;
 
   case 53:
-#line 439 "getdate.y"
-    { yyval.intval = MER24; }
+#line 443 "getdate.y"
+    { (yyval.intval) = MER24; ;}
     break;
 
   case 54:
-#line 441 "getdate.y"
-    { yyval.intval = yyvsp[0].intval; }
+#line 445 "getdate.y"
+    { (yyval.intval) = (yyvsp[(1) - (1)].intval); ;}
     break;
 
 
+/* Line 1267 of yacc.c.  */
+#line 1935 "getdate.c"
+      default: break;
     }
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
 
-/* Line 999 of yacc.c.  */
-#line 1593 "getdate.c"
-\f
-  yyvsp -= yylen;
-  yyssp -= yylen;
-
-
+  YYPOPSTACK (yylen);
+  yylen = 0;
   YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
@@ -1621,92 +1966,92 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
-#if YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (YYPACT_NINF < yyn && yyn < YYLAST)
-       {
-         YYSIZE_T yysize = 0;
-         int yytype = YYTRANSLATE (yychar);
-         char *yymsg;
-         int yyx, yycount;
-
-         yycount = 0;
-         /* Start YYX at -YYN if negative to avoid negative indexes in
-            YYCHECK.  */
-         for (yyx = yyn < 0 ? -yyn : 0;
-              yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-             yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("syntax error, unexpected ") + 1;
-         yysize += yystrlen (yytname[yytype]);
-         yymsg = (char *) YYSTACK_ALLOC (yysize);
-         if (yymsg != 0)
-           {
-             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[yytype]);
-
-             if (yycount < 5)
-               {
-                 yycount = 0;
-                 for (yyx = yyn < 0 ? -yyn : 0;
-                      yyx < (int) (sizeof (yytname) / sizeof (char *));
-                      yyx++)
-                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-                     {
-                       const char *yyq = ! yycount ? ", expecting " : " or ";
-                       yyp = yystpcpy (yyp, yyq);
-                       yyp = yystpcpy (yyp, yytname[yyx]);
-                       yycount++;
-                     }
-               }
-             yyerror (yymsg);
+#if ! YYERROR_VERBOSE
+      yyerror (YY_("syntax error"));
+#else
+      {
+       YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+       if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+         {
+           YYSIZE_T yyalloc = 2 * yysize;
+           if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+             yyalloc = YYSTACK_ALLOC_MAXIMUM;
+           if (yymsg != yymsgbuf)
              YYSTACK_FREE (yymsg);
-           }
-         else
-           yyerror ("syntax error; also virtual memory exhausted");
-       }
-      else
-#endif /* YYERROR_VERBOSE */
-       yyerror ("syntax error");
+           yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+           if (yymsg)
+             yymsg_alloc = yyalloc;
+           else
+             {
+               yymsg = yymsgbuf;
+               yymsg_alloc = sizeof yymsgbuf;
+             }
+         }
+
+       if (0 < yysize && yysize <= yymsg_alloc)
+         {
+           (void) yysyntax_error (yymsg, yystate, yychar);
+           yyerror (yymsg);
+         }
+       else
+         {
+           yyerror (YY_("syntax error"));
+           if (yysize != 0)
+             goto yyexhaustedlab;
+         }
+      }
+#endif
     }
 
 
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse lookahead token after an
+      /* If just tried and failed to reuse look-ahead token after an
         error, discard it.  */
 
-      /* Return failure if at end of input.  */
-      if (yychar == YYEOF)
-        {
-         /* Pop the error token.  */
-          YYPOPSTACK;
-         /* Pop the rest of the stack.  */
-         while (yyss < yyssp)
-           {
-             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-             yydestruct (yystos[*yyssp], yyvsp);
-             YYPOPSTACK;
-           }
-         YYABORT;
-        }
-
-      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-      yydestruct (yytoken, &yylval);
-      yychar = YYEMPTY;
-
+      if (yychar <= YYEOF)
+       {
+         /* Return failure if at end of input.  */
+         if (yychar == YYEOF)
+           YYABORT;
+       }
+      else
+       {
+         yydestruct ("Error: discarding",
+                     yytoken, &yylval);
+         yychar = YYEMPTY;
+       }
     }
 
-  /* Else will try to reuse lookahead token after shifting the error
+  /* Else will try to reuse look-ahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
 
-/*----------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action.  |
-`----------------------------------------------------*/
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
 yyerrlab1:
   yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
@@ -1728,22 +2073,23 @@ yyerrlab1:
       if (yyssp == yyss)
        YYABORT;
 
-      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-      yydestruct (yystos[yystate], yyvsp);
-      yyvsp--;
-      yystate = *--yyssp;
 
+      yydestruct ("Error: popping",
+                 yystos[yystate], yyvsp);
+      YYPOPSTACK (1);
+      yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
     }
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  YYDPRINTF ((stderr, "Shifting error token, "));
-
   *++yyvsp = yylval;
 
 
+  /* Shift the error token.  */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
   yystate = yyn;
   goto yynewstate;
 
@@ -1763,25 +2109,43 @@ yyabortlab:
   goto yyreturn;
 
 #ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here.  |
-`----------------------------------------------*/
-yyoverflowlab:
-  yyerror ("parser stack overflow");
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
   yyresult = 2;
   /* Fall through.  */
 #endif
 
 yyreturn:
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+                yytoken, &yylval);
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+                 yystos[*yyssp], yyvsp);
+      YYPOPSTACK (1);
+    }
 #ifndef yyoverflow
   if (yyss != yyssa)
     YYSTACK_FREE (yyss);
 #endif
-  return yyresult;
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
 }
 
 
-#line 444 "getdate.y"
+#line 448 "getdate.y"
 
 
 /* Include this file down here because bison inserts code above which
@@ -1790,13 +2154,13 @@ yyreturn:
 #include "modules/getdate.h"
 
 #ifndef gmtime
-struct tm *gmtime ();
+struct tm *gmtime (const time_t *);
 #endif
 #ifndef localtime
-struct tm *localtime ();
+struct tm *localtime (const time_t *);
 #endif
 #ifndef mktime
-time_t mktime ();
+time_t mktime (struct tm *);
 #endif
 
 static table const meridian_table[] =
@@ -2204,7 +2568,7 @@ yylex (YYSTYPE *lvalp, parser_control *pc)
 
 /* Do nothing if the parser reports an error.  */
 static int
-yyerror (char *s ATTRIBUTE_UNUSED)
+yyerror (const char *s ATTRIBUTE_UNUSED)
 {
   return 0;
 }
@@ -2455,4 +2819,3 @@ main (int ac, char **av)
 }
 #endif /* defined TEST */
 
-
index edfb9d5ad7294c5ed5c17e418b725c3d68f64cae..21c01b896bad6b207c75f7dc8a52db51eba83c01 100644 (file)
@@ -157,9 +157,6 @@ typedef struct
 #define YYLEX_PARAM parm
 #define YYPARSE_PARAM parm
 
-static int yyerror ();
-static int yylex ();
-
 %}
 
 /* We want a reentrant parser.  */
@@ -174,6 +171,13 @@ static int yylex ();
   textint textintval;
 }
 
+%{
+
+static int yyerror(const char *);
+static int yylex(YYSTYPE *, parser_control *);
+
+%}
+
 %token tAGO tDST
 
 %token <intval> tDAY tDAY_UNIT tDAYZONE tHOUR_UNIT tLOCAL_ZONE tMERIDIAN
@@ -449,13 +453,13 @@ o_merid:
 #include "modules/getdate.h"
 
 #ifndef gmtime
-struct tm *gmtime ();
+struct tm *gmtime (const time_t *);
 #endif
 #ifndef localtime
-struct tm *localtime ();
+struct tm *localtime (const time_t *);
 #endif
 #ifndef mktime
-time_t mktime ();
+time_t mktime (struct tm *);
 #endif
 
 static table const meridian_table[] =
@@ -863,7 +867,7 @@ yylex (YYSTYPE *lvalp, parser_control *pc)
 
 /* Do nothing if the parser reports an error.  */
 static int
-yyerror (char *s ATTRIBUTE_UNUSED)
+yyerror (const char *s ATTRIBUTE_UNUSED)
 {
   return 0;
 }
diff --git a/source3/nsswitch/winbind_nss.h b/source3/nsswitch/winbind_nss.h
deleted file mode 100644 (file)
index 0a3bc7c..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   A common place to work out how to define NSS_STATUS on various
-   platforms.
-
-   Copyright (C) Tim Potter 2000
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _NSSWITCH_NSS_H
-#define _NSSWITCH_NSS_H
-
-#ifdef HAVE_NSS_COMMON_H
-
-/* 
- * Sun Solaris 
- */
-
-#include "nsswitch/winbind_nss_solaris.h"
-
-#elif HAVE_NSS_H
-
-/*
- * Linux (glibc)
- */
-
-#include "nsswitch/winbind_nss_linux.h"
-
-#elif HAVE_NS_API_H
-
-/*
- * SGI IRIX 
- */
-
-#include "nsswitch/winbind_nss_irix.h"
-
-#elif defined(HPUX) && defined(HAVE_NSSWITCH_H)
-
-/* HP-UX 11 */
-
-#include "nsswitch/winbind_nss_hpux.h"
-
-#elif defined(__NetBSD__) && defined(HAVE_GETPWENT_R)
-
-/*
- * NetBSD 3 and newer
- */
-
-#include "nsswitch/winbind_nss_netbsd.h"
-
-#else /* Nothing's defined. Neither gnu nor netbsd nor sun nor hp */
-
-typedef enum
-{
-  NSS_STATUS_SUCCESS=0,
-  NSS_STATUS_NOTFOUND=1,
-  NSS_STATUS_UNAVAIL=2,
-  NSS_STATUS_TRYAGAIN=3
-} NSS_STATUS;
-
-#endif
-
-#endif /* _NSSWITCH_NSS_H */
diff --git a/source3/nsswitch/winbind_nss_hpux.h b/source3/nsswitch/winbind_nss_hpux.h
deleted file mode 100644 (file)
index 62cf3c2..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-   Donated by HP to enable Winbindd to build on HPUX 11.x.
-   Copyright (C) Jeremy Allison 2002.
-   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
-   Library 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/>.
-*/
-
-#ifndef _WINBIND_NSS_HPUX_H
-#define _WINBIND_NSS_HPUX_H
-
-#include <nsswitch.h>
-
-#define NSS_STATUS_SUCCESS     NSS_SUCCESS
-#define NSS_STATUS_NOTFOUND    NSS_NOTFOUND
-#define NSS_STATUS_UNAVAIL     NSS_UNAVAIL
-#define NSS_STATUS_TRYAGAIN    NSS_TRYAGAIN
-
-#ifdef HAVE_SYNCH_H
-#include <synch.h>
-#endif
-#ifdef HAVE_PTHREAD_H
-#include <pthread.h>
-#endif
-typedef enum {
-       NSS_SUCCESS,
-       NSS_NOTFOUND,
-       NSS_UNAVAIL,
-       NSS_TRYAGAIN
-} nss_status_t;
-typedef nss_status_t NSS_STATUS;
-
-struct nss_backend;
-typedef nss_status_t (*nss_backend_op_t)(struct nss_backend *, void *args);
-struct nss_backend {
-       nss_backend_op_t *ops;
-       int n_ops;
-};
-typedef struct nss_backend nss_backend_t;
-typedef int nss_dbop_t;
-
-#include <errno.h>
-#include <netdb.h>
-#include <limits.h>
-#ifndef NSS_INCLUDE_UNSAFE
-#define NSS_INCLUDE_UNSAFE      1       /* Build old, MT-unsafe interfaces, */
-#endif  /* NSS_INCLUDE_UNSAFE */
-enum nss_netgr_argn {
-       NSS_NETGR_MACHINE,
-       NSS_NETGR_USER,
-       NSS_NETGR_DOMAIN,
-       NSS_NETGR_N
-};
-enum nss_netgr_status {
-       NSS_NETGR_FOUND,
-       NSS_NETGR_NO,
-       NSS_NETGR_NOMEM
-};
-typedef unsigned nss_innetgr_argc;
-typedef char **nss_innetgr_argv;
-struct nss_innetgr_1arg {
-       nss_innetgr_argc argc;
-       nss_innetgr_argv argv;
-};
-typedef struct {
-       void *result;        /* "result" parameter to getXbyY_r() */
-       char *buffer;        /* "buffer"     "             "      */
-       int buflen;         /* "buflen"     "             "      */
-} nss_XbyY_buf_t;
-extern nss_XbyY_buf_t *_nss_XbyY_buf_alloc(int struct_size, int buffer_size);
-extern void _nss_XbyY_buf_free(nss_XbyY_buf_t *);
-union nss_XbyY_key {
-       uid_t uid;
-       gid_t gid;
-       const char *name;
-       int number;
-       struct {
-               long net;
-               int type;
-       } netaddr;
-       struct {
-               const char *addr;
-               int len;
-               int type;
-       } hostaddr;
-       struct {
-               union {
-                       const char *name;
-                       int port;
-               } serv;
-               const char *proto;
-       } serv;
-       void *ether;
-};
-typedef struct nss_XbyY_args {
-       nss_XbyY_buf_t  buf;
-       int stayopen;
-       /*
-        * Support for setXXXent(stayopen)
-        * Used only in hosts, protocols,
-        * networks, rpc, and services.
-        */
-       int (*str2ent)(const char *instr, int instr_len, void *ent, char *buffer, int buflen);
-       union nss_XbyY_key key;
-       void *returnval;
-       int erange;
-       int h_errno;
-       nss_status_t status;
-} nss_XbyY_args_t;
-#endif /* _WINBIND_NSS_HPUX_H */
diff --git a/source3/nsswitch/winbind_nss_netbsd.h b/source3/nsswitch/winbind_nss_netbsd.h
deleted file mode 100644 (file)
index dceb57c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   NetBSD loadable authentication module, providing identification 
-   routines against Samba winbind/Windows NT Domain
-
-   Copyright (C) Luke Mewburn 2004-2005
-  
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _WINBIND_NSS_NETBSD_H
-#define _WINBIND_NSS_NETBSD_H
-
-#include <nsswitch.h>
-
-       /* dynamic nsswitch with "new" getpw* nsdispatch API available */
-#if defined(NSS_MODULE_INTERFACE_VERSION) && defined(HAVE_GETPWENT_R)
-
-typedef int NSS_STATUS;
-
-#define NSS_STATUS_SUCCESS     NS_SUCCESS
-#define NSS_STATUS_NOTFOUND    NS_NOTFOUND
-#define NSS_STATUS_UNAVAIL     NS_UNAVAIL
-#define NSS_STATUS_TRYAGAIN    NS_TRYAGAIN
-
-#endif /* NSS_MODULE_INTERFACE_VERSION && HAVE_GETPWENT_R */
-
-#endif /* _WINBIND_NSS_NETBSD_H */
diff --git a/source3/nsswitch/winbind_nss_solaris.h b/source3/nsswitch/winbind_nss_solaris.h
deleted file mode 100644 (file)
index 84062db..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Winbind daemon for ntdom nss module
-
-   Copyright (C) Tim Potter 2000
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _WINBIND_NSS_SOLARIS_H
-#define _WINBIND_NSS_SOLARIS_H
-
-/* Solaris has a broken nss_common header file containing C++ reserved names. */
-#ifndef __cplusplus
-#undef class
-#undef private
-#undef public
-#undef protected
-#undef template
-#undef this
-#undef new
-#undef delete
-#undef friend
-#endif
-
-#include <nss_common.h>
-
-#ifndef __cplusplus
-#define class #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define private #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define public #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define protected #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define template #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define this #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define new #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define delete #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#define friend #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
-#endif
-
-#include <nss_dbdefs.h>
-#include <nsswitch.h>
-
-typedef nss_status_t NSS_STATUS;
-
-#define NSS_STATUS_SUCCESS     NSS_SUCCESS
-#define NSS_STATUS_NOTFOUND    NSS_NOTFOUND
-#define NSS_STATUS_UNAVAIL     NSS_UNAVAIL
-#define NSS_STATUS_TRYAGAIN    NSS_TRYAGAIN
-
-/* The solaris winbind is implemented as a wrapper around the linux
-   version. */
-
-NSS_STATUS _nss_winbind_setpwent(void);
-NSS_STATUS _nss_winbind_endpwent(void);
-NSS_STATUS _nss_winbind_getpwent_r(struct passwd* result, char* buffer,
-                                  size_t buflen, int* errnop);
-NSS_STATUS _nss_winbind_getpwuid_r(uid_t, struct passwd*, char* buffer,
-                                  size_t buflen, int* errnop);
-NSS_STATUS _nss_winbind_getpwnam_r(const char* name, struct passwd* result,
-                                  char* buffer, size_t buflen, int* errnop);
-
-NSS_STATUS _nss_winbind_setgrent(void);
-NSS_STATUS _nss_winbind_endgrent(void);
-NSS_STATUS _nss_winbind_getgrent_r(struct group* result, char* buffer,
-                                  size_t buflen, int* errnop);
-NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
-                                  struct group *result, char *buffer,
-                                  size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
-                                  struct group *result, char *buffer,
-                                  size_t buflen, int *errnop);
-
-#endif /* _WINBIND_NSS_SOLARIS_H */
index 169e5cb560b0b97f3428a898fc9c64fde684518e..7d1d00a373685a21f6d231ac03302bd201403704 100644 (file)
@@ -152,7 +152,7 @@ bool smb_io_dom_sid(const char *desc, DOM_SID *sid, prs_struct *ps, int depth)
        if(!prs_uint8 ("sid_rev_num", ps, depth, &sid->sid_rev_num))
                return False;
 
-       if(!prs_uint8 ("num_auths  ", ps, depth, &sid->num_auths))
+       if(!prs_uint8 ("num_auths  ", ps, depth, (uint8 *)&sid->num_auths))
                return False;
 
        for (i = 0; i < 6; i++)
index acc0cc88efd614d0fd002cf94175c9ec06b2953b..d549265fa11b07016504486f622ffb125f109013 100644 (file)
@@ -629,7 +629,7 @@ bool prs_uint8(const char *name, prs_struct *ps, int depth, uint8 *data8)
        else
                SCVAL(q,0,*data8);
 
-       DEBUG(5,("%s%04x %s: %02x\n", tab_depth(5,depth), ps->data_offset, name, *data8));
+       DEBUGADD(5,("%s%04x %s: %02x\n", tab_depth(5,depth), ps->data_offset, name, *data8));
 
        ps->data_offset += 1;
 
@@ -694,7 +694,7 @@ bool prs_uint16(const char *name, prs_struct *ps, int depth, uint16 *data16)
                        SSVAL(q,0,*data16);
        }
 
-       DEBUG(5,("%s%04x %s: %04x\n", tab_depth(5,depth), ps->data_offset, name, *data16));
+       DEBUGADD(5,("%s%04x %s: %04x\n", tab_depth(5,depth), ps->data_offset, name, *data16));
 
        ps->data_offset += sizeof(uint16);
 
@@ -723,7 +723,7 @@ bool prs_uint32(const char *name, prs_struct *ps, int depth, uint32 *data32)
                        SIVAL(q,0,*data32);
        }
 
-       DEBUG(5,("%s%04x %s: %08x\n", tab_depth(5,depth), ps->data_offset, name, *data32));
+       DEBUGADD(5,("%s%04x %s: %08x\n", tab_depth(5,depth), ps->data_offset, name, *data32));
 
        ps->data_offset += sizeof(uint32);
 
@@ -752,7 +752,7 @@ bool prs_int32(const char *name, prs_struct *ps, int depth, int32 *data32)
                        SIVALS(q,0,*data32);
        }
 
-       DEBUG(5,("%s%04x %s: %08x\n", tab_depth(5,depth), ps->data_offset, name, *data32));
+       DEBUGADD(5,("%s%04x %s: %08x\n", tab_depth(5,depth), ps->data_offset, name, *data32));
 
        ps->data_offset += sizeof(int32);
 
@@ -781,7 +781,7 @@ bool prs_ntstatus(const char *name, prs_struct *ps, int depth, NTSTATUS *status)
                        SIVAL(q,0,NT_STATUS_V(*status));
        }
 
-       DEBUG(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name, 
+       DEBUGADD(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name,
                 nt_errstr(*status)));
 
        ps->data_offset += sizeof(uint32);
@@ -811,7 +811,7 @@ bool prs_dcerpc_status(const char *name, prs_struct *ps, int depth, NTSTATUS *st
                        SIVAL(q,0,NT_STATUS_V(*status));
        }
 
-       DEBUG(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name, 
+       DEBUGADD(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name,
                 dcerpc_errstr(debug_ctx(), NT_STATUS_V(*status))));
 
        ps->data_offset += sizeof(uint32);
@@ -842,7 +842,7 @@ bool prs_werror(const char *name, prs_struct *ps, int depth, WERROR *status)
                        SIVAL(q,0,W_ERROR_V(*status));
        }
 
-       DEBUG(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name, 
+       DEBUGADD(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name,
                 win_errstr(*status)));
 
        ps->data_offset += sizeof(uint32);
@@ -870,14 +870,14 @@ bool prs_uint8s(bool charmode, const char *name, prs_struct *ps, int depth, uint
                        SCVAL(q, i, data8s[i]);
        }
 
-       DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset ,name));
+       DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset ,name));
        if (charmode)
                print_asc(5, (unsigned char*)data8s, len);
        else {
                for (i = 0; i < len; i++)
-                       DEBUG(5,("%02x ", data8s[i]));
+                       DEBUGADD(5,("%02x ", data8s[i]));
        }
-       DEBUG(5,("\n"));
+       DEBUGADD(5,("\n"));
 
        ps->data_offset += len;
 
@@ -913,14 +913,14 @@ bool prs_uint16s(bool charmode, const char *name, prs_struct *ps, int depth, uin
                }
        }
 
-       DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
+       DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
        if (charmode)
                print_asc(5, (unsigned char*)data16s, 2*len);
        else {
                for (i = 0; i < len; i++)
-                       DEBUG(5,("%04x ", data16s[i]));
+                       DEBUGADD(5,("%04x ", data16s[i]));
        }
-       DEBUG(5,("\n"));
+       DEBUGADD(5,("\n"));
 
        ps->data_offset += (len * sizeof(uint16));
 
@@ -955,14 +955,14 @@ static void dbg_rw_punival(bool charmode, const char *name, int depth, prs_struc
                }
        }
 
-       DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
+       DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
        if (charmode)
                print_asc(5, (unsigned char*)out_buf, 2*len);
        else {
                for (i = 0; i < len; i++)
-                       DEBUG(5,("%04x ", out_buf[i]));
+                       DEBUGADD(5,("%04x ", out_buf[i]));
        }
-       DEBUG(5,("\n"));
+       DEBUGADD(5,("\n"));
 }
 
 /******************************************************************
@@ -1010,14 +1010,14 @@ bool prs_uint32s(bool charmode, const char *name, prs_struct *ps, int depth, uin
                }
        }
 
-       DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
+       DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
        if (charmode)
                print_asc(5, (unsigned char*)data32s, 4*len);
        else {
                for (i = 0; i < len; i++)
-                       DEBUG(5,("%08x ", data32s[i]));
+                       DEBUGADD(5,("%08x ", data32s[i]));
        }
-       DEBUG(5,("\n"));
+       DEBUGADD(5,("\n"));
 
        ps->data_offset += (len * sizeof(uint32));
 
@@ -1078,7 +1078,7 @@ bool prs_string2(bool charmode, const char *name, prs_struct *ps, int depth, STR
                } else {
                        str->buffer = NULL;
                        /* Return early to ensure Coverity isn't confused. */
-                       DEBUG(5,("%s%04x %s: \n", tab_depth(5,depth), ps->data_offset, name));
+                       DEBUGADD(5,("%s%04x %s: \n", tab_depth(5,depth), ps->data_offset, name));
                        return True;
                }
        }
@@ -1091,14 +1091,14 @@ bool prs_string2(bool charmode, const char *name, prs_struct *ps, int depth, STR
                        SCVAL(q, i, str->buffer[i]);
        }
 
-       DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
+       DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
        if (charmode)
                print_asc(5, (unsigned char*)str->buffer, str->str_str_len);
        else {
                for (i = 0; i < str->str_str_len; i++)
                        DEBUG(5,("%02x ", str->buffer[i]));
        }
-       DEBUG(5,("\n"));
+       DEBUGADD(5,("\n"));
 
        ps->data_offset += str->str_str_len;
 
@@ -1227,9 +1227,9 @@ bool prs_unistr(const char *name, prs_struct *ps, int depth, UNISTR *str)
 
                len++;
 
-               DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
+               DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
                print_asc(5, (unsigned char*)start, 2*len);     
-               DEBUG(5, ("\n"));
+               DEBUGADD(5, ("\n"));
        }
        else { /* unmarshalling */
        
@@ -1284,9 +1284,9 @@ bool prs_unistr(const char *name, prs_struct *ps, int depth, UNISTR *str)
                        str->buffer[len++] = '\0';
                }
 
-               DEBUG(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
+               DEBUGADD(5,("%s%04x %s: ", tab_depth(5,depth), ps->data_offset, name));
                print_asc(5, (unsigned char*)str->buffer, 2*len);       
-               DEBUG(5, ("\n"));
+               DEBUGADD(5, ("\n"));
        }
 
        /* set the offset in the prs_struct; 'len' points to the
index 9ef3d71fd03f78c8c5fe1735f7d0b710af3746fd..34d03de1584b21aac0d61f8876d0c4dac05edbad 100644 (file)
@@ -35,7 +35,7 @@ m4_include(../lib/util/time.m4)
 m4_include(../lib/popt/samba.m4)
 m4_include(../lib/util/charset/config.m4)
 m4_include(lib/socket/config.m4)
-m4_include(nsswitch/nsstest.m4)
+m4_include(../nsswitch/nsstest.m4)
 m4_include(../pidl/config.m4)
 AC_ZLIB([
 SMB_EXT_LIB(ZLIB, [${ZLIB_LIBS}])
@@ -119,7 +119,7 @@ m4_include(ntvfs/unixuid/config.m4)
 m4_include(auth/config.m4)
 m4_include(kdc/config.m4)
 m4_include(ntvfs/sysdep/config.m4)
-m4_include(nsswitch/config.m4)
+m4_include(../nsswitch/config.m4)
 
 dnl Samba 4 files
 AC_SUBST(LD)
index 38d1ec2e192f3b4e09797246fcc0fbec64d82c98..8962d6b5de2c70b77d8f974632992d77a0dcad4f 100644 (file)
@@ -36,6 +36,8 @@ SAMBA4_CFLAGS = -I.. -I$(samba4srcdir) -I$(samba4srcdir)/include \
 # overrides are not specified first.
 ifeq ($(MAKE_VERSION),3.81)
 %.o: CFLAGS+=$(FLAGS)
+../librpc/gen_ndr/%_c.o: CFLAGS=$(SAMBA4_CFLAGS)
+../librpc/gen_ndr/py_%.o: CFLAGS=$(SAMBA4_CFLAGS)
 $(samba4srcdir)/%.o: CFLAGS=$(SAMBA4_CFLAGS)
 $(samba4srcdir)/%.ho: CFLAGS=$(SAMBA4_CFLAGS)
 $(heimdalsrcdir)/%.o: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir)
@@ -45,6 +47,8 @@ $(heimdalsrcdir)/%.o: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir
 $(heimdalsrcdir)/%.ho: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir)
 $(samba4srcdir)/%.o: CFLAGS=$(SAMBA4_CFLAGS)
 $(samba4srcdir)/%.ho: CFLAGS=$(SAMBA4_CFLAGS)
+../librpc/gen_ndr/%_c.o: CFLAGS=$(SAMBA4_CFLAGS)
+../librpc/gen_ndr/py_%.o: CFLAGS=$(SAMBA4_CFLAGS)
 %.o: CFLAGS+=$(FLAGS)
 endif
 
@@ -70,7 +74,7 @@ smbdsrcdir := $(samba4srcdir)/smbd
 clustersrcdir := $(samba4srcdir)/cluster
 libnetsrcdir := $(samba4srcdir)/libnet
 authsrcdir := $(samba4srcdir)/auth
-nsswitchsrcdir := $(samba4srcdir)/nsswitch
+nsswitchsrcdir := $(samba4srcdir)/../nsswitch
 libsrcdir := $(samba4srcdir)/lib
 libsocketsrcdir := $(samba4srcdir)/lib/socket
 libcharsetsrcdir := $(samba4srcdir)/../lib/util/charset
@@ -161,7 +165,7 @@ modules:: $(PLUGINS)
 
 pythonmods:: $(PYTHON_PYS) $(PYTHON_SO)
 
-all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4 pythonmods setup
+all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4 bin/wbinfo4 pythonmods setup
 torture:: bin/smbtorture4
 everything:: $(patsubst %,%4,$(BINARIES))
 setup:
index 34f262ee0063496a8ae88d3106d5c0f22bb0134b..0f4908114edba03311050e72f4b5f0247d812ff7 100755 (executable)
@@ -1,12 +1,12 @@
 #!/bin/sh
 
-ARGS="--includedir=../librpc/idl --outputdir librpc/gen_ndr --header --ndr-parser --samba3-ndr-server --samba3-ndr-client $PIDL_ARGS --"
+ARGS="--includedir=../librpc/idl --outputdir $PIDL_OUTPUTDIR --header --ndr-parser --samba3-ndr-server --samba3-ndr-client $PIDL_ARGS --"
 IDL_FILES="$*"
 
 oldpwd=`pwd`
 cd ${srcdir}
 
-[ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1
+[ -d $PIDL_OUTPUTDIR ] || mkdir -p $PIDL_OUTPUTDIR || exit 1
 
 PIDL="$PIDL $ARGS"
 
@@ -17,7 +17,7 @@ PIDL="$PIDL $ARGS"
 list=""
 for f in ${IDL_FILES}; do
        basename=`basename $f .idl`
-       ndr="librpc/gen_ndr/ndr_$basename.c"
+       ndr="$PIDL_OUTPUTDIR/ndr_$basename.c"
 
        if [ -f $ndr ]; then
                if [ "x`find $f -newer $ndr -print`" = "x$f" ]; then
index 4e355e48b35e8ae9ae5039f241578487567c526b..4e4debda5eb64412a2f482e68410b161ec90cb8a 100644 (file)
@@ -28,16 +28,15 @@ int net_status_usage(struct net_context *c, int argc, const char **argv)
        return -1;
 }
 
-static int show_session(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
-                       void *state)
+static int show_session(struct db_record *rec, void *private_data)
 {
-       bool *parseable = (bool *)state;
+       bool *parseable = (bool *)private_data;
        struct sessionid sessionid;
 
-       if (dbuf.dsize != sizeof(sessionid))
+       if (rec->value.dsize != sizeof(sessionid))
                return 0;
 
-       memcpy(&sessionid, dbuf.dptr, sizeof(sessionid));
+       memcpy(&sessionid, rec->value.dptr, sizeof(sessionid));
 
        if (!process_exists(sessionid.pid)) {
                return 0;
@@ -60,7 +59,7 @@ static int show_session(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
 
 static int net_status_sessions(struct net_context *c, int argc, const char **argv)
 {
-       TDB_CONTEXT *tdb;
+       struct db_context *db;
        bool parseable;
 
        if (c->display_usage) {
@@ -87,16 +86,15 @@ static int net_status_sessions(struct net_context *c, int argc, const char **arg
                         "------------------------\n");
        }
 
-       tdb = tdb_open_log(lock_path("sessionid.tdb"), 0,
-                          TDB_DEFAULT, O_RDONLY, 0);
-
-       if (tdb == NULL) {
+       db = db_open(NULL, lock_path("sessionid.tdb"), 0,
+                    TDB_CLEAR_IF_FIRST, O_RDONLY, 0644);
+       if (db == NULL) {
                d_fprintf(stderr, "%s not initialised\n", lock_path("sessionid.tdb"));
                return -1;
        }
 
-       tdb_traverse(tdb, show_session, &parseable);
-       tdb_close(tdb);
+       db->traverse_read(db, show_session, &parseable);
+       TALLOC_FREE(db);
 
        return 0;
 }
@@ -126,16 +124,15 @@ struct sessionids {
        struct sessionid *entries;
 };
 
-static int collect_pid(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
-                      void *state)
+static int collect_pid(struct db_record *rec, void *private_data)
 {
-       struct sessionids *ids = (struct sessionids *)state;
+       struct sessionids *ids = (struct sessionids *)private_data;
        struct sessionid sessionid;
 
-       if (dbuf.dsize != sizeof(sessionid))
+       if (rec->value.dsize != sizeof(sessionid))
                return 0;
 
-       memcpy(&sessionid, dbuf.dptr, sizeof(sessionid));
+       memcpy(&sessionid, rec->value.dptr, sizeof(sessionid));
 
        if (!process_exists(sessionid.pid))
                return 0;
@@ -189,21 +186,20 @@ static int show_share_parseable(struct db_record *rec,
 static int net_status_shares_parseable(struct net_context *c, int argc, const char **argv)
 {
        struct sessionids ids;
-       TDB_CONTEXT *tdb;
+       struct db_context *db;
 
        ids.num_entries = 0;
        ids.entries = NULL;
 
-       tdb = tdb_open_log(lock_path("sessionid.tdb"), 0,
-                          TDB_DEFAULT, O_RDONLY, 0);
-
-       if (tdb == NULL) {
+       db = db_open(NULL, lock_path("sessionid.tdb"), 0,
+                    TDB_CLEAR_IF_FIRST, O_RDONLY, 0644);
+       if (db == NULL) {
                d_fprintf(stderr, "%s not initialised\n", lock_path("sessionid.tdb"));
                return -1;
        }
 
-       tdb_traverse(tdb, collect_pid, &ids);
-       tdb_close(tdb);
+       db->traverse_read(db, collect_pid, &ids);
+       TALLOC_FREE(db);
 
        connections_forall(show_share_parseable, &ids);
 
index 38eb0706c9e540d9a6d63047ab18509b749d61f9..8899cde2d22ab05681699082dd778fbd465183b4 100644 (file)
@@ -56,7 +56,7 @@ smbdsrcdir := smbd
 clustersrcdir := cluster
 libnetsrcdir := libnet
 authsrcdir := auth
-nsswitchsrcdir := nsswitch
+nsswitchsrcdir := ../nsswitch
 libsrcdir := lib
 libsocketsrcdir := lib/socket
 libcharsetsrcdir := ../lib/util/charset
index c09d10900b99f532e30a9b5cf6610c375a818fdd..b3fc9c2caf19f3cb3ea1c24c5d3e4d952c157db5 100644 (file)
@@ -23,7 +23,7 @@
 #include "cluster/cluster.h"
 #include "cluster/cluster_private.h"
 #include "librpc/gen_ndr/misc.h"
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 static struct cluster_ops *ops;
 
index d0ceef4ad1bc8a3f8ed33f0f8ad8e89dc46933bb..1c9631998698d3c54c4c2fcdc366d0cd2b97d127 100644 (file)
@@ -29,7 +29,7 @@
 #include "tdb_wrap.h"
 #include "../lib/util/dlinklist.h"
 #include "param/param.h"
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 #include "cluster/ctdb/ctdb_cluster.h"
 
 /* a linked list of messaging handlers, allowing incoming messages
index 5b872a3e2ec47bb0f415fb8927062f4a0ddfd409..f36a06c9b679de2f1c7f49a51173dcc11d96d49d 100644 (file)
@@ -26,7 +26,7 @@
 #include "tdb_wrap.h"
 #include "system/filesys.h"
 #include "param/param.h"
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /*
   server a server_id for the local node
index a90ac9e66801fa2b83c47e109cfd4d429d7a5452..53e093e8134e15af76759efc160fed0f4f49f7a3 100644 (file)
@@ -30,7 +30,7 @@ SMB_EXT_LIB(ZLIB, [${ZLIB_LIBS}])
 ],[
 SMB_INCLUDE_MK(lib/zlib.mk)
 ])
-m4_include(nsswitch/nsstest.m4)
+m4_include(../nsswitch/nsstest.m4)
 m4_include(../pidl/config.m4)
 
 AC_CONFIG_FILES(lib/registry/registry.pc)
@@ -108,7 +108,7 @@ m4_include(../lib/nss_wrapper/config.m4)
 m4_include(auth/config.m4)
 m4_include(kdc/config.m4)
 m4_include(ntvfs/sysdep/config.m4)
-m4_include(nsswitch/config.m4)
+m4_include(../nsswitch/config.m4)
 
 #################################################
 # add *_CFLAGS only for the real build
index 4a34c1c998d981d48f0194341748ec1e92c11d94..e290b851f381916a2c4f7757418aa8d543a73d02 100644 (file)
@@ -2684,7 +2684,7 @@ SWIGINTERN ldb_dn *new_ldb_dn(ldb *ldb_ctx,char const *str){
                we do it this way... */
             talloc_steal(NULL, ret);
 
-            if (ret == NULL)
+            if (ret == NULL || !ldb_dn_validate(ret))
                 SWIG_exception(SWIG_ValueError, 
                                 "unable to parse dn string");
 fail:
index 65e98dce2c29d8fb396e00589fa00b1eaf745f36..3527f10648796a6c5dff2fbe0f1f89464f212bf4 100644 (file)
@@ -23,6 +23,7 @@
 #define IRPC_H
 
 #include "librpc/gen_ndr/irpc.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /*
   an incoming irpc message
index 65c473779fb1d4ff23cd7df0fa2df222bc5a9e66..475d14ec4d76f0a4ceb4f3290e88bef22756c538 100644 (file)
@@ -8,7 +8,7 @@ dcerpcsrcdir = $(librpcsrcdir)/rpc
 PUBLIC_DEPENDENCIES = LIBSAMBA-ERRORS LIBTALLOC LIBSAMBA-UTIL CHARSET \
                                          LIBSAMBA-HOSTCONFIG
 
-LIBNDR_OBJ_FILES = $(addprefix $(ndrsrcdir)/, ndr_string.o) ../librpc/ndr/ndr_basic.o ../librpc/ndr/uuid.o ../librpc/ndr/ndr.o $(gen_ndrsrcdir)/ndr_misc.o ../librpc/ndr/ndr_misc.o
+LIBNDR_OBJ_FILES = $(addprefix $(ndrsrcdir)/, ndr_string.o) ../librpc/ndr/ndr_basic.o ../librpc/ndr/uuid.o ../librpc/ndr/ndr.o ../librpc/gen_ndr/ndr_misc.o ../librpc/ndr/ndr_misc.o
 
 PC_FILES += ../librpc/ndr.pc
 LIBNDR_VERSION = 0.0.1
@@ -18,7 +18,7 @@ LIBNDR_SOVERSION = 0
 ################################################
 
 PUBLIC_HEADERS += ../librpc/ndr/libndr.h
-PUBLIC_HEADERS += $(gen_ndrsrcdir)/misc.h $(gen_ndrsrcdir)/ndr_misc.h
+PUBLIC_HEADERS += ../librpc/gen_ndr/misc.h ../librpc/gen_ndr/ndr_misc.h
 
 #################################
 # Start BINARY ndrdump
@@ -52,27 +52,27 @@ NDR_COMPRESSION_OBJ_FILES = ../librpc/ndr/ndr_compression.o
 [SUBSYSTEM::NDR_SECURITY]
 PUBLIC_DEPENDENCIES = LIBNDR LIBSECURITY
 
-NDR_SECURITY_OBJ_FILES = $(gen_ndrsrcdir)/ndr_security.o \
+NDR_SECURITY_OBJ_FILES = ../librpc/gen_ndr/ndr_security.o \
                         ../librpc/ndr/ndr_sec_helper.o \
-                        $(gen_ndrsrcdir)/ndr_dom_sid.o
+                        $(gen_ndrsrcdir)/ndr_server_id.o
 
-PUBLIC_HEADERS += $(addprefix $(gen_ndrsrcdir)/, security.h)
+PUBLIC_HEADERS += ../librpc/gen_ndr/security.h)
 
 
 [SUBSYSTEM::NDR_AUDIOSRV]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_AUDIOSRV_OBJ_FILES = $(gen_ndrsrcdir)/ndr_audiosrv.o
+NDR_AUDIOSRV_OBJ_FILES = ../librpc/gen_ndr/ndr_audiosrv.o
 
 [SUBSYSTEM::NDR_NAMED_PIPE_AUTH]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_NAMED_PIPE_AUTH_OBJ_FILES = $(gen_ndrsrcdir)/ndr_named_pipe_auth.o
+NDR_NAMED_PIPE_AUTH_OBJ_FILES = ../librpc/gen_ndr/ndr_named_pipe_auth.o
 
 [SUBSYSTEM::NDR_DNSSERVER]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_DNSSERVER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dnsserver.o
+NDR_DNSSERVER_OBJ_FILES = ../librpc/gen_ndr/ndr_dnsserver.o
 
 [SUBSYSTEM::NDR_WINSTATION]
 PUBLIC_DEPENDENCIES = LIBNDR
@@ -82,7 +82,7 @@ NDR_WINSTATION_OBJ_FILES = $(gen_ndrsrcdir)/ndr_winstation.o
 [SUBSYSTEM::NDR_ECHO]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_ECHO_OBJ_FILES = $(gen_ndrsrcdir)/ndr_echo.o
+NDR_ECHO_OBJ_FILES = ../librpc/gen_ndr/ndr_echo.o
 
 [SUBSYSTEM::NDR_IRPC]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY NDR_NBT
@@ -92,59 +92,59 @@ NDR_IRPC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_irpc.o
 [SUBSYSTEM::NDR_DCOM]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY NDR_ORPC
 
-NDR_DCOM_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dcom.o
+NDR_DCOM_OBJ_FILES = ../librpc/gen_ndr/ndr_dcom.o
 
 [SUBSYSTEM::NDR_WMI]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY NDR_DCOM
 
-NDR_WMI_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wmi.o ../librpc/ndr/ndr_wmi.o
+NDR_WMI_OBJ_FILES = ../librpc/gen_ndr/ndr_wmi.o ../librpc/ndr/ndr_wmi.o
 
 [SUBSYSTEM::NDR_DSBACKUP]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_DSBACKUP_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dsbackup.o
+NDR_DSBACKUP_OBJ_FILES = ../librpc/gen_ndr/ndr_dsbackup.o
 
 [SUBSYSTEM::NDR_EFS]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
-NDR_EFS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_efs.o
+NDR_EFS_OBJ_FILES = ../librpc/gen_ndr/ndr_efs.o
 
 [SUBSYSTEM::NDR_ROT]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC
 
-NDR_ROT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_rot.o
+NDR_ROT_OBJ_FILES = ../librpc/gen_ndr/ndr_rot.o
 
 [SUBSYSTEM::NDR_LSA]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
-NDR_LSA_OBJ_FILES = $(gen_ndrsrcdir)/ndr_lsa.o
+NDR_LSA_OBJ_FILES = ../librpc/gen_ndr/ndr_lsa.o
 
-PUBLIC_HEADERS += $(gen_ndrsrcdir)/lsa.h
+PUBLIC_HEADERS += ../librpc/gen_ndr/lsa.h
 
 [SUBSYSTEM::NDR_DFS]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_DFS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dfs.o
+NDR_DFS_OBJ_FILES = ../librpc/gen_ndr/ndr_dfs.o
 
 [SUBSYSTEM::NDR_FRSRPC]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_FRSRPC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_frsrpc.o
+NDR_FRSRPC_OBJ_FILES = ../librpc/gen_ndr/ndr_frsrpc.o
 
 [SUBSYSTEM::NDR_FRSAPI]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_FRSAPI_OBJ_FILES = $(gen_ndrsrcdir)/ndr_frsapi.o
+NDR_FRSAPI_OBJ_FILES = ../librpc/gen_ndr/ndr_frsapi.o
 
 [SUBSYSTEM::NDR_DRSUAPI]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_COMPRESSION NDR_SECURITY NDR_SAMR ASN1_UTIL
 
-NDR_DRSUAPI_OBJ_FILES = $(gen_ndrsrcdir)/ndr_drsuapi.o ../librpc/ndr/ndr_drsuapi.o
+NDR_DRSUAPI_OBJ_FILES = ../librpc/gen_ndr/ndr_drsuapi.o ../librpc/ndr/ndr_drsuapi.o
 
 [SUBSYSTEM::NDR_DRSBLOBS]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_DRSUAPI
 
-NDR_DRSBLOBS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_drsblobs.o ../librpc/ndr/ndr_drsblobs.o
+NDR_DRSBLOBS_OBJ_FILES = ../librpc/gen_ndr/ndr_drsblobs.o ../librpc/ndr/ndr_drsblobs.o
 
 [SUBSYSTEM::NDR_SASL_HELPERS]
 PUBLIC_DEPENDENCIES = LIBNDR
@@ -154,17 +154,17 @@ NDR_SASL_HELPERS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_sasl_helpers.o
 [SUBSYSTEM::NDR_POLICYAGENT]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_POLICYAGENT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_policyagent.o
+NDR_POLICYAGENT_OBJ_FILES = ../librpc/gen_ndr/ndr_policyagent.o
 
 [SUBSYSTEM::NDR_UNIXINFO]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
-NDR_UNIXINFO_OBJ_FILES = $(gen_ndrsrcdir)/ndr_unixinfo.o
+NDR_UNIXINFO_OBJ_FILES = ../librpc/gen_ndr/ndr_unixinfo.o
 
 [SUBSYSTEM::NDR_SAMR]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_LSA NDR_SECURITY
 
-NDR_SAMR_OBJ_FILES = $(gen_ndrsrcdir)/ndr_samr.o
+NDR_SAMR_OBJ_FILES = ../librpc/gen_ndr/ndr_samr.o
 
 PUBLIC_HEADERS += $(addprefix $(librpcsrcdir)/, gen_ndr/samr.h gen_ndr/ndr_samr.h gen_ndr/ndr_samr_c.h)
 
@@ -176,7 +176,7 @@ NDR_NFS4ACL_OBJ_FILES = $(gen_ndrsrcdir)/ndr_nfs4acl.o
 [SUBSYSTEM::NDR_SPOOLSS]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SPOOLSS_BUF NDR_SECURITY
 
-NDR_SPOOLSS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_spoolss.o
+NDR_SPOOLSS_OBJ_FILES = ../librpc/gen_ndr/ndr_spoolss.o
 
 [SUBSYSTEM::NDR_SPOOLSS_BUF]
 
@@ -187,51 +187,51 @@ $(eval $(call proto_header_template,$(ndrsrcdir)/ndr_spoolss_buf.h,$(NDR_SPOOLSS
 [SUBSYSTEM::NDR_WKSSVC]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SRVSVC NDR_SECURITY
 
-NDR_WKSSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wkssvc.o
+NDR_WKSSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_wkssvc.o
 
 [SUBSYSTEM::NDR_SRVSVC]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SVCCTL NDR_SECURITY
 
-NDR_SRVSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_srvsvc.o
+NDR_SRVSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_srvsvc.o
 
 [SUBSYSTEM::NDR_SVCCTL]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_SVCCTL_OBJ_FILES = $(gen_ndrsrcdir)/ndr_svcctl.o
+NDR_SVCCTL_OBJ_FILES = ../librpc/gen_ndr/ndr_svcctl.o
 
 PUBLIC_HEADERS += $(addprefix $(librpcsrcdir)/, gen_ndr/ndr_svcctl.h gen_ndr/svcctl.h)
 
 [SUBSYSTEM::NDR_ATSVC]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_ATSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_atsvc.o
+NDR_ATSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_atsvc.o
 
-PUBLIC_HEADERS += $(addprefix $(librpcsrcdir)/, gen_ndr/atsvc.h gen_ndr/ndr_atsvc.h)
+PUBLIC_HEADERS += $(addprefix ../librpc/gen_ndr, atsvc.h ndr_atsvc.h)
 
 [SUBSYSTEM::NDR_EVENTLOG]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_LSA
 
-NDR_EVENTLOG_OBJ_FILES = $(gen_ndrsrcdir)/ndr_eventlog.o
+NDR_EVENTLOG_OBJ_FILES = ../librpc/gen_ndr/ndr_eventlog.o
 
 [SUBSYSTEM::NDR_EPMAPPER]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_EPMAPPER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_epmapper.o
+NDR_EPMAPPER_OBJ_FILES = ../librpc/gen_ndr/ndr_epmapper.o
 
 [SUBSYSTEM::NDR_DBGIDL]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_DBGIDL_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dbgidl.o
+NDR_DBGIDL_OBJ_FILES = ../librpc/gen_ndr/ndr_dbgidl.o
 
 [SUBSYSTEM::NDR_DSSETUP]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_DSSETUP_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dssetup.o
+NDR_DSSETUP_OBJ_FILES = ../librpc/gen_ndr/ndr_dssetup.o
 
 [SUBSYSTEM::NDR_MSGSVC]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_MSGSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_msgsvc.o
+NDR_MSGSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_msgsvc.o
 
 [SUBSYSTEM::NDR_WINS]
 PUBLIC_DEPENDENCIES = LIBNDR
@@ -241,89 +241,89 @@ NDR_WINS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wins.o
 [SUBSYSTEM::NDR_WINREG]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_INITSHUTDOWN NDR_SECURITY
 
-NDR_WINREG_OBJ_FILES = $(gen_ndrsrcdir)/ndr_winreg.o
+NDR_WINREG_OBJ_FILES = ../librpc/gen_ndr/ndr_winreg.o
 
 [SUBSYSTEM::NDR_INITSHUTDOWN]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_INITSHUTDOWN_OBJ_FILES = $(gen_ndrsrcdir)/ndr_initshutdown.o
+NDR_INITSHUTDOWN_OBJ_FILES = ../librpc/gen_ndr/ndr_initshutdown.o
 
 [SUBSYSTEM::NDR_MGMT]
 PUBLIC_DEPENDENCIES = LIBNDR 
 
-NDR_MGMT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_mgmt.o
+NDR_MGMT_OBJ_FILES = ../librpc/gen_ndr/ndr_mgmt.o
 
 [SUBSYSTEM::NDR_PROTECTED_STORAGE]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_PROTECTED_STORAGE_OBJ_FILES = $(gen_ndrsrcdir)/ndr_protected_storage.o
+NDR_PROTECTED_STORAGE_OBJ_FILES = ../librpc/gen_ndr/ndr_protected_storage.o
 
 [SUBSYSTEM::NDR_ORPC]
 PUBLIC_DEPENDENCIES = LIBNDR 
 
-NDR_ORPC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_orpc.o ../librpc/ndr/ndr_orpc.o 
+NDR_ORPC_OBJ_FILES = ../librpc/gen_ndr/ndr_orpc.o ../librpc/ndr/ndr_orpc.o 
 
 [SUBSYSTEM::NDR_OXIDRESOLVER]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC
 
-NDR_OXIDRESOLVER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_oxidresolver.o
+NDR_OXIDRESOLVER_OBJ_FILES = ../librpc/gen_ndr/ndr_oxidresolver.o
 
 [SUBSYSTEM::NDR_REMACT]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_ORPC
 
-NDR_REMACT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_remact.o
+NDR_REMACT_OBJ_FILES = ../librpc/gen_ndr/ndr_remact.o
 
 [SUBSYSTEM::NDR_WZCSVC]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_WZCSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wzcsvc.o
+NDR_WZCSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_wzcsvc.o
 
 [SUBSYSTEM::NDR_BROWSER]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_BROWSER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_browser.o
+NDR_BROWSER_OBJ_FILES = ../librpc/gen_ndr/ndr_browser.o
 
 [SUBSYSTEM::NDR_W32TIME]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_W32TIME_OBJ_FILES = $(gen_ndrsrcdir)/ndr_w32time.o
+NDR_W32TIME_OBJ_FILES = ../librpc/gen_ndr/ndr_w32time.o
 
 [SUBSYSTEM::NDR_SCERPC]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_SCERPC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_scerpc.o
+NDR_SCERPC_OBJ_FILES = ../librpc/gen_ndr/ndr_scerpc.o
 
 [SUBSYSTEM::NDR_NTSVCS]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_NTSVCS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_ntsvcs.o
+NDR_NTSVCS_OBJ_FILES = ../librpc/gen_ndr/ndr_ntsvcs.o
 
 [SUBSYSTEM::NDR_NETLOGON]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SAMR NDR_LSA NDR_SECURITY
 
-NDR_NETLOGON_OBJ_FILES = $(gen_ndrsrcdir)/ndr_netlogon.o ../librpc/ndr/ndr_netlogon.o
+NDR_NETLOGON_OBJ_FILES = ../librpc/gen_ndr/ndr_netlogon.o ../librpc/ndr/ndr_netlogon.o
 
-PUBLIC_HEADERS += $(addprefix $(librpcsrcdir)/, gen_ndr/netlogon.h)
+PUBLIC_HEADERS += ../librpc/gen_ndr/netlogon.h
 
 [SUBSYSTEM::NDR_TRKWKS]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_TRKWKS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_trkwks.o
+NDR_TRKWKS_OBJ_FILES = ../librpc/gen_ndr/ndr_trkwks.o
 
 [SUBSYSTEM::NDR_KEYSVC]
 PUBLIC_DEPENDENCIES = LIBNDR
 
-NDR_KEYSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_keysvc.o
+NDR_KEYSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_keysvc.o
 
 [SUBSYSTEM::NDR_KRB5PAC]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_NETLOGON NDR_SECURITY
 
-NDR_KRB5PAC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_krb5pac.o ../librpc/ndr/ndr_krb5pac.o
+NDR_KRB5PAC_OBJ_FILES = ../librpc/gen_ndr/ndr_krb5pac.o ../librpc/ndr/ndr_krb5pac.o
 
 [SUBSYSTEM::NDR_XATTR]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_SECURITY
 
-NDR_XATTR_OBJ_FILES = $(gen_ndrsrcdir)/ndr_xattr.o
+NDR_XATTR_OBJ_FILES = ../librpc/gen_ndr/ndr_xattr.o
 
 [SUBSYSTEM::NDR_OPENDB]
 PUBLIC_DEPENDENCIES = LIBNDR
@@ -343,9 +343,9 @@ NDR_SCHANNEL_OBJ_FILES = $(gen_ndrsrcdir)/ndr_schannel.o
 [SUBSYSTEM::NDR_NBT]
 PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT_BUF NDR_SVCCTL NDR_SECURITY NDR_SAMR LIBCLI_NDR_NETLOGON
 
-NDR_NBT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_nbt.o
+NDR_NBT_OBJ_FILES = ../librpc/gen_ndr/ndr_nbt.o
 
-PUBLIC_HEADERS += $(gen_ndrsrcdir)/nbt.h
+PUBLIC_HEADERS += ../librpc/gen_ndr/nbt.h
 
 [SUBSYSTEM::NDR_NTP_SIGND]
 PUBLIC_DEPENDENCIES = LIBNDR 
@@ -395,62 +395,62 @@ NDR_TABLE_OBJ_FILES = ../librpc/ndr/ndr_table.o $(gen_ndrsrcdir)/tables.o
 [SUBSYSTEM::RPC_NDR_ROT]
 PUBLIC_DEPENDENCIES = NDR_ROT dcerpc
 
-RPC_NDR_ROT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_rot_c.o
+RPC_NDR_ROT_OBJ_FILES = ../librpc/gen_ndr/ndr_rot_c.o
 
 [SUBSYSTEM::RPC_NDR_AUDIOSRV]
 PUBLIC_DEPENDENCIES = NDR_AUDIOSRV dcerpc
 
-RPC_NDR_AUDIOSRV_OBJ_FILES = $(gen_ndrsrcdir)/ndr_audiosrv_c.o
+RPC_NDR_AUDIOSRV_OBJ_FILES = ../librpc/gen_ndr/ndr_audiosrv_c.o
 
 [SUBSYSTEM::RPC_NDR_ECHO]
 PUBLIC_DEPENDENCIES = dcerpc NDR_ECHO
 
-RPC_NDR_ECHO_OBJ_FILES = $(gen_ndrsrcdir)/ndr_echo_c.o
+RPC_NDR_ECHO_OBJ_FILES = ../librpc/gen_ndr/ndr_echo_c.o
 
 [SUBSYSTEM::RPC_NDR_DSBACKUP]
 PUBLIC_DEPENDENCIES = dcerpc NDR_DSBACKUP
 
-RPC_NDR_DSBACKUP_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dsbackup_c.o
+RPC_NDR_DSBACKUP_OBJ_FILES = ../librpc/gen_ndr/ndr_dsbackup_c.o
 
 [SUBSYSTEM::RPC_NDR_EFS]
 PUBLIC_DEPENDENCIES = dcerpc NDR_EFS
 
-RPC_NDR_EFS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_efs_c.o
+RPC_NDR_EFS_OBJ_FILES = ../librpc/gen_ndr/ndr_efs_c.o
 
 [SUBSYSTEM::RPC_NDR_LSA]
 PUBLIC_DEPENDENCIES = dcerpc NDR_LSA
 
-RPC_NDR_LSA_OBJ_FILES = $(gen_ndrsrcdir)/ndr_lsa_c.o
+RPC_NDR_LSA_OBJ_FILES = ../librpc/gen_ndr/ndr_lsa_c.o
 
 [SUBSYSTEM::RPC_NDR_DFS]
 PUBLIC_DEPENDENCIES = dcerpc NDR_DFS
 
-RPC_NDR_DFS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dfs_c.o
+RPC_NDR_DFS_OBJ_FILES = ../librpc/gen_ndr/ndr_dfs_c.o
 
 [SUBSYSTEM::RPC_NDR_FRSAPI]
 PUBLIC_DEPENDENCIES = dcerpc NDR_FRSAPI
 
-RPC_NDR_FRSAPI_OBJ_FILES = $(gen_ndrsrcdir)/ndr_frsapi_c.o
+RPC_NDR_FRSAPI_OBJ_FILES = ../librpc/gen_ndr/ndr_frsapi_c.o
 
 [SUBSYSTEM::RPC_NDR_DRSUAPI]
 PUBLIC_DEPENDENCIES = dcerpc NDR_DRSUAPI
 
-RPC_NDR_DRSUAPI_OBJ_FILES = $(gen_ndrsrcdir)/ndr_drsuapi_c.o
+RPC_NDR_DRSUAPI_OBJ_FILES = ../librpc/gen_ndr/ndr_drsuapi_c.o
 
 [SUBSYSTEM::RPC_NDR_POLICYAGENT]
 PUBLIC_DEPENDENCIES = dcerpc NDR_POLICYAGENT
 
-RPC_NDR_POLICYAGENT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_policyagent_c.o
+RPC_NDR_POLICYAGENT_OBJ_FILES = ../librpc/gen_ndr/ndr_policyagent_c.o
 
 [SUBSYSTEM::RPC_NDR_UNIXINFO]
 PUBLIC_DEPENDENCIES = dcerpc NDR_UNIXINFO
 
-RPC_NDR_UNIXINFO_OBJ_FILES = $(gen_ndrsrcdir)/ndr_unixinfo_c.o
+RPC_NDR_UNIXINFO_OBJ_FILES = ../librpc/gen_ndr/ndr_unixinfo_c.o
 
 [SUBSYSTEM::RPC_NDR_BROWSER]
 PUBLIC_DEPENDENCIES = dcerpc NDR_BROWSER
 
-RPC_NDR_BROWSER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_browser_c.o
+RPC_NDR_BROWSER_OBJ_FILES = ../librpc/gen_ndr/ndr_browser_c.o
 
 [SUBSYSTEM::RPC_NDR_IRPC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_IRPC
@@ -464,29 +464,29 @@ PC_FILES += $(librpcsrcdir)/dcerpc_samr.pc
 
 dcerpc_samr_VERSION = 0.0.1
 dcerpc_samr_SOVERSION = 0
-dcerpc_samr_OBJ_FILES = $(gen_ndrsrcdir)/ndr_samr_c.o
+dcerpc_samr_OBJ_FILES = ../librpc/gen_ndr/ndr_samr_c.o
 
 [SUBSYSTEM::RPC_NDR_SPOOLSS]
 PUBLIC_DEPENDENCIES = dcerpc NDR_SPOOLSS
 
-RPC_NDR_SPOOLSS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_spoolss_c.o
+RPC_NDR_SPOOLSS_OBJ_FILES = ../librpc/gen_ndr/ndr_spoolss_c.o
 
 [SUBSYSTEM::RPC_NDR_WKSSVC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_WKSSVC
 
-RPC_NDR_WKSSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wkssvc_c.o
+RPC_NDR_WKSSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_wkssvc_c.o
 
 [SUBSYSTEM::RPC_NDR_SRVSVC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_SRVSVC
 
-RPC_NDR_SRVSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_srvsvc_c.o
+RPC_NDR_SRVSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_srvsvc_c.o
 
 [SUBSYSTEM::RPC_NDR_SVCCTL]
 PUBLIC_DEPENDENCIES = dcerpc NDR_SVCCTL
 
-RPC_NDR_SVCCTL_OBJ_FILES = $(gen_ndrsrcdir)/ndr_svcctl_c.o
+RPC_NDR_SVCCTL_OBJ_FILES = ../librpc/gen_ndr/ndr_svcctl_c.o
 
-PUBLIC_HEADERS += $(gen_ndrsrcdir)/ndr_svcctl_c.h
+PUBLIC_HEADERS += ../librpc/gen_ndr/ndr_svcctl_c.h
 
 [LIBRARY::dcerpc_atsvc]
 PUBLIC_DEPENDENCIES = dcerpc NDR_ATSVC
@@ -494,35 +494,35 @@ PUBLIC_DEPENDENCIES = dcerpc NDR_ATSVC
 dcerpc_atsvc_VERSION = 0.0.1
 dcerpc_atsvc_SOVERSION = 0
 
-dcerpc_atsvc_OBJ_FILES = $(gen_ndrsrcdir)/ndr_atsvc_c.o
+dcerpc_atsvc_OBJ_FILES = ../librpc/gen_ndr/ndr_atsvc_c.o
 PC_FILES += $(librpcsrcdir)/dcerpc_atsvc.pc
 
-PUBLIC_HEADERS += $(gen_ndrsrcdir)/ndr_atsvc_c.h
+PUBLIC_HEADERS += ../librpc/gen_ndr/ndr_atsvc_c.h
 
 [SUBSYSTEM::RPC_NDR_EVENTLOG]
 PUBLIC_DEPENDENCIES = dcerpc NDR_EVENTLOG
 
-RPC_NDR_EVENTLOG_OBJ_FILES = $(gen_ndrsrcdir)/ndr_eventlog_c.o
+RPC_NDR_EVENTLOG_OBJ_FILES = ../librpc/gen_ndr/ndr_eventlog_c.o
 
 [SUBSYSTEM::RPC_NDR_EPMAPPER]
 PUBLIC_DEPENDENCIES = NDR_EPMAPPER 
 
-RPC_NDR_EPMAPPER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_epmapper_c.o
+RPC_NDR_EPMAPPER_OBJ_FILES = ../librpc/gen_ndr/ndr_epmapper_c.o
 
 [SUBSYSTEM::RPC_NDR_DBGIDL]
 PUBLIC_DEPENDENCIES = dcerpc NDR_DBGIDL
 
-RPC_NDR_DBGIDL_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dbgidl_c.o
+RPC_NDR_DBGIDL_OBJ_FILES = ../librpc/gen_ndr/ndr_dbgidl_c.o
 
 [SUBSYSTEM::RPC_NDR_DSSETUP]
 PUBLIC_DEPENDENCIES = dcerpc NDR_DSSETUP
 
-RPC_NDR_DSSETUP_OBJ_FILES = $(gen_ndrsrcdir)/ndr_dssetup_c.o
+RPC_NDR_DSSETUP_OBJ_FILES = ../librpc/gen_ndr/ndr_dssetup_c.o
 
 [SUBSYSTEM::RPC_NDR_MSGSVC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_MSGSVC
 
-RPC_NDR_MSGSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_msgsvc_c.o
+RPC_NDR_MSGSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_msgsvc_c.o
 
 [SUBSYSTEM::RPC_NDR_WINS]
 PUBLIC_DEPENDENCIES = dcerpc NDR_WINS
@@ -532,67 +532,67 @@ RPC_NDR_WINS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wins_c.o
 [SUBSYSTEM::RPC_NDR_WINREG]
 PUBLIC_DEPENDENCIES = dcerpc NDR_WINREG
 
-RPC_NDR_WINREG_OBJ_FILES = $(gen_ndrsrcdir)/ndr_winreg_c.o
+RPC_NDR_WINREG_OBJ_FILES = ../librpc/gen_ndr/ndr_winreg_c.o
 
 [SUBSYSTEM::RPC_NDR_INITSHUTDOWN]
 PUBLIC_DEPENDENCIES = dcerpc NDR_INITSHUTDOWN
 
-RPC_NDR_INITSHUTDOWN_OBJ_FILES = $(gen_ndrsrcdir)/ndr_initshutdown_c.o
+RPC_NDR_INITSHUTDOWN_OBJ_FILES = ../librpc/gen_ndr/ndr_initshutdown_c.o
 
 [SUBSYSTEM::RPC_NDR_MGMT]
 PRIVATE_DEPENDENCIES = NDR_MGMT
 
-RPC_NDR_MGMT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_mgmt_c.o
+RPC_NDR_MGMT_OBJ_FILES = ../librpc/gen_ndr/ndr_mgmt_c.o
 
 [SUBSYSTEM::RPC_NDR_PROTECTED_STORAGE]
 PUBLIC_DEPENDENCIES = dcerpc NDR_PROTECTED_STORAGE
 
-RPC_NDR_PROTECTED_STORAGE_OBJ_FILES = $(gen_ndrsrcdir)/ndr_protected_storage_c.o
+RPC_NDR_PROTECTED_STORAGE_OBJ_FILES = ../librpc/gen_ndr/ndr_protected_storage_c.o
 
 [SUBSYSTEM::RPC_NDR_OXIDRESOLVER]
 PUBLIC_DEPENDENCIES = dcerpc NDR_OXIDRESOLVER
 
-RPC_NDR_OXIDRESOLVER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_oxidresolver_c.o
+RPC_NDR_OXIDRESOLVER_OBJ_FILES = ../librpc/gen_ndr/ndr_oxidresolver_c.o
 
 [SUBSYSTEM::RPC_NDR_REMACT]
 PUBLIC_DEPENDENCIES = dcerpc NDR_REMACT
 
-RPC_NDR_REMACT_OBJ_FILES = $(gen_ndrsrcdir)/ndr_remact_c.o
+RPC_NDR_REMACT_OBJ_FILES = ../librpc/gen_ndr/ndr_remact_c.o
 
 [SUBSYSTEM::RPC_NDR_WZCSVC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_WZCSVC
 
-RPC_NDR_WZCSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_wzcsvc_c.o
+RPC_NDR_WZCSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_wzcsvc_c.o
 
 [SUBSYSTEM::RPC_NDR_W32TIME]
 PUBLIC_DEPENDENCIES = dcerpc NDR_W32TIME
 
-RPC_NDR_W32TIME_OBJ_FILES = $(gen_ndrsrcdir)/ndr_w32time_c.o
+RPC_NDR_W32TIME_OBJ_FILES = ../librpc/gen_ndr/ndr_w32time_c.o
 
 [SUBSYSTEM::RPC_NDR_SCERPC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_SCERPC
 
-RPC_NDR_SCERPC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_scerpc_c.o
+RPC_NDR_SCERPC_OBJ_FILES = ../librpc/gen_ndr/ndr_scerpc_c.o
 
 [SUBSYSTEM::RPC_NDR_NTSVCS]
 PUBLIC_DEPENDENCIES = dcerpc NDR_NTSVCS
 
-RPC_NDR_NTSVCS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_ntsvcs_c.o
+RPC_NDR_NTSVCS_OBJ_FILES = ../librpc/gen_ndr/ndr_ntsvcs_c.o
 
 [SUBSYSTEM::RPC_NDR_NETLOGON]
 PUBLIC_DEPENDENCIES = NDR_NETLOGON
 
-RPC_NDR_NETLOGON_OBJ_FILES = $(gen_ndrsrcdir)/ndr_netlogon_c.o
+RPC_NDR_NETLOGON_OBJ_FILES = ../librpc/gen_ndr/ndr_netlogon_c.o
 
 [SUBSYSTEM::RPC_NDR_TRKWKS]
 PUBLIC_DEPENDENCIES = dcerpc NDR_TRKWKS
 
-RPC_NDR_TRKWKS_OBJ_FILES = $(gen_ndrsrcdir)/ndr_trkwks_c.o
+RPC_NDR_TRKWKS_OBJ_FILES = ../librpc/gen_ndr/ndr_trkwks_c.o
 
 [SUBSYSTEM::RPC_NDR_KEYSVC]
 PUBLIC_DEPENDENCIES = dcerpc NDR_KEYSVC
 
-RPC_NDR_KEYSVC_OBJ_FILES = $(gen_ndrsrcdir)/ndr_keysvc_c.o
+RPC_NDR_KEYSVC_OBJ_FILES = ../librpc/gen_ndr/ndr_keysvc_c.o
 
 [SUBSYSTEM::NDR_DCERPC]
 PUBLIC_DEPENDENCIES = LIBNDR
@@ -644,85 +644,85 @@ $(eval $(call python_py_module_template,samba/dcerpc/__init__.py,$(dcerpcsrcdir)
 LIBRARY_REALNAME = samba/dcerpc/echo.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_ECHO PYTALLOC param swig_credentials python_dcerpc
 
-python_echo_OBJ_FILES = $(gen_ndrsrcdir)/py_echo.o
+python_echo_OBJ_FILES = ../librpc/gen_ndr/py_echo.o
 
 [PYTHON::python_winreg]
 LIBRARY_REALNAME = samba/dcerpc/winreg.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_WINREG python_misc PYTALLOC param swig_credentials python_dcerpc_misc python_lsa python_dcerpc
 
-python_winreg_OBJ_FILES = $(gen_ndrsrcdir)/py_winreg.o
+python_winreg_OBJ_FILES = ../librpc/gen_ndr/py_winreg.o
 
 [PYTHON::python_dcerpc_misc]
 LIBRARY_REALNAME = samba/dcerpc/misc.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = PYTALLOC python_dcerpc
 
-python_dcerpc_misc_OBJ_FILES = $(gen_ndrsrcdir)/py_misc.o
+python_dcerpc_misc_OBJ_FILES = ../librpc/gen_ndr/py_misc.o
 
 [PYTHON::python_initshutdown]
 LIBRARY_REALNAME = samba/dcerpc/initshutdown.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_INITSHUTDOWN PYTALLOC param swig_credentials python_lsa python_dcerpc_security python_dcerpc
 
-python_initshutdown_OBJ_FILES = $(gen_ndrsrcdir)/py_initshutdown.o
+python_initshutdown_OBJ_FILES = ../librpc/gen_ndr/py_initshutdown.o
 
 [PYTHON::python_epmapper]
 LIBRARY_REALNAME = samba/dcerpc/epmapper.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES =  dcerpc PYTALLOC param swig_credentials python_dcerpc_misc python_dcerpc
 
-python_epmapper_OBJ_FILES = $(gen_ndrsrcdir)/py_epmapper.o
+python_epmapper_OBJ_FILES = ../librpc/gen_ndr/py_epmapper.o
 
 [PYTHON::python_mgmt]
 LIBRARY_REALNAME = samba/dcerpc/mgmt.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = PYTALLOC param swig_credentials dcerpc python_dcerpc_misc python_dcerpc
 
-python_mgmt_OBJ_FILES = $(gen_ndrsrcdir)/py_mgmt.o
+python_mgmt_OBJ_FILES = ../librpc/gen_ndr/py_mgmt.o
 
 [PYTHON::python_atsvc]
 LIBRARY_REALNAME = samba/dcerpc/atsvc.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = dcerpc_atsvc PYTALLOC param swig_credentials  python_dcerpc
 
-python_atsvc_OBJ_FILES = $(gen_ndrsrcdir)/py_atsvc.o
+python_atsvc_OBJ_FILES = ../librpc/gen_ndr/py_atsvc.o
 
 [PYTHON::python_dcerpc_nbt]
 LIBRARY_REALNAME = samba/nbt.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = NDR_NBT PYTALLOC param swig_credentials python_dcerpc python_dcerpc_misc python_dcerpc_security
 
-python_dcerpc_nbt_OBJ_FILES = $(gen_ndrsrcdir)/py_nbt.o
+python_dcerpc_nbt_OBJ_FILES = ../librpc/gen_ndr/py_nbt.o
 
 [PYTHON::python_samr]
 LIBRARY_REALNAME = samba/dcerpc/samr.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = dcerpc_samr PYTALLOC python_dcerpc_security python_lsa python_dcerpc_misc swig_credentials param python_dcerpc
 
-python_samr_OBJ_FILES = $(gen_ndrsrcdir)/py_samr.o
+python_samr_OBJ_FILES = ../librpc/gen_ndr/py_samr.o
 
 [PYTHON::python_svcctl]
 LIBRARY_REALNAME = samba/dcerpc/svcctl.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_SVCCTL PYTALLOC param swig_credentials python_dcerpc_misc python_dcerpc
 
-python_svcctl_OBJ_FILES = $(gen_ndrsrcdir)/py_svcctl.o
+python_svcctl_OBJ_FILES = ../librpc/gen_ndr/py_svcctl.o
 
 [PYTHON::python_lsa]
 LIBRARY_REALNAME = samba/dcerpc/lsa.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_LSA PYTALLOC param swig_credentials python_dcerpc_security python_dcerpc
 
-python_lsa_OBJ_FILES = $(gen_ndrsrcdir)/py_lsa.o
+python_lsa_OBJ_FILES = ../librpc/gen_ndr/py_lsa.o
 
 [PYTHON::python_wkssvc]
 LIBRARY_REALNAME = samba/dcerpc/wkssvc.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_WKSSVC PYTALLOC param swig_credentials python_lsa python_dcerpc_security python_dcerpc
 
-python_wkssvc_OBJ_FILES = $(gen_ndrsrcdir)/py_wkssvc.o
+python_wkssvc_OBJ_FILES = ../librpc/gen_ndr/py_wkssvc.o
 
 [PYTHON::python_dfs]
 LIBRARY_REALNAME = samba/dcerpc/dfs.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_DFS PYTALLOC param swig_credentials python_dcerpc_misc python_dcerpc
 
-python_dfs_OBJ_FILES = $(gen_ndrsrcdir)/py_dfs.o
+python_dfs_OBJ_FILES = ../librpc/gen_ndr/py_dfs.o
 
 [PYTHON::python_unixinfo]
 LIBRARY_REALNAME = samba/dcerpc/unixinfo.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_UNIXINFO PYTALLOC param swig_credentials python_dcerpc_security python_dcerpc_misc python_dcerpc
 
-python_unixinfo_OBJ_FILES = $(gen_ndrsrcdir)/py_unixinfo.o
+python_unixinfo_OBJ_FILES = ../librpc/gen_ndr/py_unixinfo.o
 
 [PYTHON::python_irpc]
 LIBRARY_REALNAME = samba/irpc.$(SHLIBEXT)
@@ -734,13 +734,13 @@ python_irpc_OBJ_FILES = $(gen_ndrsrcdir)/py_irpc.o
 LIBRARY_REALNAME = samba/dcerpc/drsuapi.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = RPC_NDR_DRSUAPI PYTALLOC param swig_credentials python_dcerpc_misc python_dcerpc_security python_dcerpc
 
-python_drsuapi_OBJ_FILES = $(gen_ndrsrcdir)/py_drsuapi.o
+python_drsuapi_OBJ_FILES = ../librpc/gen_ndr/py_drsuapi.o
 
 [PYTHON::python_dcerpc_security]
 LIBRARY_REALNAME = samba/dcerpc/security.$(SHLIBEXT)
 PRIVATE_DEPENDENCIES = PYTALLOC python_dcerpc_misc python_dcerpc
 
-python_dcerpc_security_OBJ_FILES = $(gen_ndrsrcdir)/py_security.o
+python_dcerpc_security_OBJ_FILES = ../librpc/gen_ndr/py_security.o
 
 $(IDL_HEADER_FILES) $(IDL_NDR_PARSE_H_FILES) $(IDL_NDR_PARSE_C_FILES) \
        $(IDL_NDR_CLIENT_C_FILES) $(IDL_NDR_CLIENT_H_FILES) \
@@ -748,9 +748,11 @@ $(IDL_HEADER_FILES) $(IDL_NDR_PARSE_H_FILES) $(IDL_NDR_PARSE_C_FILES) \
        $(IDL_NDR_PY_C_FILES) $(IDL_NDR_PY_H_FILES): idl
 
 idl_full:: $(pidldir)/lib/Parse/Pidl/IDL.pm $(pidldir)/lib/Parse/Pidl/Expr.pm 
-       @CPP="$(CPP)" PIDL="$(PIDL)" $(librpcsrcdir)/scripts/build_idl.sh FULL $(librpcsrcdir)/gen_ndr $(IDL_FILES) 
+       @PIDL_OUTPUTDIR="../librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" srcdir="$(srcdir)" PIDL="$(PIDL)" ../librpc/build_idl.sh --full ../librpc/idl/*.idl
+       @CPP="$(CPP)" PIDL="$(PIDL)" $(librpcsrcdir)/scripts/build_idl.sh FULL $(librpcsrcdir)/gen_ndr $(librpcsrcdir)/idl/*.idl
 
 idl:: $(pidldir)/lib/Parse/Pidl/IDL.pm $(pidldir)/lib/Parse/Pidl/Expr.pm 
-       @CPP="$(CPP)" PIDL="$(PIDL)" $(librpcsrcdir)/scripts/build_idl.sh PARTIAL $(librpcsrcdir)/gen_ndr $(IDL_FILES)
+       @PIDL_OUTPUTDIR="../librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" srcdir="$(srcdir)" PIDL="$(PIDL)" ../librpc/build_idl.sh ../librpc/idl/*.idl
+       @CPP="$(CPP)" PIDL="$(PIDL)" $(librpcsrcdir)/scripts/build_idl.sh PARTIAL $(librpcsrcdir)/gen_ndr $(librpcsrcdir)/idl/*.idl
 
 
old mode 100755 (executable)
new mode 100644 (file)
index 44990c5..4d97139
@@ -1,25 +1,37 @@
 #!/usr/bin/perl
 use strict;
+use File::Basename;
+
+sub add($$)
+{
+       my ($name, $val) = @_;
+
+       print "$name += $val\n";
+}
 
 my %vars = ();
 
 foreach(@ARGV) {
        my $f = $_;
-       my $b = $_; $b =~ s/.*\/(.*?).idl$/$1/;
-       push (@{$vars{IDL_FILES}}, $f);
-       push (@{$vars{IDL_HEADER_FILES}}, "\$(librpcsrcdir)/gen_ndr/$b.h");
-       push (@{$vars{IDL_NDR_PARSE_H_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b.h");
-       push (@{$vars{IDL_NDR_PARSE_C_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b.c");
-       push (@{$vars{IDL_NDR_CLIENT_C_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b\_c.c");
-       push (@{$vars{IDL_NDR_CLIENT_H_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b\_c.h");
-       push (@{$vars{IDL_SWIG_FILES}}, "\$(librpcsrcdir)/gen_ndr/$b.i");
-       push (@{$vars{IDL_NDR_SERVER_C_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b\_s.c");
-       push (@{$vars{IDL_NDR_EJS_C_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b\_ejs.c");
-       push (@{$vars{IDL_NDR_EJS_H_FILES}}, "\$(librpcsrcdir)/gen_ndr/ndr_$b\_ejs.h");
-       push (@{$vars{IDL_NDR_PY_C_FILES}}, "\$(librpcsrcdir)/gen_ndr/py_$b.c");
-       push (@{$vars{IDL_NDR_PY_H_FILES}}, "\$(librpcsrcdir)/gen_ndr/py_$b.h");
-}
+       my $b = basename($f);
+
+       $b =~ s/\.idl//;
+
+       my $gen_ndr = dirname($f);
+       $gen_ndr =~ s/\/idl$/\/gen_ndr/;
 
-foreach (keys %vars) {
-       print "$_ = " . join (' ', @{$vars{$_}}) . "\n";
+       print "# $f\n";
+       add("IDL_FILES", $f);
+       add("IDL_HEADER_FILES", "$gen_ndr/$b.h");
+       add("IDL_NDR_PARSE_H_FILES", "$gen_ndr/ndr_$b.h");
+       add("IDL_NDR_PARSE_C_FILES", "$gen_ndr/ndr_$b.c");
+       add("IDL_NDR_CLIENT_C_FILES", "$gen_ndr/ndr_$b\_c.c");
+       add("IDL_NDR_CLIENT_H_FILES", "$gen_ndr/ndr_$b\_c.h");
+       add("IDL_SWIG_FILES", "$gen_ndr/$b.i");
+       add("IDL_NDR_SERVER_C_FILES", "$gen_ndr/ndr_$b\_s.c");
+       add("IDL_NDR_EJS_C_FILES", "$gen_ndr/ndr_$b\_ejs.c");
+       add("IDL_NDR_EJS_H_FILES", "$gen_ndr/ndr_$b\_ejs.h");
+       add("IDL_NDR_PY_C_FILES", "$gen_ndr/py_$b.c");
+       add("IDL_NDR_PY_H_FILES", "$gen_ndr/py_$b.h");
+       print "\n";
 }
similarity index 98%
rename from librpc/idl/notify.idl
rename to source4/librpc/idl/notify.idl
index 3ce2f40ed87a9dd5000d23ed8969b474943650f7..a19f7376785e6d7d7f39d6429dab31f4a2363675 100644 (file)
@@ -7,7 +7,7 @@
    the change notify buffers
 */
 
-import "security.idl";
+import "server_id.idl";
 
 [
   pointer_default(unique)
index 265cfaf7ad16548c3b19d06af8500803cc2a396e..b76992960afd13a47e6a80c48016d35dea698031 100644 (file)
@@ -7,7 +7,7 @@
    ntvfs/common/opendb.c
 */
 
-import "security.idl";
+import "server_id.idl";
 
 [
   pointer_default(unique)
similarity index 89%
rename from source4/librpc/idl/dom_sid.idl
rename to source4/librpc/idl/server_id.idl
index 172dda4faedfe4509f89a56a8a91389fcac56962..486143546b66e70544aa2459831043b81e8ae840 100644 (file)
@@ -1,7 +1,7 @@
 [
        pointer_default(unique)
 ]
-interface dom_sid
+interface server_id
 {
        /* id used to identify a endpoint, possibly in a cluster */
        typedef [public] struct {
index 230939bb486cb3e0f6e0cdf17d70615ece9c3bd0..714f6d1f6ad686c9ac10d0edeb9e502a1bb5c8e4 100755 (executable)
@@ -7,7 +7,7 @@ IDL_FILES="$*"
 
 [ -d $OUTDIR ] || mkdir -p $OUTDIR || exit 1
 
-PIDL="$PIDL --outputdir $OUTDIR --header --ndr-parser --server --client --swig --python --dcom-proxy --com-header --includedir ../librpc/idl -- "
+PIDL="$PIDL --outputdir $OUTDIR --header --ndr-parser --server --client --python --dcom-proxy --com-header --includedir ../librpc/idl -- "
 
 if [ x$FULLBUILD = xFULL ]; then
       echo Rebuilding all idl files in $IDLDIR
index 0a72487f8afd9123be04d9278349a1292c3fd0dd..1d4ffc5d44cb08327097b38c173d4758ab656d87 100644 (file)
@@ -6,7 +6,7 @@ mkinclude cluster/config.mk
 mkinclude smbd/process_model.mk
 mkinclude libnet/config.mk
 mkinclude auth/config.mk
-mkinclude nsswitch/config.mk
+mkinclude ../nsswitch/config.mk
 mkinclude lib/samba3/config.mk
 mkinclude lib/socket/config.mk
 mkinclude ../lib/util/charset/config.mk
diff --git a/source4/nsswitch/wb_common.c b/source4/nsswitch/wb_common.c
deleted file mode 100644 (file)
index 6cf4223..0000000
+++ /dev/null
@@ -1,698 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   winbind client common code
-
-   Copyright (C) Tim Potter 2000
-   Copyright (C) Andrew Tridgell 2000
-   Copyright (C) Andrew Bartlett 2002
-   
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "winbind_client.h"
-
-/* Global variables.  These are effectively the client state information */
-
-int winbindd_fd = -1;           /* fd for winbindd socket */
-static int is_privileged = 0;
-
-/* Free a response structure */
-
-void winbindd_free_response(struct winbindd_response *response)
-{
-       /* Free any allocated extra_data */
-
-       if (response)
-               SAFE_FREE(response->extra_data.data);
-}
-
-/* Initialise a request structure */
-
-void winbindd_init_request(struct winbindd_request *request, int request_type)
-{
-       request->length = sizeof(struct winbindd_request);
-
-       request->cmd = (enum winbindd_cmd)request_type;
-       request->pid = getpid();
-
-}
-
-/* Initialise a response structure */
-
-static void init_response(struct winbindd_response *response)
-{
-       /* Initialise return value */
-
-       response->result = WINBINDD_ERROR;
-}
-
-/* Close established socket */
-
-void winbind_close_sock(void)
-{
-       if (winbindd_fd != -1) {
-               close(winbindd_fd);
-               winbindd_fd = -1;
-       }
-}
-
-#define CONNECT_TIMEOUT 30
-
-/* Make sure socket handle isn't stdin, stdout or stderr */
-#define RECURSION_LIMIT 3
-
-static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */) 
-{
-       int new_fd;
-       if (fd >= 0 && fd <= 2) {
-#ifdef F_DUPFD 
-               if ((new_fd = fcntl(fd, F_DUPFD, 3)) == -1) {
-                       return -1;
-               }
-               /* Paranoia */
-               if (new_fd < 3) {
-                       close(new_fd);
-                       return -1;
-               }
-               close(fd);
-               return new_fd;
-#else
-               if (limit <= 0)
-                       return -1;
-               
-               new_fd = dup(fd);
-               if (new_fd == -1) 
-                       return -1;
-
-               /* use the program stack to hold our list of FDs to close */
-               new_fd = make_nonstd_fd_internals(new_fd, limit - 1);
-               close(fd);
-               return new_fd;
-#endif
-       }
-       return fd;
-}
-
-/****************************************************************************
- Set a fd into blocking/nonblocking mode. Uses POSIX O_NONBLOCK if available,
- else
- if SYSV use O_NDELAY
- if BSD use FNDELAY
- Set close on exec also.
-****************************************************************************/
-
-static int make_safe_fd(int fd) 
-{
-       int result, flags;
-       int new_fd = make_nonstd_fd_internals(fd, RECURSION_LIMIT);
-       if (new_fd == -1) {
-               close(fd);
-               return -1;
-       }
-
-       /* Socket should be nonblocking. */
-#ifdef O_NONBLOCK
-#define FLAG_TO_SET O_NONBLOCK
-#else
-#ifdef SYSV
-#define FLAG_TO_SET O_NDELAY
-#else /* BSD */
-#define FLAG_TO_SET FNDELAY
-#endif
-#endif
-
-       if ((flags = fcntl(new_fd, F_GETFL)) == -1) {
-               close(new_fd);
-               return -1;
-       }
-
-       flags |= FLAG_TO_SET;
-       if (fcntl(new_fd, F_SETFL, flags) == -1) {
-               close(new_fd);
-               return -1;
-       }
-
-#undef FLAG_TO_SET
-
-       /* Socket should be closed on exec() */
-#ifdef FD_CLOEXEC
-       result = flags = fcntl(new_fd, F_GETFD, 0);
-       if (flags >= 0) {
-               flags |= FD_CLOEXEC;
-               result = fcntl( new_fd, F_SETFD, flags );
-       }
-       if (result < 0) {
-               close(new_fd);
-               return -1;
-       }
-#endif
-       return new_fd;
-}
-
-/* Connect to winbindd socket */
-
-static int winbind_named_pipe_sock(const char *dir)
-{
-       struct sockaddr_un sunaddr;
-       struct stat st;
-       char *path;
-       int fd;
-       int wait_time;
-       int slept;
-       
-       /* Check permissions on unix socket directory */
-       
-       if (lstat(dir, &st) == -1) {
-               return -1;
-       }
-       
-       if (!S_ISDIR(st.st_mode) || 
-           (st.st_uid != 0 && st.st_uid != geteuid())) {
-               return -1;
-       }
-       
-       /* Connect to socket */
-       
-       asprintf(&path, "%s/%s", dir, WINBINDD_SOCKET_NAME);
-       
-       ZERO_STRUCT(sunaddr);
-       sunaddr.sun_family = AF_UNIX;
-       strncpy(sunaddr.sun_path, path, sizeof(sunaddr.sun_path) - 1);
-       SAFE_FREE(path);
-       
-       /* If socket file doesn't exist, don't bother trying to connect
-          with retry.  This is an attempt to make the system usable when
-          the winbindd daemon is not running. */
-
-       if (lstat(sunaddr.sun_path, &st) == -1) {
-               return -1;
-       }
-       
-       /* Check permissions on unix socket file */
-       
-       if (!S_ISSOCK(st.st_mode) || 
-           (st.st_uid != 0 && st.st_uid != geteuid())) {
-               return -1;
-       }
-       
-       /* Connect to socket */
-       
-       if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
-               return -1;
-       }
-
-       /* Set socket non-blocking and close on exec. */
-
-       if ((fd = make_safe_fd( fd)) == -1) {
-               return fd;
-       }
-
-       for (wait_time = 0; connect(fd, (struct sockaddr *)&sunaddr, sizeof(sunaddr)) == -1;
-                       wait_time += slept) {
-               struct timeval tv;
-               fd_set w_fds;
-               int ret;
-               int connect_errno = 0;
-               socklen_t errnosize;
-
-               if (wait_time >= CONNECT_TIMEOUT)
-                       goto error_out;
-
-               switch (errno) {
-                       case EINPROGRESS:
-                               FD_ZERO(&w_fds);
-                               FD_SET(fd, &w_fds);
-                               tv.tv_sec = CONNECT_TIMEOUT - wait_time;
-                               tv.tv_usec = 0;
-
-                               ret = select(fd + 1, NULL, &w_fds, NULL, &tv);
-
-                               if (ret > 0) {
-                                       errnosize = sizeof(connect_errno);
-
-                                       ret = getsockopt(fd, SOL_SOCKET,
-                                                       SO_ERROR, &connect_errno, &errnosize);
-
-                                       if (ret >= 0 && connect_errno == 0) {
-                                               /* Connect succeed */
-                                               goto out;
-                                       }
-                               }
-
-                               slept = CONNECT_TIMEOUT;
-                               break;
-                       case EAGAIN:
-                               slept = rand() % 3 + 1;
-                               sleep(slept);
-                               break;
-                       default:
-                               goto error_out;
-               }
-
-       }
-
-  out:
-
-       return fd;
-
-  error_out:
-
-       close(fd);
-       return -1;
-}
-
-static const char *winbindd_socket_dir(void)
-{
-#ifdef SOCKET_WRAPPER
-       const char *env_dir;
-
-       env_dir = getenv(WINBINDD_SOCKET_DIR_ENVVAR);
-       if (env_dir) {
-               return env_dir;
-       }
-#endif
-
-       return WINBINDD_SOCKET_DIR;
-}
-
-/* Connect to winbindd socket */
-
-static int winbind_open_pipe_sock(int recursing, int need_priv)
-{
-#ifdef HAVE_UNIXSOCKET
-       static pid_t our_pid;
-       struct winbindd_request request;
-       struct winbindd_response response;
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(response);
-
-       if (our_pid != getpid()) {
-               winbind_close_sock();
-               our_pid = getpid();
-       }
-
-       if ((need_priv != 0) && (is_privileged == 0)) {
-               winbind_close_sock();
-       }
-       
-       if (winbindd_fd != -1) {
-               return winbindd_fd;
-       }
-
-       if (recursing) {
-               return -1;
-       }
-
-       if ((winbindd_fd = winbind_named_pipe_sock(winbindd_socket_dir())) == -1) {
-               return -1;
-       }
-
-       is_privileged = 0;
-
-       /* version-check the socket */
-
-       request.wb_flags = WBFLAG_RECURSE;
-       if ((winbindd_request_response(WINBINDD_INTERFACE_VERSION, &request, &response) != NSS_STATUS_SUCCESS) || (response.data.interface_version != WINBIND_INTERFACE_VERSION)) {
-               winbind_close_sock();
-               return -1;
-       }
-
-       /* try and get priv pipe */
-
-       request.wb_flags = WBFLAG_RECURSE;
-       if (winbindd_request_response(WINBINDD_PRIV_PIPE_DIR, &request, &response) == NSS_STATUS_SUCCESS) {
-               int fd;
-               if ((fd = winbind_named_pipe_sock((char *)response.extra_data.data)) != -1) {
-                       close(winbindd_fd);
-                       winbindd_fd = fd;
-                       is_privileged = 1;
-               }
-       }
-
-       if ((need_priv != 0) && (is_privileged == 0)) {
-               return -1;
-       }
-
-       SAFE_FREE(response.extra_data.data);
-
-       return winbindd_fd;
-#else
-       return -1;
-#endif /* HAVE_UNIXSOCKET */
-}
-
-/* Write data to winbindd socket */
-
-int winbind_write_sock(void *buffer, int count, int recursing, int need_priv)
-{
-       int result, nwritten;
-       
-       /* Open connection to winbind daemon */
-       
- restart:
-       
-       if (winbind_open_pipe_sock(recursing, need_priv) == -1) {
-               return -1;
-       }
-       
-       /* Write data to socket */
-       
-       nwritten = 0;
-       
-       while(nwritten < count) {
-               struct timeval tv;
-               fd_set r_fds;
-               
-               /* Catch pipe close on other end by checking if a read()
-                  call would not block by calling select(). */
-
-               FD_ZERO(&r_fds);
-               FD_SET(winbindd_fd, &r_fds);
-               ZERO_STRUCT(tv);
-               
-               if (select(winbindd_fd + 1, &r_fds, NULL, NULL, &tv) == -1) {
-                       winbind_close_sock();
-                       return -1;                   /* Select error */
-               }
-               
-               /* Write should be OK if fd not available for reading */
-               
-               if (!FD_ISSET(winbindd_fd, &r_fds)) {
-                       
-                       /* Do the write */
-                       
-                       result = write(winbindd_fd,
-                                      (char *)buffer + nwritten, 
-                                      count - nwritten);
-                       
-                       if ((result == -1) || (result == 0)) {
-                               
-                               /* Write failed */
-                               
-                               winbind_close_sock();
-                               return -1;
-                       }
-                       
-                       nwritten += result;
-                       
-               } else {
-                       
-                       /* Pipe has closed on remote end */
-                       
-                       winbind_close_sock();
-                       goto restart;
-               }
-       }
-       
-       return nwritten;
-}
-
-/* Read data from winbindd socket */
-
-int winbind_read_sock(void *buffer, int count)
-{
-       int nread = 0;
-       int total_time = 0, selret;
-
-       if (winbindd_fd == -1) {
-               return -1;
-       }
-
-       /* Read data from socket */
-       while(nread < count) {
-               struct timeval tv;
-               fd_set r_fds;
-               
-               /* Catch pipe close on other end by checking if a read()
-                  call would not block by calling select(). */
-
-               FD_ZERO(&r_fds);
-               FD_SET(winbindd_fd, &r_fds);
-               ZERO_STRUCT(tv);
-               /* Wait for 5 seconds for a reply. May need to parameterise this... */
-               tv.tv_sec = 5;
-
-               if ((selret = select(winbindd_fd + 1, &r_fds, NULL, NULL, &tv)) == -1) {
-                       winbind_close_sock();
-                       return -1;                   /* Select error */
-               }
-               
-               if (selret == 0) {
-                       /* Not ready for read yet... */
-                       if (total_time >= 30) {
-                               /* Timeout */
-                               winbind_close_sock();
-                               return -1;
-                       }
-                       total_time += 5;
-                       continue;
-               }
-
-               if (FD_ISSET(winbindd_fd, &r_fds)) {
-                       
-                       /* Do the Read */
-                       
-                       int result = read(winbindd_fd, (char *)buffer + nread, 
-                             count - nread);
-                       
-                       if ((result == -1) || (result == 0)) {
-                               
-                               /* Read failed.  I think the only useful thing we
-                                  can do here is just return -1 and fail since the
-                                  transaction has failed half way through. */
-                       
-                               winbind_close_sock();
-                               return -1;
-                       }
-                       
-                       nread += result;
-                       
-               }
-       }
-       
-       return nread;
-}
-
-/* Read reply */
-
-int winbindd_read_reply(struct winbindd_response *response)
-{
-       int result1, result2 = 0;
-
-       if (!response) {
-               return -1;
-       }
-       
-       /* Read fixed length response */
-       
-       result1 = winbind_read_sock(response,
-                                   sizeof(struct winbindd_response));
-       if (result1 == -1) {
-               return -1;
-       }
-       
-       /* We actually send the pointer value of the extra_data field from
-          the server.  This has no meaning in the client's address space
-          so we clear it out. */
-
-       response->extra_data.data = NULL;
-
-       /* Read variable length response */
-       
-       if (response->length > sizeof(struct winbindd_response)) {
-               int extra_data_len = response->length - 
-                       sizeof(struct winbindd_response);
-               
-               /* Mallocate memory for extra data */
-               
-               if (!(response->extra_data.data = malloc(extra_data_len))) {
-                       return -1;
-               }
-               
-               result2 = winbind_read_sock(response->extra_data.data,
-                                           extra_data_len);
-               if (result2 == -1) {
-                       winbindd_free_response(response);
-                       return -1;
-               }
-       }
-       
-       /* Return total amount of data read */
-       
-       return result1 + result2;
-}
-
-bool winbind_env_set(void)
-{
-       char *env;
-       
-       if ((env=getenv(WINBINDD_DONT_ENV)) != NULL) {
-               if(strcmp(env, "1") == 0) {
-                       return true;
-               }
-       }
-       return false;
-}
-
-/* 
- * send simple types of requests 
- */
-
-NSS_STATUS winbindd_send_request(int req_type, int need_priv,
-                                struct winbindd_request *request)
-{
-       struct winbindd_request lrequest;
-
-       /* Check for our tricky environment variable */
-
-       if (winbind_env_set()) {
-               return NSS_STATUS_NOTFOUND;
-       }
-
-       if (!request) {
-               ZERO_STRUCT(lrequest);
-               request = &lrequest;
-       }
-       
-       /* Fill in request and send down pipe */
-
-       winbindd_init_request(request, req_type);
-       
-       if (winbind_write_sock(request, sizeof(*request),
-                              request->wb_flags & WBFLAG_RECURSE,
-                              need_priv) == -1) {
-               return NSS_STATUS_UNAVAIL;
-       }
-
-       if ((request->extra_len != 0) &&
-           (winbind_write_sock(request->extra_data.data,
-                               request->extra_len,
-                               request->wb_flags & WBFLAG_RECURSE,
-                               need_priv) == -1)) {
-               return NSS_STATUS_UNAVAIL;
-       }
-       
-       return NSS_STATUS_SUCCESS;
-}
-
-/*
- * Get results from winbindd request
- */
-
-NSS_STATUS winbindd_get_response(struct winbindd_response *response)
-{
-       struct winbindd_response lresponse;
-
-       if (!response) {
-               ZERO_STRUCT(lresponse);
-               response = &lresponse;
-       }
-
-       init_response(response);
-
-       /* Wait for reply */
-       if (winbindd_read_reply(response) == -1) {
-               return NSS_STATUS_UNAVAIL;
-       }
-
-       /* Throw away extra data if client didn't request it */
-       if (response == &lresponse) {
-               winbindd_free_response(response);
-       }
-
-       /* Copy reply data from socket */
-       if (response->result != WINBINDD_OK) {
-               return NSS_STATUS_NOTFOUND;
-       }
-       
-       return NSS_STATUS_SUCCESS;
-}
-
-/* Handle simple types of requests */
-
-NSS_STATUS winbindd_request_response(int req_type, 
-                           struct winbindd_request *request,
-                           struct winbindd_response *response)
-{
-       NSS_STATUS status = NSS_STATUS_UNAVAIL;
-       int count = 0;
-
-       while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
-               status = winbindd_send_request(req_type, 0, request);
-               if (status != NSS_STATUS_SUCCESS) 
-                       return(status);
-               status = winbindd_get_response(response);
-               count += 1;
-       }
-
-       return status;
-}
-
-NSS_STATUS winbindd_priv_request_response(int req_type, 
-                                         struct winbindd_request *request,
-                                         struct winbindd_response *response)
-{
-       NSS_STATUS status = NSS_STATUS_UNAVAIL;
-       int count = 0;
-
-       while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
-               status = winbindd_send_request(req_type, 1, request);
-               if (status != NSS_STATUS_SUCCESS) 
-                       return(status);
-               status = winbindd_get_response(response);
-               count += 1;
-       }
-
-       return status;
-}
-
-/*************************************************************************
- A couple of simple functions to disable winbindd lookups and re-
- enable them
- ************************************************************************/
-bool winbind_off(void)
-{
-       return setenv(WINBINDD_DONT_ENV, "1", 1) != -1;
-}
-
-bool winbind_on(void)
-{
-       return setenv(WINBINDD_DONT_ENV, "0", 1) != -1;
-}
-
-/*************************************************************************
- ************************************************************************/
-
-const char *nss_err_str(NSS_STATUS ret)
-{
-       switch (ret) {
-               case NSS_STATUS_TRYAGAIN:
-                       return "NSS_STATUS_TRYAGAIN";
-               case NSS_STATUS_SUCCESS:
-                       return "NSS_STATUS_SUCCESS";
-               case NSS_STATUS_NOTFOUND:
-                       return "NSS_STATUS_NOTFOUND";
-               case NSS_STATUS_UNAVAIL:
-                       return "NSS_STATUS_UNAVAIL";
-#ifdef NSS_STATUS_RETURN
-               case NSS_STATUS_RETURN:
-                       return "NSS_STATUS_RETURN";
-#endif
-               default:
-                       return "UNKNOWN RETURN CODE!!!!!!!";
-       }
-}
diff --git a/source4/nsswitch/winbind_client.h b/source4/nsswitch/winbind_client.h
deleted file mode 100644 (file)
index 2a3956e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "winbind_nss_config.h"
-#include "winbind_struct_protocol.h"
-
-void winbindd_init_request(struct winbindd_request *req,int rq_type);
-void winbindd_free_response(struct winbindd_response *response);
-NSS_STATUS winbindd_send_request(int req_type, int need_priv,
-                                struct winbindd_request *request);
-NSS_STATUS winbindd_get_response(struct winbindd_response *response);
-NSS_STATUS winbindd_request_response(int req_type, 
-                           struct winbindd_request *request,
-                           struct winbindd_response *response);
-NSS_STATUS winbindd_priv_request_response(int req_type, 
-                                         struct winbindd_request *request,
-                                         struct winbindd_response *response);
-int winbindd_read_reply(struct winbindd_response *response);
-
-bool winbind_env_set(void);
-bool winbind_off(void);
-bool winbind_on(void);
-
-int winbind_write_sock(void *buffer, int count, int recursing, int need_priv);
-int winbind_read_sock(void *buffer, int count);
-void winbind_close_sock(void);
-
-const char *nss_err_str(NSS_STATUS ret);
diff --git a/source4/nsswitch/winbind_nss_config.h b/source4/nsswitch/winbind_nss_config.h
deleted file mode 100644 (file)
index c5bc853..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Winbind daemon for ntdom nss module
-
-   Copyright (C) Tim Potter 2000
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _WINBIND_NSS_CONFIG_H
-#define _WINBIND_NSS_CONFIG_H
-
-/* shutup the compiler warnings due to krb5.h on 64-bit sles9 */
-#ifdef SIZEOF_LONG
-#undef SIZEOF_LONG
-#endif
-
-
-/* Include header files from data in config.h file */
-
-#ifndef NO_CONFIG_H
-#include "../replace/replace.h"
-#endif
-
-#include "system/passwd.h"
-#include "system/filesys.h"
-#include "system/network.h"
-
-#include "nsswitch/winbind_nss.h"
-
-/* Some systems (SCO) treat UNIX domain sockets as FIFOs */
-
-#ifndef S_IFSOCK
-#define S_IFSOCK S_IFIFO
-#endif
-
-#ifndef S_ISSOCK
-#define S_ISSOCK(mode)  ((mode & S_IFSOCK) == S_IFSOCK)
-#endif
-
-#endif
diff --git a/source4/nsswitch/winbind_nss_irix.h b/source4/nsswitch/winbind_nss_irix.h
deleted file mode 100644 (file)
index b40b14b..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Winbind daemon for ntdom nss module
-
-   Copyright (C) Tim Potter 2000
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _WINBIND_NSS_IRIX_H
-#define _WINBIND_NSS_IRIX_H
-
-/* following required to prevent warnings of double definition
- * of datum from ns_api.h
-*/
-#ifdef DATUM
-#define _DATUM_DEFINED
-#endif
-
-#include <ns_api.h>
-
-typedef enum
-{
-  NSS_STATUS_SUCCESS=NS_SUCCESS,
-  NSS_STATUS_NOTFOUND=NS_NOTFOUND,
-  NSS_STATUS_UNAVAIL=NS_UNAVAIL,
-  NSS_STATUS_TRYAGAIN=NS_TRYAGAIN
-} NSS_STATUS;
-
-#endif /* _WINBIND_NSS_IRIX_H */
diff --git a/source4/nsswitch/winbind_nss_linux.c b/source4/nsswitch/winbind_nss_linux.c
deleted file mode 100644 (file)
index ac53979..0000000
+++ /dev/null
@@ -1,1281 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Windows NT Domain nsswitch module
-
-   Copyright (C) Tim Potter 2000
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "winbind_client.h"
-
-/* Maximum number of users to pass back over the unix domain socket
-   per call. This is not a static limit on the total number of users 
-   or groups returned in total. */
-
-#define MAX_GETPWENT_USERS 250
-#define MAX_GETGRENT_USERS 250
-
-NSS_STATUS _nss_winbind_setpwent(void);
-NSS_STATUS _nss_winbind_endpwent(void);
-NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
-                                  size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, 
-                                  char *buffer, size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result, 
-                                  char *buffer, size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_setgrent(void);
-NSS_STATUS _nss_winbind_endgrent(void);
-NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer, 
-                                  size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer, 
-                                  size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result, 
-                                  char *buffer, size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer, 
-                                  size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, 
-                                      long int *size, gid_t **groups, 
-                                      long int limit, int *errnop);
-NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids, 
-                                   int *num_groups, char *buffer, size_t buf_size, 
-                                   int *errnop);
-NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid, char *buffer,
-                                 size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, 
-                                 size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop);
-NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop);
-NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer, 
-                                size_t buflen, int *errnop);
-NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer, 
-                                size_t buflen, int *errnop);
-
-/* Prototypes from wb_common.c */
-
-extern int winbindd_fd;
-
-/* Allocate some space from the nss static buffer.  The buffer and buflen
-   are the pointers passed in by the C library to the _nss_ntdom_*
-   functions. */
-
-static char *get_static(char **buffer, size_t *buflen, size_t len)
-{
-       char *result;
-
-       /* Error check.  We return false if things aren't set up right, or
-          there isn't enough buffer space left. */
-       
-       if ((buffer == NULL) || (buflen == NULL) || (*buflen < len)) {
-               return NULL;
-       }
-
-       /* Return an index into the static buffer */
-
-       result = *buffer;
-       *buffer += len;
-       *buflen -= len;
-
-       return result;
-}
-
-/* I've copied the strtok() replacement function next_token() from
-   lib/util_str.c as I really don't want to have to link in any other
-   objects if I can possibly avoid it. */
-
-static bool next_token(char **ptr,char *buff,const char *sep, size_t bufsize)
-{
-       char *s;
-       bool quoted;
-       size_t len=1;
-
-       if (!ptr) return false;
-
-       s = *ptr;
-
-       /* default to simple separators */
-       if (!sep) sep = " \t\n\r";
-
-       /* find the first non sep char */
-       while (*s && strchr(sep,*s)) s++;
-       
-       /* nothing left? */
-       if (! *s) return false;
-       
-       /* copy over the token */
-       for (quoted = false; len < bufsize && *s && (quoted || !strchr(sep,*s)); s++) {
-               if (*s == '\"') {
-                       quoted = !quoted;
-               } else {
-                       len++;
-                       *buff++ = *s;
-               }
-       }
-       
-       *ptr = (*s) ? s+1 : s;  
-       *buff = 0;
-       
-       return true;
-}
-
-
-/* Fill a pwent structure from a winbindd_response structure.  We use
-   the static data passed to us by libc to put strings and stuff in.
-   Return NSS_STATUS_TRYAGAIN if we run out of memory. */
-
-static NSS_STATUS fill_pwent(struct passwd *result,
-                                 struct winbindd_pw *pw,
-                                 char **buffer, size_t *buflen)
-{
-       /* User name */
-
-       if ((result->pw_name = 
-            get_static(buffer, buflen, strlen(pw->pw_name) + 1)) == NULL) {
-
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->pw_name, pw->pw_name);
-
-       /* Password */
-
-       if ((result->pw_passwd = 
-            get_static(buffer, buflen, strlen(pw->pw_passwd) + 1)) == NULL) {
-
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->pw_passwd, pw->pw_passwd);
-        
-       /* [ug]id */
-
-       result->pw_uid = pw->pw_uid;
-       result->pw_gid = pw->pw_gid;
-
-       /* GECOS */
-
-       if ((result->pw_gecos = 
-            get_static(buffer, buflen, strlen(pw->pw_gecos) + 1)) == NULL) {
-
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->pw_gecos, pw->pw_gecos);
-       
-       /* Home directory */
-       
-       if ((result->pw_dir = 
-            get_static(buffer, buflen, strlen(pw->pw_dir) + 1)) == NULL) {
-
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->pw_dir, pw->pw_dir);
-
-       /* Logon shell */
-       
-       if ((result->pw_shell = 
-            get_static(buffer, buflen, strlen(pw->pw_shell) + 1)) == NULL) {
-               
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->pw_shell, pw->pw_shell);
-
-       /* The struct passwd for Solaris has some extra fields which must
-          be initialised or nscd crashes. */
-
-#if HAVE_PASSWD_PW_COMMENT
-       result->pw_comment = "";
-#endif
-
-#if HAVE_PASSWD_PW_AGE
-       result->pw_age = "";
-#endif
-
-       return NSS_STATUS_SUCCESS;
-}
-
-/* Fill a grent structure from a winbindd_response structure.  We use
-   the static data passed to us by libc to put strings and stuff in.
-   Return NSS_STATUS_TRYAGAIN if we run out of memory. */
-
-static NSS_STATUS fill_grent(struct group *result, struct winbindd_gr *gr,
-                     char *gr_mem, char **buffer, size_t *buflen)
-{
-       fstring name;
-       int i;
-       char *tst;
-
-       /* Group name */
-
-       if ((result->gr_name =
-            get_static(buffer, buflen, strlen(gr->gr_name) + 1)) == NULL) {
-
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->gr_name, gr->gr_name);
-
-       /* Password */
-
-       if ((result->gr_passwd =
-            get_static(buffer, buflen, strlen(gr->gr_passwd) + 1)) == NULL) {
-
-               /* Out of memory */
-               
-               return NSS_STATUS_TRYAGAIN;
-       }
-
-       strcpy(result->gr_passwd, gr->gr_passwd);
-
-       /* gid */
-
-       result->gr_gid = gr->gr_gid;
-
-       /* Group membership */
-
-       if ((gr->num_gr_mem < 0) || !gr_mem) {
-               gr->num_gr_mem = 0;
-       }
-
-       /* this next value is a pointer to a pointer so let's align it */
-
-       /* Calculate number of extra bytes needed to align on pointer size boundry */
-       if ((i = (unsigned long)(*buffer) % sizeof(char*)) != 0)
-               i = sizeof(char*) - i;
-       
-       if ((tst = get_static(buffer, buflen, ((gr->num_gr_mem + 1) * 
-                                sizeof(char *)+i))) == NULL) {
-
-               /* Out of memory */
-
-               return NSS_STATUS_TRYAGAIN;
-       }
-       result->gr_mem = (char **)(tst + i);
-
-       if (gr->num_gr_mem == 0) {
-
-               /* Group is empty */
-
-               *(result->gr_mem) = NULL;
-               return NSS_STATUS_SUCCESS;
-       }
-
-       /* Start looking at extra data */
-
-       i = 0;
-
-       while(next_token((char **)&gr_mem, name, ",", sizeof(fstring))) {
-        
-               /* Allocate space for member */
-        
-               if (((result->gr_mem)[i] = 
-                    get_static(buffer, buflen, strlen(name) + 1)) == NULL) {
-            
-                       /* Out of memory */
-            
-                       return NSS_STATUS_TRYAGAIN;
-               }        
-        
-               strcpy((result->gr_mem)[i], name);
-               i++;
-       }
-
-       /* Terminate list */
-
-       (result->gr_mem)[i] = NULL;
-
-       return NSS_STATUS_SUCCESS;
-}
-
-/*
- * NSS user functions
- */
-
-static struct winbindd_response getpwent_response;
-
-static int ndx_pw_cache;                 /* Current index into pwd cache */
-static int num_pw_cache;                 /* Current size of pwd cache */
-
-/* Rewind "file pointer" to start of ntdom password database */
-
-NSS_STATUS
-_nss_winbind_setpwent(void)
-{
-       NSS_STATUS ret;
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: setpwent\n", getpid());
-#endif
-
-       if (num_pw_cache > 0) {
-               ndx_pw_cache = num_pw_cache = 0;
-               winbindd_free_response(&getpwent_response);
-       }
-
-       ret = winbindd_request_response(WINBINDD_SETPWENT, NULL, NULL);
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: setpwent returns %s (%d)\n", getpid(),
-               nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Close ntdom password database "file pointer" */
-
-NSS_STATUS
-_nss_winbind_endpwent(void)
-{
-       NSS_STATUS ret;
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: endpwent\n", getpid());
-#endif
-
-       if (num_pw_cache > 0) {
-               ndx_pw_cache = num_pw_cache = 0;
-               winbindd_free_response(&getpwent_response);
-       }
-
-       ret = winbindd_request_response(WINBINDD_ENDPWENT, NULL, NULL);
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: endpwent returns %s (%d)\n", getpid(),
-               nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Fetch the next password entry from ntdom password database */
-
-NSS_STATUS
-_nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
-                       size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_request request;
-       static int called_again;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getpwent\n", getpid());
-#endif
-
-       /* Return an entry from the cache if we have one, or if we are
-          called again because we exceeded our static buffer.  */
-
-       if ((ndx_pw_cache < num_pw_cache) || called_again) {
-               goto return_result;
-       }
-
-       /* Else call winbindd to get a bunch of entries */
-       
-       if (num_pw_cache > 0) {
-               winbindd_free_response(&getpwent_response);
-       }
-
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(getpwent_response);
-
-       request.data.num_entries = MAX_GETPWENT_USERS;
-
-       ret = winbindd_request_response(WINBINDD_GETPWENT, &request, 
-                              &getpwent_response);
-
-       if (ret == NSS_STATUS_SUCCESS) {
-               struct winbindd_pw *pw_cache;
-
-               /* Fill cache */
-
-               ndx_pw_cache = 0;
-               num_pw_cache = getpwent_response.data.num_entries;
-
-               /* Return a result */
-
-       return_result:
-
-               pw_cache = (struct winbindd_pw *)
-                       getpwent_response.extra_data.data;
-
-               /* Check data is valid */
-
-               if (pw_cache == NULL) {
-                       ret = NSS_STATUS_NOTFOUND;
-                       goto done;
-               }
-
-               ret = fill_pwent(result, &pw_cache[ndx_pw_cache],
-                                &buffer, &buflen);
-               
-               /* Out of memory - try again */
-
-               if (ret == NSS_STATUS_TRYAGAIN) {
-                       called_again = true;
-                       *errnop = errno = ERANGE;
-                       goto done;
-               }
-
-               *errnop = errno = 0;
-               called_again = false;
-               ndx_pw_cache++;
-
-               /* If we've finished with this lot of results free cache */
-
-               if (ndx_pw_cache == num_pw_cache) {
-                       ndx_pw_cache = num_pw_cache = 0;
-                       winbindd_free_response(&getpwent_response);
-               }
-       }
-       done:
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getpwent returns %s (%d)\n", getpid(),
-               nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Return passwd struct from uid */
-
-NSS_STATUS
-_nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, char *buffer,
-                       size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       static struct winbindd_response response;
-       struct winbindd_request request;
-       static int keep_response=0;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getpwuid %d\n", getpid(), (unsigned int)uid);
-#endif
-
-       /* If our static buffer needs to be expanded we are called again */
-       if (!keep_response) {
-
-               /* Call for the first time */
-
-               ZERO_STRUCT(response);
-               ZERO_STRUCT(request);
-
-               request.data.uid = uid;
-
-               ret = winbindd_request_response(WINBINDD_GETPWUID, &request, &response);
-
-               if (ret == NSS_STATUS_SUCCESS) {
-                       ret = fill_pwent(result, &response.data.pw, 
-                                        &buffer, &buflen);
-
-                       if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = true;
-                               *errnop = errno = ERANGE;
-                               goto done;
-                       }
-               }
-
-       } else {
-
-               /* We've been called again */
-
-               ret = fill_pwent(result, &response.data.pw, &buffer, &buflen);
-
-               if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = true;
-                       *errnop = errno = ERANGE;
-                       goto done;
-               }
-
-               keep_response = false;
-               *errnop = errno = 0;
-       }
-
-       winbindd_free_response(&response);
-       done:
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getpwuid %d returns %s (%d)\n", getpid(),
-               (unsigned int)uid, nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Return passwd struct from username */
-NSS_STATUS
-_nss_winbind_getpwnam_r(const char *name, struct passwd *result, char *buffer,
-                       size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       static struct winbindd_response response;
-       struct winbindd_request request;
-       static int keep_response;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getpwnam %s\n", getpid(), name);
-#endif
-
-       /* If our static buffer needs to be expanded we are called again */
-
-       if (!keep_response) {
-
-               /* Call for the first time */
-
-               ZERO_STRUCT(response);
-               ZERO_STRUCT(request);
-
-               strncpy(request.data.username, name, 
-                       sizeof(request.data.username) - 1);
-               request.data.username
-                       [sizeof(request.data.username) - 1] = '\0';
-
-               ret = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response);
-
-               if (ret == NSS_STATUS_SUCCESS) {
-                       ret = fill_pwent(result, &response.data.pw, &buffer,
-                                        &buflen);
-
-                       if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = true;
-                               *errnop = errno = ERANGE;
-                               goto done;
-                       }
-               }
-
-       } else {
-
-               /* We've been called again */
-
-               ret = fill_pwent(result, &response.data.pw, &buffer, &buflen);
-
-               if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = true;
-                       *errnop = errno = ERANGE;
-                       goto done;
-               }
-
-               keep_response = false;
-               *errnop = errno = 0;
-       }
-
-       winbindd_free_response(&response);
-       done:
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getpwnam %s returns %s (%d)\n", getpid(),
-               name, nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/*
- * NSS group functions
- */
-
-static struct winbindd_response getgrent_response;
-
-static int ndx_gr_cache;                 /* Current index into grp cache */
-static int num_gr_cache;                 /* Current size of grp cache */
-
-/* Rewind "file pointer" to start of ntdom group database */
-
-NSS_STATUS
-_nss_winbind_setgrent(void)
-{
-       NSS_STATUS ret;
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: setgrent\n", getpid());
-#endif
-
-       if (num_gr_cache > 0) {
-               ndx_gr_cache = num_gr_cache = 0;
-               winbindd_free_response(&getgrent_response);
-       }
-
-       ret = winbindd_request_response(WINBINDD_SETGRENT, NULL, NULL);
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: setgrent returns %s (%d)\n", getpid(),
-               nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Close "file pointer" for ntdom group database */
-
-NSS_STATUS
-_nss_winbind_endgrent(void)
-{
-       NSS_STATUS ret;
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: endgrent\n", getpid());
-#endif
-
-       if (num_gr_cache > 0) {
-               ndx_gr_cache = num_gr_cache = 0;
-               winbindd_free_response(&getgrent_response);
-       }
-
-       ret = winbindd_request_response(WINBINDD_ENDGRENT, NULL, NULL);
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: endgrent returns %s (%d)\n", getpid(),
-               nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Get next entry from ntdom group database */
-
-static NSS_STATUS
-winbind_getgrent(enum winbindd_cmd cmd,
-                struct group *result,
-                char *buffer, size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       static struct winbindd_request request;
-       static int called_again;
-       
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getgrent\n", getpid());
-#endif
-
-       /* Return an entry from the cache if we have one, or if we are
-          called again because we exceeded our static buffer.  */
-
-       if ((ndx_gr_cache < num_gr_cache) || called_again) {
-               goto return_result;
-       }
-
-       /* Else call winbindd to get a bunch of entries */
-       
-       if (num_gr_cache > 0) {
-               winbindd_free_response(&getgrent_response);
-       }
-
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(getgrent_response);
-
-       request.data.num_entries = MAX_GETGRENT_USERS;
-
-       ret = winbindd_request_response(cmd, &request, 
-                              &getgrent_response);
-
-       if (ret == NSS_STATUS_SUCCESS) {
-               struct winbindd_gr *gr_cache;
-               int mem_ofs;
-
-               /* Fill cache */
-
-               ndx_gr_cache = 0;
-               num_gr_cache = getgrent_response.data.num_entries;
-
-               /* Return a result */
-
-       return_result:
-
-               gr_cache = (struct winbindd_gr *)
-                       getgrent_response.extra_data.data;
-
-               /* Check data is valid */
-
-               if (gr_cache == NULL) {
-                       ret = NSS_STATUS_NOTFOUND;
-                       goto done;
-               }
-
-               /* Fill group membership.  The offset into the extra data
-                  for the group membership is the reported offset plus the
-                  size of all the winbindd_gr records returned. */
-
-               mem_ofs = gr_cache[ndx_gr_cache].gr_mem_ofs +
-                       num_gr_cache * sizeof(struct winbindd_gr);
-
-               ret = fill_grent(result, &gr_cache[ndx_gr_cache],
-                                ((char *)getgrent_response.extra_data.data)+mem_ofs,
-                                &buffer, &buflen);
-               
-               /* Out of memory - try again */
-
-               if (ret == NSS_STATUS_TRYAGAIN) {
-                       called_again = true;
-                       *errnop = errno = ERANGE;
-                       goto done;
-               }
-
-               *errnop = 0;
-               called_again = false;
-               ndx_gr_cache++;
-
-               /* If we've finished with this lot of results free cache */
-
-               if (ndx_gr_cache == num_gr_cache) {
-                       ndx_gr_cache = num_gr_cache = 0;
-                       winbindd_free_response(&getgrent_response);
-               }
-       }
-       done:
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getgrent returns %s (%d)\n", getpid(),
-               nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-
-NSS_STATUS
-_nss_winbind_getgrent_r(struct group *result,
-                       char *buffer, size_t buflen, int *errnop)
-{
-       return winbind_getgrent(WINBINDD_GETGRENT, result, buffer, buflen, errnop);
-}
-
-NSS_STATUS
-_nss_winbind_getgrlst_r(struct group *result,
-                       char *buffer, size_t buflen, int *errnop)
-{
-       return winbind_getgrent(WINBINDD_GETGRLST, result, buffer, buflen, errnop);
-}
-
-/* Return group struct from group name */
-
-NSS_STATUS
-_nss_winbind_getgrnam_r(const char *name,
-                       struct group *result, char *buffer,
-                       size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       static struct winbindd_response response;
-       struct winbindd_request request;
-       static int keep_response;
-       
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getgrnam %s\n", getpid(), name);
-#endif
-
-       /* If our static buffer needs to be expanded we are called again */
-       
-       if (!keep_response) {
-
-               /* Call for the first time */
-
-               ZERO_STRUCT(request);
-               ZERO_STRUCT(response);
-
-               strncpy(request.data.groupname, name, 
-                       sizeof(request.data.groupname));
-               request.data.groupname
-                       [sizeof(request.data.groupname) - 1] = '\0';
-
-               ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response);
-
-               if (ret == NSS_STATUS_SUCCESS) {
-                       ret = fill_grent(result, &response.data.gr, 
-                                        (char *)response.extra_data.data,
-                                        &buffer, &buflen);
-
-                       if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = true;
-                               *errnop = errno = ERANGE;
-                               goto done;
-                       }
-               }
-
-       } else {
-               
-               /* We've been called again */
-               
-               ret = fill_grent(result, &response.data.gr, 
-                                (char *)response.extra_data.data, &buffer,
-                                &buflen);
-               
-               if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = true;
-                       *errnop = errno = ERANGE;
-                       goto done;
-               }
-
-               keep_response = false;
-               *errnop = 0;
-       }
-
-       winbindd_free_response(&response);
-       done:
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getgrnam %s returns %s (%d)\n", getpid(),
-               name, nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Return group struct from gid */
-
-NSS_STATUS
-_nss_winbind_getgrgid_r(gid_t gid,
-                       struct group *result, char *buffer,
-                       size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       static struct winbindd_response response;
-       struct winbindd_request request;
-       static int keep_response;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getgrgid %d\n", getpid(), gid);
-#endif
-
-       /* If our static buffer needs to be expanded we are called again */
-
-       if (!keep_response) {
-
-               /* Call for the first time */
-
-               ZERO_STRUCT(request);
-               ZERO_STRUCT(response);
-
-               request.data.gid = gid;
-
-               ret = winbindd_request_response(WINBINDD_GETGRGID, &request, &response);
-
-               if (ret == NSS_STATUS_SUCCESS) {
-
-                       ret = fill_grent(result, &response.data.gr, 
-                                        (char *)response.extra_data.data, 
-                                        &buffer, &buflen);
-
-                       if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = true;
-                               *errnop = errno = ERANGE;
-                               goto done;
-                       }
-               }
-
-       } else {
-
-               /* We've been called again */
-
-               ret = fill_grent(result, &response.data.gr, 
-                                (char *)response.extra_data.data, &buffer,
-                                &buflen);
-
-               if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = true;
-                       *errnop = errno = ERANGE;
-                       goto done;
-               }
-
-               keep_response = false;
-               *errnop = 0;
-       }
-
-       winbindd_free_response(&response);
-       done:
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getgrgid %d returns %s (%d)\n", getpid(),
-               (unsigned int)gid, nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-/* Initialise supplementary groups */
-
-NSS_STATUS
-_nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start,
-                           long int *size, gid_t **groups, long int limit,
-                           int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_request request;
-       struct winbindd_response response;
-       int i;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: initgroups %s (%d)\n", getpid(),
-               user, group);
-#endif
-
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(response);
-
-       strncpy(request.data.username, user,
-               sizeof(request.data.username) - 1);
-
-       ret = winbindd_request_response(WINBINDD_GETGROUPS, &request, &response);
-
-       if (ret == NSS_STATUS_SUCCESS) {
-               int num_gids = response.data.num_entries;
-               gid_t *gid_list = (gid_t *)response.extra_data.data;
-
-#ifdef DEBUG_NSS
-               fprintf(stderr, "[%5d]: initgroups %s: got NSS_STATUS_SUCCESS "
-                               "and %d gids\n", getpid(),
-                               user, num_gids);
-#endif
-               if (gid_list == NULL) {
-                       ret = NSS_STATUS_NOTFOUND;
-                       goto done;
-               }
-
-               /* Copy group list to client */
-
-               for (i = 0; i < num_gids; i++) {
-
-#ifdef DEBUG_NSS
-                       fprintf(stderr, "[%5d]: initgroups %s (%d): "
-                                       "processing gid %d \n", getpid(),
-                                       user, group, gid_list[i]);
-#endif
-
-                       /* Skip primary group */
-
-                       if (gid_list[i] == group) {
-                               continue;
-                       }
-
-                       /* Filled buffer ? If so, resize. */
-
-                       if (*start == *size) {
-                               long int newsize;
-                               gid_t *newgroups;
-
-                               newsize = 2 * (*size);
-                               if (limit > 0) {
-                                       if (*size == limit) {
-                                               goto done;
-                                       }
-                                       if (newsize > limit) {
-                                               newsize = limit;
-                                       }
-                               }
-
-                               newgroups = (gid_t *)
-                                       realloc((*groups),
-                                               newsize * sizeof(**groups));
-                               if (!newgroups) {
-                                       *errnop = ENOMEM;
-                                       ret = NSS_STATUS_NOTFOUND;
-                                       goto done;
-                               }
-                               *groups = newgroups;
-                               *size = newsize;
-                       }
-
-                       /* Add to buffer */
-
-                       (*groups)[*start] = gid_list[i];
-                       *start += 1;
-               }
-       }
-       
-       /* Back to your regularly scheduled programming */
-
- done:
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: initgroups %s returns %s (%d)\n", getpid(),
-               user, nss_err_str(ret), ret);
-#endif
-       return ret;
-}
-
-
-/* return a list of group SIDs for a user SID */
-NSS_STATUS
-_nss_winbind_getusersids(const char *user_sid, char **group_sids,
-                        int *num_groups,
-                        char *buffer, size_t buf_size, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_request request;
-       struct winbindd_response response;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: getusersids %s\n", getpid(), user_sid);
-#endif
-
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(response);
-
-       strncpy(request.data.sid, user_sid,sizeof(request.data.sid) - 1);
-       request.data.sid[sizeof(request.data.sid) - 1] = '\0';
-
-       ret = winbindd_request_response(WINBINDD_GETUSERSIDS, &request, &response);
-
-       if (ret != NSS_STATUS_SUCCESS) {
-               goto done;
-       }
-
-       if (buf_size < response.length - sizeof(response)) {
-               ret = NSS_STATUS_TRYAGAIN;
-               errno = *errnop = ERANGE;
-               goto done;
-       }
-
-       *num_groups = response.data.num_entries;
-       *group_sids = buffer;
-       memcpy(buffer, response.extra_data.data, response.length - sizeof(response));
-       errno = *errnop = 0;
-       
- done:
-       winbindd_free_response(&response);
-       return ret;
-}
-
-
-/* map a user or group name to a SID string */
-NSS_STATUS
-_nss_winbind_nametosid(const char *name, char **sid, char *buffer,
-                      size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_response response;
-       struct winbindd_request request;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: nametosid %s\n", getpid(), name);
-#endif
-
-       ZERO_STRUCT(response);
-       ZERO_STRUCT(request);
-
-       strncpy(request.data.name.name, name, 
-               sizeof(request.data.name.name) - 1);
-       request.data.name.name[sizeof(request.data.name.name) - 1] = '\0';
-
-       ret = winbindd_request_response(WINBINDD_LOOKUPNAME, &request, &response);
-       if (ret != NSS_STATUS_SUCCESS) {
-               *errnop = errno = EINVAL;
-               goto failed;
-       }
-
-       if (buflen < strlen(response.data.sid.sid)+1) {
-               ret = NSS_STATUS_TRYAGAIN;
-               *errnop = errno = ERANGE;
-               goto failed;
-       }
-
-       *errnop = errno = 0;
-       *sid = buffer;
-       strcpy(*sid, response.data.sid.sid);
-
-failed:
-       winbindd_free_response(&response);
-       return ret;
-}
-
-/* map a sid string to a user or group name */
-NSS_STATUS
-_nss_winbind_sidtoname(const char *sid, char **name, char *buffer,
-                      size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_response response;
-       struct winbindd_request request;
-       static char sep_char;
-       unsigned needed;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: sidtoname %s\n", getpid(), sid);
-#endif
-
-       ZERO_STRUCT(response);
-       ZERO_STRUCT(request);
-
-       /* we need to fetch the separator first time through */
-       if (!sep_char) {
-               ret = winbindd_request_response(WINBINDD_INFO, &request, &response);
-               if (ret != NSS_STATUS_SUCCESS) {
-                       *errnop = errno = EINVAL;
-                       goto failed;
-               }
-
-               sep_char = response.data.info.winbind_separator;
-               winbindd_free_response(&response);
-       }
-
-
-       strncpy(request.data.sid, sid, 
-               sizeof(request.data.sid) - 1);
-       request.data.sid[sizeof(request.data.sid) - 1] = '\0';
-
-       ret = winbindd_request_response(WINBINDD_LOOKUPSID, &request, &response);
-       if (ret != NSS_STATUS_SUCCESS) {
-               *errnop = errno = EINVAL;
-               goto failed;
-       }
-
-       needed = 
-               strlen(response.data.name.dom_name) +
-               strlen(response.data.name.name) + 2;
-
-       if (buflen < needed) {
-               ret = NSS_STATUS_TRYAGAIN;
-               *errnop = errno = ERANGE;
-               goto failed;
-       }
-
-       snprintf(buffer, needed, "%s%c%s", 
-                response.data.name.dom_name,
-                sep_char,
-                response.data.name.name);
-
-       *name = buffer;
-       *errnop = errno = 0;
-
-failed:
-       winbindd_free_response(&response);
-       return ret;
-}
-
-/* map a sid to a uid */
-NSS_STATUS
-_nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_response response;
-       struct winbindd_request request;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: sidtouid %s\n", getpid(), sid);
-#endif
-
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(response);
-
-       strncpy(request.data.sid, sid, sizeof(request.data.sid) - 1);
-       request.data.sid[sizeof(request.data.sid) - 1] = '\0';
-
-       ret = winbindd_request_response(WINBINDD_SID_TO_UID, &request, &response);
-       if (ret != NSS_STATUS_SUCCESS) {
-               *errnop = errno = EINVAL;
-               goto failed;
-       }
-
-       *uid = response.data.uid;
-
-failed:
-       return ret;
-}
-
-/* map a sid to a gid */
-NSS_STATUS
-_nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_response response;
-       struct winbindd_request request;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5d]: sidtogid %s\n", getpid(), sid);
-#endif
-
-       ZERO_STRUCT(request);
-       ZERO_STRUCT(response);
-
-       strncpy(request.data.sid, sid, sizeof(request.data.sid) - 1);
-       request.data.sid[sizeof(request.data.sid) - 1] = '\0';
-
-       ret = winbindd_request_response(WINBINDD_SID_TO_GID, &request, &response);
-       if (ret != NSS_STATUS_SUCCESS) {
-               *errnop = errno = EINVAL;
-               goto failed;
-       }
-
-       *gid = response.data.gid;
-
-failed:
-       return ret;
-}
-
-/* map a uid to a SID string */
-NSS_STATUS
-_nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer,
-                     size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_response response;
-       struct winbindd_request request;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5u]: uidtosid %u\n", (unsigned int)getpid(), (unsigned int)uid);
-#endif
-
-       ZERO_STRUCT(response);
-       ZERO_STRUCT(request);
-
-       request.data.uid = uid;
-
-       ret = winbindd_request_response(WINBINDD_UID_TO_SID, &request, &response);
-       if (ret != NSS_STATUS_SUCCESS) {
-               *errnop = errno = EINVAL;
-               goto failed;
-       }
-
-       if (buflen < strlen(response.data.sid.sid)+1) {
-               ret = NSS_STATUS_TRYAGAIN;
-               *errnop = errno = ERANGE;
-               goto failed;
-       }
-
-       *errnop = errno = 0;
-       *sid = buffer;
-       strcpy(*sid, response.data.sid.sid);
-
-failed:
-       winbindd_free_response(&response);
-       return ret;
-}
-
-/* map a gid to a SID string */
-NSS_STATUS
-_nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer,
-                     size_t buflen, int *errnop)
-{
-       NSS_STATUS ret;
-       struct winbindd_response response;
-       struct winbindd_request request;
-
-#ifdef DEBUG_NSS
-       fprintf(stderr, "[%5u]: gidtosid %u\n", (unsigned int)getpid(), (unsigned int)gid);
-#endif
-
-       ZERO_STRUCT(response);
-       ZERO_STRUCT(request);
-
-       request.data.gid = gid;
-
-       ret = winbindd_request_response(WINBINDD_GID_TO_SID, &request, &response);
-       if (ret != NSS_STATUS_SUCCESS) {
-               *errnop = errno = EINVAL;
-               goto failed;
-       }
-
-       if (buflen < strlen(response.data.sid.sid)+1) {
-               ret = NSS_STATUS_TRYAGAIN;
-               *errnop = errno = ERANGE;
-               goto failed;
-       }
-
-       *errnop = errno = 0;
-       *sid = buffer;
-       strcpy(*sid, response.data.sid.sid);
-
-failed:
-       winbindd_free_response(&response);
-       return ret;
-}
diff --git a/source4/nsswitch/winbind_nss_linux.h b/source4/nsswitch/winbind_nss_linux.h
deleted file mode 100644 (file)
index 74aaec5..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Winbind daemon for ntdom nss module
-
-   Copyright (C) Tim Potter 2000
-   
-   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
-   Library General Public License for more details.
-   
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _WINBIND_NSS_LINUX_H
-#define _WINBIND_NSS_LINUX_H
-
-#include <nss.h>
-
-typedef enum nss_status NSS_STATUS;
-
-#endif /* _WINBIND_NSS_LINUX_H */
diff --git a/source4/nsswitch/winbind_struct_protocol.h b/source4/nsswitch/winbind_struct_protocol.h
deleted file mode 100644 (file)
index 8003ea9..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Winbind daemon for ntdom nss module
-
-   Copyright (C) Tim Potter 2000
-   Copyright (C) Gerald Carter 2006
-   
-   You are free to use this interface definition in any way you see
-   fit, including without restriction, using this header in your own
-   products. You do not need to give any attribution.  
-*/
-
-#ifndef SAFE_FREE
-#define SAFE_FREE(x) do { if(x) {free(x); x=NULL;} } while(0)
-#endif
-
-#ifndef _WINBINDD_NTDOM_H
-#define _WINBINDD_NTDOM_H
-
-#define _PSTRING
-#define FSTRING_LEN 256
-
-typedef char fstring[FSTRING_LEN];
-
-#define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1)
-#define fstrcat(d,s) safe_strcat((d),(s),sizeof(fstring)-1)
-
-#define WINBINDD_SOCKET_NAME "pipe"            /* Name of PF_UNIX socket */
-
-/* Let the build environment override the public winbindd socket location. This
- * is needed for launchd support -- jpeach.
- */
-#ifndef WINBINDD_SOCKET_DIR
-#define WINBINDD_SOCKET_DIR  "/tmp/.winbindd"  /* Name of PF_UNIX dir */
-#endif
-
-/*
- * when compiled with socket_wrapper support
- * the location of the WINBINDD_SOCKET_DIR
- * can be overwritten via an environment variable
- */
-#define WINBINDD_SOCKET_DIR_ENVVAR "WINBINDD_SOCKET_DIR"
-
-#define WINBINDD_DOMAIN_ENV  "WINBINDD_DOMAIN" /* Environment variables */
-#define WINBINDD_DONT_ENV    "_NO_WINBINDD"
-#define WINBINDD_LOCATOR_KDC_ADDRESS "WINBINDD_LOCATOR_KDC_ADDRESS"
-
-/* Update this when you change the interface.  */
-
-#define WINBIND_INTERFACE_VERSION 19
-
-/* Have to deal with time_t being 4 or 8 bytes due to structure alignment.
-   On a 64bit Linux box, we have to support a constant structure size
-   between /lib/libnss_winbind.so.2 and /li64/libnss_winbind.so.2.
-   The easiest way to do this is to always use 8byte values for time_t. */
-
-#define SMB_TIME_T int64_t
-
-/* Socket commands */
-
-enum winbindd_cmd {
-
-       WINBINDD_INTERFACE_VERSION,    /* Always a well known value */
-
-       /* Get users and groups */
-
-       WINBINDD_GETPWNAM,
-       WINBINDD_GETPWUID,
-       WINBINDD_GETGRNAM,
-       WINBINDD_GETGRGID,
-       WINBINDD_GETGROUPS,
-
-       /* Enumerate users and groups */
-
-       WINBINDD_SETPWENT,
-       WINBINDD_ENDPWENT,
-       WINBINDD_GETPWENT,
-       WINBINDD_SETGRENT,
-       WINBINDD_ENDGRENT,
-       WINBINDD_GETGRENT,
-
-       /* PAM authenticate and password change */
-
-       WINBINDD_PAM_AUTH,
-       WINBINDD_PAM_AUTH_CRAP,
-       WINBINDD_PAM_CHAUTHTOK,
-       WINBINDD_PAM_LOGOFF,
-       WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP,
-
-       /* List various things */
-
-       WINBINDD_LIST_USERS,         /* List w/o rid->id mapping */
-       WINBINDD_LIST_GROUPS,        /* Ditto */
-       WINBINDD_LIST_TRUSTDOM,
-
-       /* SID conversion */
-
-       WINBINDD_LOOKUPSID,
-       WINBINDD_LOOKUPNAME,
-       WINBINDD_LOOKUPRIDS,
-
-       /* Lookup functions */
-
-       WINBINDD_SID_TO_UID,       
-       WINBINDD_SID_TO_GID,
-       WINBINDD_SIDS_TO_XIDS,
-       WINBINDD_UID_TO_SID,
-       WINBINDD_GID_TO_SID,
-
-       WINBINDD_ALLOCATE_UID,
-       WINBINDD_ALLOCATE_GID,
-       WINBINDD_SET_MAPPING,
-       WINBINDD_SET_HWM,
-
-       /* Miscellaneous other stuff */
-
-       WINBINDD_DUMP_MAPS,
-
-       WINBINDD_CHECK_MACHACC,     /* Check machine account pw works */
-       WINBINDD_PING,              /* Just tell me winbind is running */
-       WINBINDD_INFO,              /* Various bit of info.  Currently just tidbits */
-       WINBINDD_DOMAIN_NAME,       /* The domain this winbind server is a member of (lp_workgroup()) */
-
-       WINBINDD_DOMAIN_INFO,   /* Most of what we know from
-                                  struct winbindd_domain */
-       WINBINDD_GETDCNAME,     /* Issue a GetDCName Request */
-       WINBINDD_DSGETDCNAME,   /* Issue a DsGetDCName Request */
-
-       WINBINDD_SHOW_SEQUENCE, /* display sequence numbers of domains */
-
-       /* WINS commands */
-
-       WINBINDD_WINS_BYIP,
-       WINBINDD_WINS_BYNAME,
-
-       /* this is like GETGRENT but gives an empty group list */
-       WINBINDD_GETGRLST,
-
-       WINBINDD_NETBIOS_NAME,       /* The netbios name of the server */
-
-       /* find the location of our privileged pipe */
-       WINBINDD_PRIV_PIPE_DIR,
-
-       /* return a list of group sids for a user sid */
-       WINBINDD_GETUSERSIDS,
-
-       /* Various group queries */
-       WINBINDD_GETUSERDOMGROUPS,
-
-       /* Initialize connection in a child */
-       WINBINDD_INIT_CONNECTION,
-
-       /* Blocking calls that are not allowed on the main winbind pipe, only
-        * between parent and children */
-       WINBINDD_DUAL_SID2UID,
-       WINBINDD_DUAL_SID2GID,
-       WINBINDD_DUAL_SIDS2XIDS,
-       WINBINDD_DUAL_UID2SID,
-       WINBINDD_DUAL_GID2SID,
-       WINBINDD_DUAL_SET_MAPPING,
-       WINBINDD_DUAL_SET_HWM,
-       WINBINDD_DUAL_DUMP_MAPS,
-
-       /* Wrapper around possibly blocking unix nss calls */
-       WINBINDD_DUAL_UID2NAME,
-       WINBINDD_DUAL_NAME2UID,
-       WINBINDD_DUAL_GID2NAME,
-       WINBINDD_DUAL_NAME2GID,
-
-       WINBINDD_DUAL_USERINFO,
-       WINBINDD_DUAL_GETSIDALIASES,
-
-       /* Complete the challenge phase of the NTLM authentication
-          protocol using cached password. */
-       WINBINDD_CCACHE_NTLMAUTH,
-
-       WINBINDD_NUM_CMDS
-};
-
-typedef struct winbindd_pw {
-       fstring pw_name;
-       fstring pw_passwd;
-       uid_t pw_uid;
-       gid_t pw_gid;
-       fstring pw_gecos;
-       fstring pw_dir;
-       fstring pw_shell;
-} WINBINDD_PW;
-
-
-typedef struct winbindd_gr {
-       fstring gr_name;
-       fstring gr_passwd;
-       gid_t gr_gid;
-       uint32_t num_gr_mem;
-       uint32_t gr_mem_ofs;   /* offset to group membership */
-} WINBINDD_GR;
-
-/* PAM specific request flags */
-#define WBFLAG_PAM_INFO3_NDR           0x00000001
-#define WBFLAG_PAM_INFO3_TEXT          0x00000002
-#define WBFLAG_PAM_USER_SESSION_KEY    0x00000004
-#define WBFLAG_PAM_LMKEY               0x00000008
-#define WBFLAG_PAM_CONTACT_TRUSTDOM    0x00000010
-#define WBFLAG_PAM_UNIX_NAME           0x00000080
-#define WBFLAG_PAM_AFS_TOKEN           0x00000100
-#define WBFLAG_PAM_NT_STATUS_SQUASH    0x00000200
-#define WBFLAG_PAM_KRB5                        0x00001000
-#define WBFLAG_PAM_FALLBACK_AFTER_KRB5 0x00002000
-#define WBFLAG_PAM_CACHED_LOGIN                0x00004000
-#define WBFLAG_PAM_GET_PWD_POLICY      0x00008000      /* not used */
-
-/* generic request flags */
-#define WBFLAG_QUERY_ONLY              0x00000020      /* not used */
-/* This is a flag that can only be sent from parent to child */
-#define WBFLAG_IS_PRIVILEGED           0x00000400      /* not used */
-/* Flag to say this is a winbindd internal send - don't recurse. */
-#define WBFLAG_RECURSE                 0x00000800
-
-
-#define WINBINDD_MAX_EXTRA_DATA (128*1024)
-
-/* Winbind request structure */
-
-/*******************************************************************************
- * This structure MUST be the same size in the 32bit and 64bit builds
- * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
- * 
- * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
- * A 64BIT WINBINDD    --jerry
- ******************************************************************************/
-
-struct winbindd_request {
-       uint32_t length;
-       enum winbindd_cmd cmd;   /* Winbindd command to execute */
-       enum winbindd_cmd original_cmd;   /* Original Winbindd command
-                                            issued to parent process */
-       pid_t pid;               /* pid of calling process */
-       uint32_t wb_flags;       /* generic flags */
-       uint32_t flags;          /* flags relevant *only* to a given request */
-       fstring domain_name;    /* name of domain for which the request applies */
-
-       union {
-               fstring winsreq;     /* WINS request */
-               fstring username;    /* getpwnam */
-               fstring groupname;   /* getgrnam */
-               uid_t uid;           /* getpwuid, uid_to_sid */
-               gid_t gid;           /* getgrgid, gid_to_sid */
-               struct {
-                       /* We deliberatedly don't split into domain/user to
-                           avoid having the client know what the separator
-                           character is. */    
-                       fstring user;
-                       fstring pass;
-                       char require_membership_of_sid[1024];
-                       fstring krb5_cc_type;
-                       uid_t uid;
-               } auth;              /* pam_winbind auth module */
-                struct {
-                        uint8_t chal[8];
-                       uint32_t logon_parameters;
-                        fstring user;
-                        fstring domain;
-                        fstring lm_resp;
-                        uint32_t lm_resp_len;
-                        fstring nt_resp;
-                        uint32_t nt_resp_len;
-                       fstring workstation;
-                       fstring require_membership_of_sid;
-                } auth_crap;
-                struct {
-                    fstring user;
-                    fstring oldpass;
-                    fstring newpass;
-                } chauthtok;         /* pam_winbind passwd module */
-               struct {
-                       fstring user;
-                       fstring domain;
-                       uint8_t new_nt_pswd[516];
-                       uint16_t new_nt_pswd_len;
-                       uint8_t old_nt_hash_enc[16];
-                       uint16_t old_nt_hash_enc_len;
-                       uint8_t new_lm_pswd[516];
-                       uint16_t new_lm_pswd_len;
-                       uint8_t old_lm_hash_enc[16];
-                       uint16_t old_lm_hash_enc_len;
-               } chng_pswd_auth_crap;/* pam_winbind passwd module */
-               struct {
-                       fstring user;
-                       fstring krb5ccname;
-                       uid_t uid;
-               } logoff;              /* pam_winbind session module */
-               fstring sid;         /* lookupsid, sid_to_[ug]id */
-               struct {
-                       fstring dom_name;       /* lookupname */
-                       fstring name;       
-               } name;
-               uint32_t num_entries;  /* getpwent, getgrent */
-               struct {
-                       fstring username;
-                       fstring groupname;
-               } acct_mgt;
-               struct {
-                       bool is_primary;
-                       fstring dcname;
-               } init_conn;
-               struct {
-                       fstring sid;
-                       fstring name;
-               } dual_sid2id;
-               struct {
-                       fstring sid;
-                       uint32_t type;
-                       uint32_t id;
-               } dual_idmapset;
-               bool list_all_domains;
-
-               struct {
-                       uid_t uid;
-                       fstring user;
-                       /* the effective uid of the client, must be the uid for 'user'.
-                          This is checked by the main daemon, trusted by children. */
-                       /* if the blobs are length zero, then this doesn't
-                          produce an actual challenge response. It merely
-                          succeeds if there are cached credentials available
-                          that could be used. */
-                       uint32_t initial_blob_len; /* blobs in extra_data */
-                       uint32_t challenge_blob_len;
-               } ccache_ntlm_auth;
-
-               /* padding -- needed to fix alignment between 32bit and 64bit libs.
-                  The size is the sizeof the union without the padding aligned on 
-                  an 8 byte boundary.   --jerry */
-
-               char padding[1800];
-       } data;
-       union {
-               SMB_TIME_T padding;
-               char *data;
-       } extra_data;
-       uint32_t extra_len;
-       char null_term;
-};
-
-/* Response values */
-
-enum winbindd_result {
-       WINBINDD_ERROR,
-       WINBINDD_PENDING,
-       WINBINDD_OK
-};
-
-/* Winbind response structure */
-
-/*******************************************************************************
- * This structure MUST be the same size in the 32bit and 64bit builds
- * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
- * 
- * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
- * A 64BIT WINBINDD    --jerry
- ******************************************************************************/
-
-struct winbindd_response {
-    
-       /* Header information */
-
-       uint32_t length;                      /* Length of response */
-       enum winbindd_result result;          /* Result code */
-
-       /* Fixed length return data */
-       
-       union {
-               int interface_version;  /* Try to ensure this is always in the same spot... */
-               
-               fstring winsresp;               /* WINS response */
-
-               /* getpwnam, getpwuid */
-               
-               struct winbindd_pw pw;
-
-               /* getgrnam, getgrgid */
-
-               struct winbindd_gr gr;
-
-               uint32_t num_entries; /* getpwent, getgrent */
-               struct winbindd_sid {
-                       fstring sid;        /* lookupname, [ug]id_to_sid */
-                       int type;
-               } sid;
-               struct winbindd_name {
-                       fstring dom_name;       /* lookupsid */
-                       fstring name;       
-                       int type;
-               } name;
-               uid_t uid;          /* sid_to_uid */
-               gid_t gid;          /* sid_to_gid */
-               struct winbindd_info {
-                       char winbind_separator;
-                       fstring samba_version;
-               } info;
-               fstring domain_name;
-               fstring netbios_name;
-               fstring dc_name;
-
-               struct auth_reply {
-                       uint32_t nt_status;
-                       fstring nt_status_string;
-                       fstring error_string;
-                       int pam_error;
-                       char user_session_key[16];
-                       char first_8_lm_hash[8];
-                       fstring krb5ccname;
-                       uint32_t reject_reason;
-                       uint32_t padding;
-                       struct policy_settings {
-                               uint32_t min_length_password;
-                               uint32_t password_history;
-                               uint32_t password_properties;
-                               uint32_t padding;
-                               SMB_TIME_T expire;
-                               SMB_TIME_T min_passwordage;
-                       } policy;
-                       struct info3_text {
-                               SMB_TIME_T logon_time;
-                               SMB_TIME_T logoff_time;
-                               SMB_TIME_T kickoff_time;
-                               SMB_TIME_T pass_last_set_time;
-                               SMB_TIME_T pass_can_change_time;
-                               SMB_TIME_T pass_must_change_time;
-                               uint32_t logon_count;
-                               uint32_t bad_pw_count;
-                               uint32_t user_rid;
-                               uint32_t group_rid;
-                               uint32_t num_groups;
-                               uint32_t user_flgs;
-                               uint32_t acct_flags;
-                               uint32_t num_other_sids;
-                               fstring dom_sid;
-                               fstring user_name;
-                               fstring full_name;
-                               fstring logon_script;
-                               fstring profile_path;
-                               fstring home_dir;
-                               fstring dir_drive;
-                               fstring logon_srv;
-                               fstring logon_dom;
-                       } info3;
-               } auth;
-               struct {
-                       fstring name;
-                       fstring alt_name;
-                       fstring sid;
-                       bool native_mode;
-                       bool active_directory;
-                       bool primary;
-               } domain_info;
-               uint32_t sequence_number;
-               struct {
-                       fstring acct_name;
-                       fstring full_name;
-                       fstring homedir;
-                       fstring shell;
-                       uint32_t primary_gid;
-                       uint32_t group_rid;
-               } user_info;
-               struct {
-                       uint32_t auth_blob_len; /* blob in extra_data */
-               } ccache_ntlm_auth;
-       } data;
-
-       /* Variable length return data */
-
-       union {
-               SMB_TIME_T padding;
-               void *data;
-       } extra_data;
-};
-
-struct WINBINDD_MEMORY_CREDS {
-       struct WINBINDD_MEMORY_CREDS *next, *prev;
-       const char *username; /* lookup key. */
-       uid_t uid;
-       int ref_count;
-       size_t len;
-       uint8_t *nt_hash; /* Base pointer for the following 2 */
-       uint8_t *lm_hash;
-       char *pass;
-};
-
-struct WINBINDD_CCACHE_ENTRY {
-       struct WINBINDD_CCACHE_ENTRY *next, *prev;
-       const char *principal_name;
-       const char *ccname;
-       const char *service;
-       const char *username;
-       const char *realm;
-       struct WINBINDD_MEMORY_CREDS *cred_ptr;
-       int ref_count;
-       uid_t uid;
-       time_t create_time;
-       time_t renew_until;
-       time_t refresh_time;
-       struct timed_event *event;
-};
-
-#endif
index fc04d976f428ab62072a00e49450590add3bbc61..8433a431b0ea3046ef678fec1223ec848474a775 100644 (file)
@@ -24,6 +24,7 @@
 #include "libcli/raw/interfaces.h"
 #include "param/share.h"
 #include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /* modules can use the following to determine if the interface has changed */
 /* version 1 -> 0 - make module stacking easier -- metze */
index 5f055ae342bde7187440fcf9509f738651e9e114..d27a8b90de7069daf1ab5dcf87d1a227b8b64837 100644 (file)
@@ -648,7 +648,20 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
        pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST | extra_flags;
        pkt.u.bind_ack.max_xmit_frag = 0x2000;
        pkt.u.bind_ack.max_recv_frag = 0x2000;
-       pkt.u.bind_ack.assoc_group_id = iface?call->context->assoc_group_id:0;
+
+       /*
+         make it possible for iface->bind() to specify the assoc_group_id
+         This helps the openchange mapiproxy plugin to work correctly.
+         
+         metze
+       */
+       if (call->context) {
+               pkt.u.bind_ack.assoc_group_id = call->context->assoc_group_id;
+       } else {
+               /* we better pick something - this chosen so as to send a non zero assoc_group_id (matching windows), it also matches samba3 */
+               pkt.u.bind_ack.assoc_group_id = SAMBA_ASSOC_GROUP;
+       }
+
        if (iface) {
                /* FIXME: Use pipe name as specified by endpoint instead of interface name */
                pkt.u.bind_ack.secondary_address = talloc_asprintf(call, "\\PIPE\\%s", iface->name);
index bcd3d61f134c7d1a1fb09af7f45a13f8700ef1ac..28f4308433efded2108210bd4522d199433c9f6b 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef SAMBA_DCERPC_SERVER_H
 #define SAMBA_DCERPC_SERVER_H
 
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 #include "librpc/rpc/dcerpc.h"
 #include "librpc/ndr/libndr.h"
 
index 49e8c2ef5d03b77cfc08dd687ae149d00478f670..569759835a17c221bc92d52d41e4b99ba9109b35 100755 (executable)
@@ -297,8 +297,8 @@ plantest "blackbox.nmblookup" member $samba4srcdir/utils/tests/test_nmblookup.sh
 plantest "blackbox.locktest" dc $samba4srcdir/torture/tests/test_locktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
 plantest "blackbox.masktest" dc $samba4srcdir/torture/tests/test_masktest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
 plantest "blackbox.gentest" dc $samba4srcdir/torture/tests/test_gentest.sh "\$SERVER" "\$USERNAME" "\$PASSWORD" "\$DOMAIN" "$PREFIX"
-plantest "blackbox.wbinfo" dc $samba4srcdir/nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$USERNAME" "\$PASSWORD" "dc"
-plantest "blackbox.wbinfo" member $samba4srcdir/nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$DC_USERNAME" "\$DC_PASSWORD" "member"
+plantest "blackbox.wbinfo" dc $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$USERNAME" "\$PASSWORD" "dc"
+plantest "blackbox.wbinfo" member $samba4srcdir/../nsswitch/tests/test_wbinfo.sh "\$DOMAIN" "\$DC_USERNAME" "\$DC_PASSWORD" "member"
 
 # Tests using the "Simple" NTVFS backend
 
index 882a92ad481ffdd72f133398f8462b2e64349b17..bf6898faa8c8b08cc30e1c03ea2216d9b389f58a 100755 (executable)
@@ -131,8 +131,8 @@ if opts.interactive:
                else:
                        print "%s: " % (prompt,),
                return sys.stdin.readline().rstrip("\n") or default
-       opts.realm = ask("Realm", socket.gethostname().split(".", 1)[1])
-       opts.domain = ask("Domain", opts.realm)
+       opts.realm = ask("Realm", socket.gethostname().split(".", 1)[1].upper())
+       opts.domain = ask("Domain", opts.realm.split(".")[0])
        opts.server_role = ask("Server Role (dc, member, standalone)", "dc")
        for i in range(3):
                opts.adminpass = getpass("Administrator password: ")
index 7ec2a0538b9c6852929fc4036c8df75efddcc5e1..805c140a8375455e482b1d331c1c2cf786e973db 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef __SERVICE_STREAM_H__
 #define __SERVICE_STREAM_H__
 
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 /* modules can use the following to determine if the interface has changed
  * please increment the version number after each interface change
index ddd56bc9c96ff6a4a332d1a47caa2c45af4c51d9..c49962f05f8bfa20288fe76d55b664385d17ddbe 100644 (file)
@@ -22,7 +22,7 @@
 #ifndef __SERVICE_TASK_H__
 #define __SERVICE_TASK_H__ 
 
-#include "librpc/gen_ndr/security.h"
+#include "librpc/gen_ndr/server_id.h"
 
 struct task_server {
        struct event_context *event_ctx;
index 02edb306b3a298383007973fb4fb4255bc3c4f1c..8e334f453951efe412008407dde1319e77c53ba8 100644 (file)
@@ -48,9 +48,9 @@ static bool test_RemoteActivation(struct torture_context *tctx,
        }
 
        ZERO_STRUCT(r.in);
-       r.in.this.version.MajorVersion = 5;
-       r.in.this.version.MinorVersion = 1;
-       r.in.this.cid = GUID_random();
+       r.in.this_object.version.MajorVersion = 5;
+       r.in.this_object.version.MinorVersion = 1;
+       r.in.this_object.cid = GUID_random();
        GUID_from_string(CLSID_IMAGEDOC, &r.in.Clsid);
        r.in.ClientImpLevel = RPC_C_IMP_LEVEL_IDENTIFY;
        r.in.num_protseqs = 3;
index 1fc3c1376b03715089ebc3a13dd5a80db1ad12d8..0c5ac09977a33395809e7716cbe106cdba003eae 100644 (file)
@@ -37,9 +37,9 @@ static bool test_RemoteActivation(struct torture_context *tctx,
        uint16_t protseq[3] = { EPM_PROTOCOL_TCP, EPM_PROTOCOL_NCALRPC, EPM_PROTOCOL_UUID };
 
        ZERO_STRUCT(r.in);
-       r.in.this.version.MajorVersion = 5;
-       r.in.this.version.MinorVersion = 1;
-       r.in.this.cid = GUID_random();
+       r.in.this_object.version.MajorVersion = 5;
+       r.in.this_object.version.MinorVersion = 1;
+       r.in.this_object.cid = GUID_random();
        GUID_from_string(CLSID_IMAGEDOC, &r.in.Clsid);
        r.in.ClientImpLevel = RPC_C_IMP_LEVEL_IDENTIFY;
        r.in.num_protseqs = 3;
index 3b97dff27626ad35bcd5bbea5497b77c214b44ae..9a9765b564f475d025bb01def1c98cd289fe803a 100644 (file)
@@ -183,22 +183,19 @@ NTSTATUS wbsrv_samba3_handle_call(struct wbsrv_samba3_call *s3call)
        case WINBINDD_ALLOCATE_UID:
        case WINBINDD_ALLOCATE_GID:
        case WINBINDD_SET_MAPPING:
+       case WINBINDD_REMOVE_MAPPING:
        case WINBINDD_SET_HWM:
-       case WINBINDD_DUMP_MAPS:
        case WINBINDD_DOMAIN_INFO:
        case WINBINDD_SHOW_SEQUENCE:
        case WINBINDD_WINS_BYIP:
        case WINBINDD_WINS_BYNAME:
        case WINBINDD_GETGRLST:
+       case WINBINDD_DSGETDCNAME:
        case WINBINDD_INIT_CONNECTION:
        case WINBINDD_DUAL_SIDS2XIDS:
        case WINBINDD_DUAL_SET_MAPPING:
+       case WINBINDD_DUAL_REMOVE_MAPPING:
        case WINBINDD_DUAL_SET_HWM:
-       case WINBINDD_DUAL_DUMP_MAPS:
-       case WINBINDD_DUAL_UID2NAME:
-       case WINBINDD_DUAL_NAME2UID:
-       case WINBINDD_DUAL_GID2NAME:
-       case WINBINDD_DUAL_NAME2GID:
        case WINBINDD_DUAL_USERINFO:
        case WINBINDD_DUAL_GETSIDALIASES:
        case WINBINDD_CCACHE_NTLMAUTH: