From 9e7c53db4963502ddee15808060deee45935ad8a Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 13 Feb 2012 16:51:18 +0000 Subject: [PATCH] samba36: reorganize patches, fix windows 7 compatibility git-svn-id: svn://svn.openwrt.org/openwrt/packages@30505 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../{200-multicall.patch => 110-multicall.patch} | 0 ...ing_ifdef.patch => 120-add_missing_ifdef.patch} | 10 +- net/samba36/patches/170-no_wkssvc_support.patch | 71 -------- net/samba36/patches/190-no_srvsvc.patch | 180 --------------------- ...port.patch => 200-remove_printer_support.patch} | 0 ...d_support.patch => 210-remove_ad_support.patch} | 2 +- ...ve_services.patch => 220-remove_services.patch} | 6 +- ...pport.patch => 230-remove_winreg_support.patch} | 2 +- ...0-no_dfs_api.patch => 240-remove_dfs_api.patch} | 6 +- ...n_logon.patch => 250-remove_domain_logon.patch} | 28 +++- net/samba36/patches/260-remove_samr.patch | 71 ++++++++ .../patches/270-remove_registry_backend.patch | 30 ++++ 12 files changed, 140 insertions(+), 266 deletions(-) rename net/samba36/patches/{200-multicall.patch => 110-multicall.patch} (100%) rename net/samba36/patches/{160-add_missing_ifdef.patch => 120-add_missing_ifdef.patch} (68%) delete mode 100644 net/samba36/patches/170-no_wkssvc_support.patch delete mode 100644 net/samba36/patches/190-no_srvsvc.patch rename net/samba36/patches/{110-optional_printer_support.patch => 200-remove_printer_support.patch} (100%) rename net/samba36/patches/{120-no_ad_support.patch => 210-remove_ad_support.patch} (97%) rename net/samba36/patches/{130-remove_services.patch => 220-remove_services.patch} (92%) rename net/samba36/patches/{140-no_winreg_support.patch => 230-remove_winreg_support.patch} (98%) rename net/samba36/patches/{150-no_dfs_api.patch => 240-remove_dfs_api.patch} (97%) rename net/samba36/patches/{180-no_domain_logon.patch => 250-remove_domain_logon.patch} (75%) create mode 100644 net/samba36/patches/260-remove_samr.patch create mode 100644 net/samba36/patches/270-remove_registry_backend.patch diff --git a/net/samba36/patches/200-multicall.patch b/net/samba36/patches/110-multicall.patch similarity index 100% rename from net/samba36/patches/200-multicall.patch rename to net/samba36/patches/110-multicall.patch diff --git a/net/samba36/patches/160-add_missing_ifdef.patch b/net/samba36/patches/120-add_missing_ifdef.patch similarity index 68% rename from net/samba36/patches/160-add_missing_ifdef.patch rename to net/samba36/patches/120-add_missing_ifdef.patch index c2d9cd282..dbd9adc1d 100644 --- a/net/samba36/patches/160-add_missing_ifdef.patch +++ b/net/samba36/patches/120-add_missing_ifdef.patch @@ -1,9 +1,9 @@ --- a/source3/librpc/rpc/rpc_common.c +++ b/source3/librpc/rpc/rpc_common.c -@@ -127,9 +127,11 @@ static bool initialize_interfaces(void) +@@ -119,9 +119,11 @@ static bool initialize_interfaces(void) + if (!smb_register_ndr_interface(&ndr_table_netdfs)) { return false; } - #endif +#ifdef DEVELOPER if (!smb_register_ndr_interface(&ndr_table_rpcecho)) { return false; @@ -14,10 +14,10 @@ } --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c -@@ -632,7 +632,9 @@ static struct cmd_set *rpcclient_command - #ifdef DFS_SUPPORT +@@ -628,7 +628,9 @@ static struct cmd_set *rpcclient_command + netlogon_commands, + srvsvc_commands, dfs_commands, - #endif +#ifdef DEVELOPER echo_commands, +#endif diff --git a/net/samba36/patches/170-no_wkssvc_support.patch b/net/samba36/patches/170-no_wkssvc_support.patch deleted file mode 100644 index 557357598..000000000 --- a/net/samba36/patches/170-no_wkssvc_support.patch +++ /dev/null @@ -1,71 +0,0 @@ ---- a/source3/smbd/server_exit.c -+++ b/source3/smbd/server_exit.c -@@ -132,7 +132,9 @@ static void exit_server_common(enum serv - #endif - - if (am_parent) { -+#ifdef WKSSVC_SUPPORT - rpc_wkssvc_shutdown(); -+#endif - #ifdef ACTIVE_DIRECTORY - rpc_dssetup_shutdown(); - #endif ---- a/source3/rpc_server/rpc_ep_setup.c -+++ b/source3/rpc_server/rpc_ep_setup.c -@@ -982,6 +982,7 @@ static bool dssetup_init_cb(void *ptr) - } - #endif - -+#ifdef WKSSVC_SUPPORT - static bool wkssvc_init_cb(void *ptr) - { - struct dcesrv_ep_context *ep_ctx = -@@ -1029,6 +1030,7 @@ static bool wkssvc_init_cb(void *ptr) - - return true; - } -+#endif - - bool dcesrv_ep_setup(struct tevent_context *ev_ctx, - struct messaging_context *msg_ctx) -@@ -1202,12 +1204,14 @@ bool dcesrv_ep_setup(struct tevent_conte - } - #endif - -+#ifdef WKSSVC_SUPPORT - wkssvc_cb.init = wkssvc_init_cb; - wkssvc_cb.shutdown = NULL; - wkssvc_cb.private_data = ep_ctx; - if (!NT_STATUS_IS_OK(rpc_wkssvc_init(&wkssvc_cb))) { - return false; - } -+#endif - - return true; - } ---- a/source3/librpc/rpc/rpc_common.c -+++ b/source3/librpc/rpc/rpc_common.c -@@ -109,9 +109,11 @@ static bool initialize_interfaces(void) - if (!smb_register_ndr_interface(&ndr_table_srvsvc)) { - return false; - } -+#ifdef WKSSVC_SUPPORT - if (!smb_register_ndr_interface(&ndr_table_wkssvc)) { - return false; - } -+#endif - #ifdef WINREG_SUPPORT - if (!smb_register_ndr_interface(&ndr_table_winreg)) { - return false; ---- a/source3/rpcclient/rpcclient.c -+++ b/source3/rpcclient/rpcclient.c -@@ -638,7 +638,9 @@ static struct cmd_set *rpcclient_command - epmapper_commands, - shutdown_commands, - test_commands, -+#ifdef WKSSVC_SUPPORT - wkssvc_commands, -+#endif - #ifdef EXTRA_SERVICES - ntsvcs_commands, - drsuapi_commands, diff --git a/net/samba36/patches/190-no_srvsvc.patch b/net/samba36/patches/190-no_srvsvc.patch deleted file mode 100644 index 1a474ab44..000000000 --- a/net/samba36/patches/190-no_srvsvc.patch +++ /dev/null @@ -1,180 +0,0 @@ ---- a/source3/smbd/server_exit.c -+++ b/source3/smbd/server_exit.c -@@ -154,7 +154,9 @@ static void exit_server_common(enum serv - rpc_spoolss_shutdown(); - #endif - -+#ifdef SRVSVC_SUPPORT - rpc_srvsvc_shutdown(); -+#endif - #ifdef WINREG_SUPPORT - rpc_winreg_shutdown(); - #endif ---- a/source3/librpc/rpc/rpc_common.c -+++ b/source3/librpc/rpc/rpc_common.c -@@ -108,9 +108,11 @@ static bool initialize_interfaces(void) - return false; - } - #endif -+#ifdef SRVSVC_SUPPORT - if (!smb_register_ndr_interface(&ndr_table_srvsvc)) { - return false; - } -+#endif - #ifdef WKSSVC_SUPPORT - if (!smb_register_ndr_interface(&ndr_table_wkssvc)) { - return false; ---- a/source3/rpc_server/rpc_ep_setup.c -+++ b/source3/rpc_server/rpc_ep_setup.c -@@ -459,6 +459,7 @@ static bool winreg_init_cb(void *ptr) - } - #endif - -+#ifdef SRVSVC_SUPPORT - static bool srvsvc_init_cb(void *ptr) - { - struct dcesrv_ep_context *ep_ctx = -@@ -507,6 +508,7 @@ static bool srvsvc_init_cb(void *ptr) - - return true; - } -+#endif - - static bool lsarpc_init_cb(void *ptr) - { -@@ -1098,13 +1100,14 @@ bool dcesrv_ep_setup(struct tevent_conte - } - #endif - -+#ifdef SRVSVC_SUPPORT - srvsvc_cb.init = srvsvc_init_cb; - srvsvc_cb.shutdown = NULL; - srvsvc_cb.private_data = ep_ctx; - if (!NT_STATUS_IS_OK(rpc_srvsvc_init(&srvsvc_cb))) { - return false; - } -- -+#endif - - lsarpc_cb.init = lsarpc_init_cb; - lsarpc_cb.shutdown = NULL; ---- a/source3/rpcclient/rpcclient.c -+++ b/source3/rpcclient/rpcclient.c -@@ -630,7 +630,9 @@ static struct cmd_set *rpcclient_command - #ifdef NETLOGON_SUPPORT - netlogon_commands, - #endif -+#ifdef SRVSVC_SUPPORT - srvsvc_commands, -+#endif - #ifdef DFS_SUPPORT - dfs_commands, - #endif ---- a/source3/smbd/lanman.c -+++ b/source3/smbd/lanman.c -@@ -2197,6 +2197,10 @@ static bool api_RNetShareAdd(struct smbd - struct srvsvc_NetShareInfo2 info2; - struct dcerpc_binding_handle *b; - -+#ifndef SRVSVC_SUPPORT -+ return False; -+#endif -+ - if (!str1 || !str2 || !p) { - return False; - } -@@ -3818,10 +3822,7 @@ static bool api_RNetServerGetInfo(struct - NTSTATUS status; - WERROR werr; - TALLOC_CTX *mem_ctx = talloc_tos(); -- struct rpc_pipe_client *cli = NULL; -- union srvsvc_NetSrvInfo info; - int errcode; -- struct dcerpc_binding_handle *b; - - if (!str1 || !str2 || !p) { - return False; -@@ -3884,66 +3885,16 @@ static bool api_RNetServerGetInfo(struct - p = *rdata; - p2 = p + struct_len; - -- status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc.syntax_id, -- conn->session_info, -- &conn->sconn->client_id, -- conn->sconn->msg_ctx, -- &cli); -- if (!NT_STATUS_IS_OK(status)) { -- DEBUG(0,("api_RNetServerGetInfo: could not connect to srvsvc: %s\n", -- nt_errstr(status))); -- errcode = W_ERROR_V(ntstatus_to_werror(status)); -- goto out; -- } -- -- b = cli->binding_handle; -- -- status = dcerpc_srvsvc_NetSrvGetInfo(b, mem_ctx, -- NULL, -- 101, -- &info, -- &werr); -- if (!NT_STATUS_IS_OK(status)) { -- errcode = W_ERROR_V(ntstatus_to_werror(status)); -- goto out; -- } -- if (!W_ERROR_IS_OK(werr)) { -- errcode = W_ERROR_V(werr); -- goto out; -- } -- -- if (info.info101 == NULL) { -- errcode = W_ERROR_V(WERR_INVALID_PARAM); -- goto out; -- } -- - if (uLevel != 20) { -- srvstr_push(NULL, 0, p, info.info101->server_name, 16, -+ srvstr_push(NULL, 0, p, global_myname(), 16, - STR_ASCII|STR_UPPER|STR_TERMINATE); -- } -+ } - p += 16; - if (uLevel > 0) { -- SCVAL(p,0,info.info101->version_major); -- SCVAL(p,1,info.info101->version_minor); -- SIVAL(p,2,info.info101->server_type); -- -- if (mdrcnt == struct_len) { -- SIVAL(p,6,0); -- } else { -- SIVAL(p,6,PTR_DIFF(p2,*rdata)); -- if (mdrcnt - struct_len <= 0) { -- return false; -- } -- push_ascii(p2, -- info.info101->comment, -- MIN(mdrcnt - struct_len, -- MAX_SERVER_STRING_LENGTH), -- STR_TERMINATE); -- p2 = skip_string(*rdata,*rdata_len,p2); -- if (!p2) { -- return False; -- } -- } -+ SCVAL(p,0,lp_major_announce_version()); -+ SCVAL(p,1,lp_minor_announce_version()); -+ SIVAL(p,2,lp_default_server_announce()); -+ SIVAL(p,6,0); - } - - if (uLevel > 1) { -@@ -5630,6 +5581,10 @@ static bool api_RNetSessionEnum(struct s - uint32_t totalentries, resume_handle = 0; - uint32_t count = 0; - -+#ifndef SRVSVC_SUPPORT -+ return False; -+#endif -+ - if (!str1 || !str2 || !p) { - return False; - } diff --git a/net/samba36/patches/110-optional_printer_support.patch b/net/samba36/patches/200-remove_printer_support.patch similarity index 100% rename from net/samba36/patches/110-optional_printer_support.patch rename to net/samba36/patches/200-remove_printer_support.patch diff --git a/net/samba36/patches/120-no_ad_support.patch b/net/samba36/patches/210-remove_ad_support.patch similarity index 97% rename from net/samba36/patches/120-no_ad_support.patch rename to net/samba36/patches/210-remove_ad_support.patch index babf6e08f..d6b8a7e0b 100644 --- a/net/samba36/patches/120-no_ad_support.patch +++ b/net/samba36/patches/210-remove_ad_support.patch @@ -12,7 +12,7 @@ if (!smb_register_ndr_interface(&ndr_table_samr)) { return false; } -@@ -139,9 +141,11 @@ static bool initialize_interfaces(void) +@@ -141,9 +143,11 @@ static bool initialize_interfaces(void) if (!smb_register_ndr_interface(&ndr_table_epmapper)) { return false; } diff --git a/net/samba36/patches/130-remove_services.patch b/net/samba36/patches/220-remove_services.patch similarity index 92% rename from net/samba36/patches/130-remove_services.patch rename to net/samba36/patches/220-remove_services.patch index 706048c16..c09721af7 100644 --- a/net/samba36/patches/130-remove_services.patch +++ b/net/samba36/patches/220-remove_services.patch @@ -1,6 +1,6 @@ --- a/source3/librpc/rpc/rpc_common.c +++ b/source3/librpc/rpc/rpc_common.c -@@ -129,6 +129,7 @@ static bool initialize_interfaces(void) +@@ -131,6 +131,7 @@ static bool initialize_interfaces(void) if (!smb_register_ndr_interface(&ndr_table_initshutdown)) { return false; } @@ -8,7 +8,7 @@ if (!smb_register_ndr_interface(&ndr_table_svcctl)) { return false; } -@@ -138,6 +139,7 @@ static bool initialize_interfaces(void) +@@ -140,6 +141,7 @@ static bool initialize_interfaces(void) if (!smb_register_ndr_interface(&ndr_table_ntsvcs)) { return false; } @@ -84,7 +84,7 @@ #endif --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c -@@ -635,9 +635,11 @@ static struct cmd_set *rpcclient_command +@@ -637,9 +637,11 @@ static struct cmd_set *rpcclient_command shutdown_commands, test_commands, wkssvc_commands, diff --git a/net/samba36/patches/140-no_winreg_support.patch b/net/samba36/patches/230-remove_winreg_support.patch similarity index 98% rename from net/samba36/patches/140-no_winreg_support.patch rename to net/samba36/patches/230-remove_winreg_support.patch index 3726bc283..5a4f656a7 100644 --- a/net/samba36/patches/140-no_winreg_support.patch +++ b/net/samba36/patches/230-remove_winreg_support.patch @@ -134,7 +134,7 @@ return NULL; --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c -@@ -640,7 +640,9 @@ static struct cmd_set *rpcclient_command +@@ -642,7 +642,9 @@ static struct cmd_set *rpcclient_command drsuapi_commands, eventlog_commands, #endif diff --git a/net/samba36/patches/150-no_dfs_api.patch b/net/samba36/patches/240-remove_dfs_api.patch similarity index 97% rename from net/samba36/patches/150-no_dfs_api.patch rename to net/samba36/patches/240-remove_dfs_api.patch index 00db75821..30882c263 100644 --- a/net/samba36/patches/150-no_dfs_api.patch +++ b/net/samba36/patches/240-remove_dfs_api.patch @@ -42,9 +42,9 @@ return false; } +#endif + #ifdef DEVELOPER if (!smb_register_ndr_interface(&ndr_table_rpcecho)) { return false; - } --- a/source3/smbd/server_exit.c +++ b/source3/smbd/server_exit.c @@ -139,7 +139,9 @@ static void exit_server_common(enum serv @@ -66,6 +66,6 @@ +#ifdef DFS_SUPPORT dfs_commands, +#endif + #ifdef DEVELOPER echo_commands, - epmapper_commands, - shutdown_commands, + #endif diff --git a/net/samba36/patches/180-no_domain_logon.patch b/net/samba36/patches/250-remove_domain_logon.patch similarity index 75% rename from net/samba36/patches/180-no_domain_logon.patch rename to net/samba36/patches/250-remove_domain_logon.patch index aa249628e..796d17769 100644 --- a/net/samba36/patches/180-no_domain_logon.patch +++ b/net/samba36/patches/250-remove_domain_logon.patch @@ -16,7 +16,7 @@ static bool spoolss_init_cb(void *ptr) { -@@ -1118,12 +1120,15 @@ bool dcesrv_ep_setup(struct tevent_conte +@@ -1116,12 +1118,15 @@ bool dcesrv_ep_setup(struct tevent_conte return false; } @@ -48,7 +48,7 @@ } --- a/source3/smbd/server_exit.c +++ b/source3/smbd/server_exit.c -@@ -159,7 +159,9 @@ static void exit_server_common(enum serv +@@ -157,7 +157,9 @@ static void exit_server_common(enum serv rpc_winreg_shutdown(); #endif @@ -97,3 +97,27 @@ srvsvc_commands, #ifdef DFS_SUPPORT dfs_commands, +--- a/source3/rpc_server/wkssvc/srv_wkssvc_nt.c ++++ b/source3/rpc_server/wkssvc/srv_wkssvc_nt.c +@@ -820,6 +820,10 @@ WERROR _wkssvc_NetrJoinDomain2(struct pi + WERROR werr; + struct security_token *token = p->session_info->security_token; + ++#ifndef NETLOGON_SUPPORT ++ return WERR_NOT_SUPPORTED; ++#endif ++ + if (!r->in.domain_name) { + return WERR_INVALID_PARAM; + } +@@ -897,6 +901,10 @@ WERROR _wkssvc_NetrUnjoinDomain2(struct + WERROR werr; + struct security_token *token = p->session_info->security_token; + ++#ifndef NETLOGON_SUPPORT ++ return WERR_NOT_SUPPORTED; ++#endif ++ + if (!r->in.account || !r->in.encrypted_password) { + return WERR_INVALID_PARAM; + } diff --git a/net/samba36/patches/260-remove_samr.patch b/net/samba36/patches/260-remove_samr.patch new file mode 100644 index 000000000..ec506bbe3 --- /dev/null +++ b/net/samba36/patches/260-remove_samr.patch @@ -0,0 +1,71 @@ +--- a/source3/librpc/rpc/rpc_common.c ++++ b/source3/librpc/rpc/rpc_common.c +@@ -100,9 +100,11 @@ static bool initialize_interfaces(void) + return false; + } + #endif ++#ifdef SAMR_SUPPORT + if (!smb_register_ndr_interface(&ndr_table_samr)) { + return false; + } ++#endif + #ifdef NETLOGON_SUPPORT + if (!smb_register_ndr_interface(&ndr_table_netlogon)) { + return false; +--- a/source3/rpc_server/rpc_ep_setup.c ++++ b/source3/rpc_server/rpc_ep_setup.c +@@ -557,6 +557,7 @@ static bool lsarpc_init_cb(void *ptr) + return true; + } + ++#ifdef SAMR_SUPPORT + static bool samr_init_cb(void *ptr) + { + struct dcesrv_ep_context *ep_ctx = +@@ -605,6 +606,7 @@ static bool samr_init_cb(void *ptr) + + return true; + } ++#endif + + #ifdef NETLOGON_SUPPORT + static bool netlogon_init_cb(void *ptr) +@@ -1111,12 +1113,14 @@ bool dcesrv_ep_setup(struct tevent_conte + return false; + } + ++#ifdef SAMR_SUPPORT + samr_cb.init = samr_init_cb; + samr_cb.shutdown = NULL; + samr_cb.private_data = ep_ctx; + if (!NT_STATUS_IS_OK(rpc_samr_init(&samr_cb))) { + return false; + } ++#endif + + #ifdef NETLOGON_SUPPORT + netlogon_cb.init = netlogon_init_cb; +--- a/source3/smbd/server_exit.c ++++ b/source3/smbd/server_exit.c +@@ -160,7 +160,9 @@ static void exit_server_common(enum serv + #ifdef NETLOGON_SUPPORT + rpc_netlogon_shutdown(); + #endif ++#ifdef SAMR_SUPPORT + rpc_samr_shutdown(); ++#endif + rpc_lsarpc_shutdown(); + } + +--- a/source3/rpcclient/rpcclient.c ++++ b/source3/rpcclient/rpcclient.c +@@ -623,7 +623,9 @@ static struct cmd_set *rpcclient_command + rpcclient_commands, + lsarpc_commands, + ds_commands, ++#ifdef SAMR_SUPPORT + samr_commands, ++#endif + #ifdef PRINTER_SUPPORT + spoolss_commands, + #endif diff --git a/net/samba36/patches/270-remove_registry_backend.patch b/net/samba36/patches/270-remove_registry_backend.patch new file mode 100644 index 000000000..d28864538 --- /dev/null +++ b/net/samba36/patches/270-remove_registry_backend.patch @@ -0,0 +1,30 @@ +--- a/source3/lib/smbconf/smbconf_init.c ++++ b/source3/lib/smbconf/smbconf_init.c +@@ -68,9 +68,12 @@ sbcErr smbconf_init(TALLOC_CTX *mem_ctx, + } + } + ++#ifdef REGISTRY_BACKEND + if (strequal(backend, "registry") || strequal(backend, "reg")) { + err = smbconf_init_reg(mem_ctx, conf_ctx, path); +- } else if (strequal(backend, "file") || strequal(backend, "txt")) { ++ } else ++#endif ++ if (strequal(backend, "file") || strequal(backend, "txt")) { + err = smbconf_init_txt(mem_ctx, conf_ctx, path); + } else if (sep == NULL) { + /* +--- a/source3/lib/netapi/serverinfo.c ++++ b/source3/lib/netapi/serverinfo.c +@@ -557,7 +557,10 @@ static WERROR NetServerSetInfo_l_1005(st + return WERR_INVALID_PARAM; + } + +- if (!lp_config_backend_is_registry()) { ++#ifdef REGISTRY_BACKEND ++ if (!lp_config_backend_is_registry()) ++#endif ++ { + libnetapi_set_error_string(ctx, + "Configuration manipulation requested but not " + "supported by backend"); -- 2.11.0