[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-315-g7d73551
The branch, master has been updated via 7d735519d7f6a726240dff8cdcae36acd73df48c (commit) via f26a2ca8e43884a62bf5822e7571692870ecc7a1 (commit) from d7809f65cf25ea10b3edd7df209cbf67a43df138 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 7d735519d7f6a726240dff8cdcae36acd73df48c Author: Stefan Metzmacher me...@samba.org Date: Mon Jul 13 09:01:56 2009 +0200 s3:smbd: make smbd_do_setfilepathinfo() non static for use in SMB2 SetInfo metze commit f26a2ca8e43884a62bf5822e7571692870ecc7a1 Author: Stefan Metzmacher me...@samba.org Date: Mon Jul 13 08:59:32 2009 +0200 s3:smbd: split out smbd_do_setfilepathinfo() from call_trans2setfilepathinfo() metze --- Summary of changes: source3/smbd/globals.h |9 + source3/smbd/trans2.c | 404 ++-- 2 files changed, 225 insertions(+), 188 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index 725a94a..109c29a 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -201,6 +201,15 @@ NTSTATUS smbd_do_qfilepathinfo(connection_struct *conn, char **ppdata, unsigned int *pdata_size); +NTSTATUS smbd_do_setfilepathinfo(connection_struct *conn, + struct smb_request *req, + TALLOC_CTX *mem_ctx, + uint16_t info_level, + files_struct *fsp, + struct smb_filename *smb_fname, + char **ppdata, int total_data, + int *ret_data_size); + void smbd_server_connection_terminate_ex(struct smbd_server_connection *sconn, const char *reason, const char *location); diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 6554fb6..085a0b2 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -7055,200 +7055,45 @@ static NTSTATUS smb_posix_unlink(connection_struct *conn, return close_file(req, fsp, NORMAL_CLOSE); } -/ - Reply to a TRANS2_SETFILEINFO (set file info by fileid or pathname). -/ - -static void call_trans2setfilepathinfo(connection_struct *conn, - struct smb_request *req, - unsigned int tran_call, - char **pparams, int total_params, - char **ppdata, int total_data, - unsigned int max_data_bytes) +NTSTATUS smbd_do_setfilepathinfo(connection_struct *conn, + struct smb_request *req, + TALLOC_CTX *mem_ctx, + uint16_t info_level, + files_struct *fsp, + struct smb_filename *smb_fname, + char **ppdata, int total_data, + int *ret_data_size) { - char *params = *pparams; char *pdata = *ppdata; - uint16 info_level; SMB_STRUCT_STAT sbuf; char *fname = NULL; - struct smb_filename *smb_fname = NULL; - files_struct *fsp = NULL; NTSTATUS status = NT_STATUS_OK; int data_return_size = 0; - TALLOC_CTX *ctx = talloc_tos(); - - if (!params) { - reply_nterror(req, NT_STATUS_INVALID_PARAMETER); - return; - } - - if (tran_call == TRANSACT2_SETFILEINFO) { - if (total_params 4) { - reply_nterror(req, NT_STATUS_INVALID_PARAMETER); - return; - } - - fsp = file_fsp(req, SVAL(params,0)); - /* Basic check for non-null fsp. */ - if (!check_fsp_open(conn, req, fsp)) { - return; - } - info_level = SVAL(params,2); - - fname = talloc_strdup(talloc_tos(),fsp-fsp_name); - if (!fname) { - reply_nterror(req, NT_STATUS_NO_MEMORY); - return; - } - - status = create_synthetic_smb_fname_split(talloc_tos(), fname, - NULL, smb_fname); - if (!NT_STATUS_IS_OK(status)) { - reply_nterror(req, status); - return; - } - if(fsp-is_directory || fsp-fh-fd == -1) { -
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-318-g3ee3eb3
The branch, master has been updated via 3ee3eb3acf5783894f358c415b342a88db248449 (commit) via ed99bf7317fccdb13e832e98f389486443f9fd48 (commit) via 2a92139a1ca8b2c1950f6ca32255b8fcfdeefff6 (commit) from 7d735519d7f6a726240dff8cdcae36acd73df48c (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 3ee3eb3acf5783894f358c415b342a88db248449 Author: Stefan Metzmacher me...@samba.org Date: Mon Jul 13 13:14:39 2009 +0200 s3:smbd: close_file() handles named pipes just fine, no reason to return NOT_SUPPORTED metze commit ed99bf7317fccdb13e832e98f389486443f9fd48 Author: Stefan Metzmacher me...@samba.org Date: Mon Jul 13 12:05:34 2009 +0200 s3:smbd: make smbd_do_qfsinfo() non static for use in SMB2 GetInfo metze commit 2a92139a1ca8b2c1950f6ca32255b8fcfdeefff6 Author: Stefan Metzmacher me...@samba.org Date: Mon Jul 13 11:54:20 2009 +0200 s3:smbd: split out smbd_do_qfsinfo() from call_trans2qfsinfo() metze --- Summary of changes: source3/smbd/globals.h|9 +++ source3/smbd/smb2_close.c |5 -- source3/smbd/trans2.c | 172 - 3 files changed, 102 insertions(+), 84 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index 109c29a..cd3e054 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -210,6 +210,15 @@ NTSTATUS smbd_do_setfilepathinfo(connection_struct *conn, char **ppdata, int total_data, int *ret_data_size); +NTSTATUS smbd_do_qfsinfo(connection_struct *conn, +TALLOC_CTX *mem_ctx, +uint16_t info_level, +SMB_STRUCT_STAT st, +uint16_t flags2, +unsigned int max_data_bytes, +char **ppdata, +int *ret_data_len); + void smbd_server_connection_terminate_ex(struct smbd_server_connection *sconn, const char *reason, const char *location); diff --git a/source3/smbd/smb2_close.c b/source3/smbd/smb2_close.c index 6724e5c..a46b36e 100644 --- a/source3/smbd/smb2_close.c +++ b/source3/smbd/smb2_close.c @@ -107,11 +107,6 @@ static NTSTATUS smbd_smb2_close(struct smbd_smb2_request *req, return NT_STATUS_NO_MEMORY; } - /* If it's an IPC, pass off the pipe handler. */ - if (IS_IPC(conn)) { - return NT_STATUS_NOT_IMPLEMENTED; - } - fsp = file_fsp(smbreq, (uint16_t)in_file_id_volatile); if (fsp == NULL) { return NT_STATUS_FILE_CLOSED; diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 085a0b2..4dd0375 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -2687,67 +2687,37 @@ static void samba_extended_info_version(struct smb_extended_info *extended_info) %s, samba_version_string()); } -/ - Reply to a TRANS2_QFSINFO (query filesystem info). -/ - -static void call_trans2qfsinfo(connection_struct *conn, - struct smb_request *req, - char **pparams, int total_params, - char **ppdata, int total_data, - unsigned int max_data_bytes) +NTSTATUS smbd_do_qfsinfo(connection_struct *conn, +TALLOC_CTX *mem_ctx, +uint16_t info_level, +SMB_STRUCT_STAT st, +uint16_t flags2, +unsigned int max_data_bytes, +char **ppdata, +int *ret_data_len) { char *pdata, *end_data; - char *params = *pparams; - uint16 info_level; - int data_len, len; - SMB_STRUCT_STAT st; + int data_len = 0, len; const char *vname = volume_label(SNUM(conn)); int snum = SNUM(conn); char *fstype = lp_fstype(SNUM(conn)); uint32 additional_flags = 0; - if (total_params 2) { - reply_nterror(req, NT_STATUS_INVALID_PARAMETER); - return; - } - - info_level = SVAL(params,0); - if (IS_IPC(conn)) { if (info_level != SMB_QUERY_CIFS_UNIX_INFO) { - DEBUG(0,(call_trans2qfsinfo: not an allowed + DEBUG(0,(smbd_do_qfsinfo: not an allowed info level (0x%x) on IPC$.\n, (unsigned int)info_level)); -
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-320-g05fbe0c
The branch, master has been updated via 05fbe0c7f763fbe8c1c48eb82ebdfe04bfa034ea (commit) via 8db45607f8d19781d33ebff0d0b13c473f34009b (commit) from 3ee3eb3acf5783894f358c415b342a88db248449 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 05fbe0c7f763fbe8c1c48eb82ebdfe04bfa034ea Author: Günther Deschner g...@samba.org Date: Fri Jun 12 15:20:48 2009 +0200 libds: merge the UF-ACB flag mapping functions. Guenther commit 8db45607f8d19781d33ebff0d0b13c473f34009b Author: Günther Deschner g...@samba.org Date: Fri Jun 12 14:27:19 2009 +0200 libds: share UF_ flags between samba3 and 4. Guenther --- Summary of changes: libds/common/flag_mapping.c | 143 ++ libds/common/flags.h| 177 +++ source3/Makefile.in |2 +- source3/include/ads.h | 127 + source3/include/proto.h | 16 ++- source3/lib/ads_flags.c | 150 --- source3/lib/netapi/user.c |2 +- source3/passdb/pdb_ads.c|6 +- source3/winbindd/winbindd_ads.c |2 +- source4/cldap_server/netlogon.c |2 +- source4/dsdb/common/flag_mapping.c | 145 --- source4/dsdb/common/flags.h | 137 -- source4/dsdb/common/sidmap.c|6 +- source4/dsdb/common/util.c |6 +- source4/dsdb/config.mk |4 +- source4/dsdb/samdb/ldb_modules/instancetype.c |2 +- source4/dsdb/samdb/ldb_modules/password_hash.c |2 +- source4/dsdb/samdb/ldb_modules/repl_meta_data.c |2 +- source4/dsdb/samdb/ldb_modules/samldb.c |8 +- source4/dsdb/samdb/samdb.c |2 +- source4/dsdb/samdb/samdb.h |2 +- source4/kdc/hdb-samba4.c|2 +- source4/kdc/pac-glue.c |2 +- source4/libnet/libnet_become_dc.c |2 +- source4/libnet/libnet_unbecome_dc.c |2 +- source4/rpc_server/lsa/lsa_lookup.c |4 +- source4/rpc_server/netlogon/dcerpc_netlogon.c |2 +- source4/rpc_server/samr/dcesrv_samr.c |8 +- source4/rpc_server/samr/samr_password.c |2 +- 29 files changed, 367 insertions(+), 600 deletions(-) create mode 100644 libds/common/flag_mapping.c create mode 100644 libds/common/flags.h delete mode 100644 source3/lib/ads_flags.c delete mode 100644 source4/dsdb/common/flag_mapping.c delete mode 100644 source4/dsdb/common/flags.h Changeset truncated at 500 lines: diff --git a/libds/common/flag_mapping.c b/libds/common/flag_mapping.c new file mode 100644 index 000..dc7d801 --- /dev/null +++ b/libds/common/flag_mapping.c @@ -0,0 +1,143 @@ +/* + Unix SMB/CIFS implementation. + helper mapping functions for the UF and ACB flags + + Copyright (C) Stefan (metze) Metzmacher 2002 + Copyright (C) Andrew Tridgell 2004 + + 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 +#include librpc/gen_ndr/samr.h +#include ../libds/common/flags.h + +/* +translated the ACB_CTRL Flags to UserFlags (userAccountControl) +*/ +/* mapping between ADS userAccountControl and SAMR acct_flags */ +static const struct { + uint32_t uf; + uint32_t acb; +} acct_flags_map[] = { + { UF_ACCOUNTDISABLE, ACB_DISABLED }, + { UF_HOMEDIR_REQUIRED, ACB_HOMDIRREQ }, + { UF_PASSWD_NOTREQD, ACB_PWNOTREQ }, + { UF_TEMP_DUPLICATE_ACCOUNT, ACB_TEMPDUP }, + { UF_NORMAL_ACCOUNT, ACB_NORMAL }, + { UF_MNS_LOGON_ACCOUNT, ACB_MNS }, + { UF_INTERDOMAIN_TRUST_ACCOUNT, ACB_DOMTRUST }, + { UF_WORKSTATION_TRUST_ACCOUNT, ACB_WSTRUST }, + { UF_SERVER_TRUST_ACCOUNT, ACB_SVRTRUST }, + { UF_DONT_EXPIRE_PASSWD, ACB_PWNOEXP }, + { UF_LOCKOUT, ACB_AUTOLOCK }, + { UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED, ACB_ENC_TXT_PWD_ALLOWED }, + { UF_SMARTCARD_REQUIRED, ACB_SMARTCARD_REQUIRED }, + {
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-321-gf7ff6bd
The branch, master has been updated via f7ff6bd1425cc4f0aa13ce8e7498cdac3967acf3 (commit) from 05fbe0c7f763fbe8c1c48eb82ebdfe04bfa034ea (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit f7ff6bd1425cc4f0aa13ce8e7498cdac3967acf3 Author: Günther Deschner g...@samba.org Date: Mon Jun 29 20:34:03 2009 +0200 s3-rpc_server: pass down full unix token to map_max_allowed_access(). Also use unix_token-uid instead of geteuid() when checking for mapping of the SEC_FLAG_MAXIMUM_ALLOWED flag. Guenther --- Summary of changes: source3/include/proto.h |5 ++- source3/rpc_server/srv_lsa_nt.c |8 +- source3/rpc_server/srv_samr_nt.c | 42 + 3 files changed, 37 insertions(+), 18 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/include/proto.h b/source3/include/proto.h index 44132b6..c0ce35a 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -7253,8 +7253,9 @@ NTSTATUS access_check_object( SEC_DESC *psd, NT_USER_TOKEN *token, SE_PRIV *rights, uint32 rights_mask, uint32 des_access, uint32 *acc_granted, const char *debug); -void map_max_allowed_access(const NT_USER_TOKEN *token, - uint32_t *pacc_requested); +void map_max_allowed_access(const NT_USER_TOKEN *nt_token, + const struct unix_user_token *unix_token, + uint32_t *pacc_requested); /* The following definitions come from ../libds/common/flag_mapping.c */ diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c index 324483b..c62991e 100644 --- a/source3/rpc_server/srv_lsa_nt.c +++ b/source3/rpc_server/srv_lsa_nt.c @@ -349,7 +349,9 @@ NTSTATUS _lsa_OpenPolicy2(pipes_struct *p, NTSTATUS status; /* Work out max allowed. */ - map_max_allowed_access(p-server_info-ptok, des_access); + map_max_allowed_access(p-server_info-ptok, + p-server_info-utok, + des_access); /* map the generic bits to the lsa policy ones */ se_map_generic(des_access, lsa_policy_mapping); @@ -1628,7 +1630,9 @@ NTSTATUS _lsa_OpenAccount(pipes_struct *p, * handle - so don't check against policy handle. */ /* Work out max allowed. */ - map_max_allowed_access(p-server_info-ptok, des_access); + map_max_allowed_access(p-server_info-ptok, + p-server_info-utok, + des_access); /* map the generic bits to the lsa account ones */ se_map_generic(des_access, lsa_account_mapping); diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c index 8560ee9..1085251 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -236,8 +236,9 @@ done: Map any MAXIMUM_ALLOWED_ACCESS request to a valid access set. / -void map_max_allowed_access(const NT_USER_TOKEN *token, - uint32_t *pacc_requested) +void map_max_allowed_access(const NT_USER_TOKEN *nt_token, + const struct unix_user_token *unix_token, + uint32_t *pacc_requested) { if (!((*pacc_requested) MAXIMUM_ALLOWED_ACCESS)) { return; @@ -248,15 +249,15 @@ void map_max_allowed_access(const NT_USER_TOKEN *token, *pacc_requested = GENERIC_READ_ACCESS|GENERIC_EXECUTE_ACCESS; /* root gets anything. */ - if (geteuid() == sec_initial_uid()) { + if (unix_token-uid == sec_initial_uid()) { *pacc_requested |= GENERIC_ALL_ACCESS; return; } /* Full Access for 'BUILTIN\Administrators' and 'BUILTIN\Account Operators */ - if (is_sid_in_token(token, global_sid_Builtin_Administrators) || - is_sid_in_token(token, global_sid_Builtin_Account_Operators)) { + if (is_sid_in_token(nt_token, global_sid_Builtin_Administrators) || + is_sid_in_token(nt_token, global_sid_Builtin_Account_Operators)) { *pacc_requested |= GENERIC_ALL_ACCESS; return; } @@ -266,7 +267,7 @@ void map_max_allowed_access(const NT_USER_TOKEN *token, DOM_SID domadmin_sid; sid_copy( domadmin_sid, get_global_sam_sid() ); sid_append_rid( domadmin_sid, DOMAIN_GROUP_RID_ADMINS ); - if (is_sid_in_token(token, domadmin_sid)) { + if (is_sid_in_token(nt_token, domadmin_sid)) { *pacc_requested |= GENERIC_ALL_ACCESS;
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-322-g8646b95
The branch, master has been updated via 8646b9521d267284a335aafba3df6039c41b8370 (commit) from f7ff6bd1425cc4f0aa13ce8e7498cdac3967acf3 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 8646b9521d267284a335aafba3df6039c41b8370 Author: Stefan Metzmacher me...@samba.org Date: Mon Jul 13 13:24:19 2009 +0200 s3:net: Fix Bug #6222. Default to DRSUAPI replication for net rpc vampire keytab metze Signed-off-by: Günther Deschner g...@samba.org --- Summary of changes: source3/utils/net_rpc_samsync.c | 11 +++ 1 files changed, 7 insertions(+), 4 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c index bd5047c..c0de247 100644 --- a/source3/utils/net_rpc_samsync.c +++ b/source3/utils/net_rpc_samsync.c @@ -493,17 +493,20 @@ int rpc_vampire_keytab(struct net_context *c, int argc, const char **argv) if (!dc_info.is_ad) { printf(DC is not running Active Directory\n); - return -1; - } - - if (dc_info.is_mixed_mode) { ret = run_rpc_command(c, cli, ndr_table_netlogon.syntax_id, 0, rpc_vampire_keytab_internals, argc, argv); + return -1; } else { ret = run_rpc_command(c, cli, ndr_table_drsuapi.syntax_id, NET_FLAGS_SEAL, rpc_vampire_keytab_ds_internals, argc, argv); + if (ret != 0 dc_info.is_mixed_mode) { + printf(Fallback to NT4 vampire on Mixed-Mode AD Domain\n); + ret = run_rpc_command(c, cli, ndr_table_netlogon.syntax_id, + 0, + rpc_vampire_keytab_internals, argc, argv); + } } return ret; -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-323-ge4fca74
The branch, master has been updated via e4fca7466d3bc064587638560572813e62df00d8 (commit) from 8646b9521d267284a335aafba3df6039c41b8370 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit e4fca7466d3bc064587638560572813e62df00d8 Author: Günther Deschner g...@samba.org Date: Mon Jul 13 21:56:31 2009 +0200 s3-pdb_ads: set correct pdb field with the value from 'accountExpires' attribute. Guenther --- Summary of changes: source3/passdb/pdb_ads.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/passdb/pdb_ads.c b/source3/passdb/pdb_ads.c index 4f7c210..66fdff1 100644 --- a/source3/passdb/pdb_ads.c +++ b/source3/passdb/pdb_ads.c @@ -203,7 +203,7 @@ static NTSTATUS pdb_ads_init_sam_from_priv(struct pdb_methods *m, pdb_set_pass_last_set_time(sam, tmp_time, PDB_SET); } if (pdb_ads_pull_time(entry, accountExpires, tmp_time)) { - pdb_set_pass_last_set_time(sam, tmp_time, PDB_SET); + pdb_set_kickoff_time(sam, tmp_time, PDB_SET); } str = tldap_talloc_single_attribute(entry, displayName, -- Samba Shared Repository
Build status as of Tue Jul 14 00:00:02 2009
URL: http://build.samba.org/ --- /home/build/master/cache/broken_results.txt.old 2009-07-13 00:00:46.0 + +++ /home/build/master/cache/broken_results.txt 2009-07-14 00:01:04.0 + @@ -1,22 +1,22 @@ -Build status as of Mon Jul 13 00:00:02 2009 +Build status as of Tue Jul 14 00:00:02 2009 Build counts: Tree Total Broken Panic build_farm 0 0 0 -ccache 33 7 0 +ccache 32 7 0 distcc 0 0 0 ldb 33 33 0 libreplace 32 13 0 lorikeet 0 0 0 pidl 23 2 0 ppp 14 0 0 -rsync33 11 0 +rsync32 11 0 samba-docs 0 0 0 samba-web0 0 0 samba_3_current 30 16 0 -samba_3_master 32 27 4 +samba_3_master 32 26 5 samba_3_next 32 29 1 -samba_4_0_test 32 29 12 -talloc 32 33 0 +samba_4_0_test 32 29 11 +talloc 33 33 0 tdb 31 31 0
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-324-gb25e3b6
The branch, master has been updated via b25e3b6c8a7a1dd31607dd344e6e767716dd645d (commit) from e4fca7466d3bc064587638560572813e62df00d8 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit b25e3b6c8a7a1dd31607dd344e6e767716dd645d Author: Jeremy Allison j...@samba.org Date: Mon Jul 13 17:17:37 2009 -0700 Fix set_posix_lock check which had been reversed in the recent changes. Jeremy. --- Summary of changes: source3/smbd/trans2.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 4dd0375..a862c14 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -7277,7 +7277,7 @@ NTSTATUS smbd_do_setfilepathinfo(connection_struct *conn, case SMB_SET_POSIX_LOCK: { - if (fsp) { + if (!fsp) { return NT_STATUS_INVALID_LEVEL; } status = smb_set_posix_lock(conn, req, -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-325-ge67de63
The branch, master has been updated via e67de63ba6c6de60400e7deb4664d259f6dfb638 (commit) from b25e3b6c8a7a1dd31607dd344e6e767716dd645d (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit e67de63ba6c6de60400e7deb4664d259f6dfb638 Author: Jeremy Allison j...@samba.org Date: Mon Jul 13 18:43:10 2009 -0700 Make cli_posix_lock/unlock asynchronous. Jeremy. --- Summary of changes: source3/client/client.c |4 +- source3/include/proto.h | 21 +++- source3/libsmb/clifile.c | 275 +++-- source3/torture/torture.c | 12 ++ 4 files changed, 248 insertions(+), 64 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/client/client.c b/source3/client/client.c index ed45f4e..6b273b4 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2605,7 +2605,7 @@ static int cmd_lock(void) len = (uint64_t)strtol(buf, (char **)NULL, 16); - if (!cli_posix_lock(cli, fnum, start, len, true, lock_type)) { + if (!NT_STATUS_IS_OK(cli_posix_lock(cli, fnum, start, len, true, lock_type))) { d_printf(lock failed %d: %s\n, fnum, cli_errstr(cli)); } @@ -2639,7 +2639,7 @@ static int cmd_unlock(void) len = (uint64_t)strtol(buf, (char **)NULL, 16); - if (!cli_posix_unlock(cli, fnum, start, len)) { + if (!NT_STATUS_IS_OK(cli_posix_unlock(cli, fnum, start, len))) { d_printf(unlock failed %d: %s\n, fnum, cli_errstr(cli)); } diff --git a/source3/include/proto.h b/source3/include/proto.h index c0ce35a..7b3eaa0 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2516,11 +2516,26 @@ bool cli_unlock(struct cli_state *cli, uint16_t fnum, uint32_t offset, uint32_t bool cli_lock64(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len, int timeout, enum brl_type lock_type); bool cli_unlock64(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len); -bool cli_posix_lock(struct cli_state *cli, uint16_t fnum, +struct tevent_req *cli_posix_lock_send(TALLOC_CTX *mem_ctx, +struct event_context *ev, +struct cli_state *cli, +uint16_t fnum, +uint64_t offset, +uint64_t len, +bool wait_lock, +enum brl_type lock_type); +NTSTATUS cli_posix_lock_recv(struct tevent_req *req); +NTSTATUS cli_posix_lock(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len, bool wait_lock, enum brl_type lock_type); -bool cli_posix_unlock(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len); -bool cli_posix_getlock(struct cli_state *cli, uint16_t fnum, uint64_t *poffset, uint64_t *plen); +struct tevent_req *cli_posix_unlock_send(TALLOC_CTX *mem_ctx, +struct event_context *ev, +struct cli_state *cli, +uint16_t fnum, +uint64_t offset, +uint64_t len); +NTSTATUS cli_posix_unlock_recv(struct tevent_req *req); +NTSTATUS cli_posix_unlock(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_t len); struct tevent_req *cli_getattrE_send(TALLOC_CTX *mem_ctx, struct event_context *ev, struct cli_state *cli, diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index af67fcb..0e2b364 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -2857,103 +2857,260 @@ bool cli_unlock64(struct cli_state *cli, uint16_t fnum, uint64_t offset, uint64_ Get/unlock a POSIX lock on a file - internal function. / -static bool cli_posix_lock_internal(struct cli_state *cli, uint16_t fnum, - uint64_t offset, uint64_t len, bool wait_lock, enum brl_type lock_type) +struct posix_lock_state { +uint16_t setup; + uint8_t param[4]; +uint8_t data[POSIX_LOCK_DATA_SIZE]; +}; + +static void cli_posix_unlock_internal_done(struct tevent_req *subreq) { - unsigned int param_len = 4; - unsigned int data_len = POSIX_LOCK_DATA_SIZE; - uint16_t setup = TRANSACT2_SETFILEINFO; - char param[4]; - unsigned char data[POSIX_LOCK_DATA_SIZE]; - char *rparam=NULL, *rdata=NULL; - int saved_timeout = cli-timeout; + struct tevent_req *req = tevent_req_callback_data( +
Build status as of Tue Jul 14 04:30:45 2009
URL: http://build.samba.org/ --- /home/build/master/cache/broken_results.txt.old 2009-07-13 18:01:04.0 -0600 +++ /home/build/master/cache/broken_results.txt 2009-07-13 22:30:48.0 -0600 @@ -1,16 +1,16 @@ -Build status as of Tue Jul 14 00:00:02 2009 +Build status as of Tue Jul 14 04:30:45 2009 Build counts: Tree Total Broken Panic build_farm 0 0 0 -ccache 32 7 0 +ccache 33 7 0 distcc 0 0 0 ldb 33 33 0 libreplace 32 13 0 lorikeet 0 0 0 pidl 23 2 0 ppp 14 0 0 -rsync32 11 0 +rsync33 11 0 samba-docs 0 0 0 samba-web0 0 0 samba_3_current 30 16 0