[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-3355-g61c5589

Jeremy Allison jra at samba.org
Tue Jan 13 19:16:25 GMT 2009


The branch, v3-2-test has been updated
       via  61c5589d1fa4d6fe7ce7293a6f6ceab96d4ee193 (commit)
       via  b4dc70f3bd79505de0e66283bf6d312dd3b53b27 (commit)
       via  62d547e1b853b6c5c871f1f9cb265d3cdd40a21d (commit)
       via  e2b4e25b433a43960bb37258c0f24d9b77598056 (commit)
      from  38b297f99ec166e5c40ba33774222b37b45b4fec (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 61c5589d1fa4d6fe7ce7293a6f6ceab96d4ee193
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Jan 13 11:15:10 2009 -0800

    Fix bug #6019 File corruption in Clustered SMB/NFS environment managed via CTDB
    Jeremy.

commit b4dc70f3bd79505de0e66283bf6d312dd3b53b27
Merge: 62d547e1b853b6c5c871f1f9cb265d3cdd40a21d 38b297f99ec166e5c40ba33774222b37b45b4fec
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Jan 12 10:47:02 2009 -0800

    Merge branch 'v3-2-test' of ssh://jra@git.samba.org/data/git/samba into v3-2-test

commit 62d547e1b853b6c5c871f1f9cb265d3cdd40a21d
Author: Tim Prouty <tprouty at samba.org>
Date:   Sat Dec 6 16:08:35 2008 -0800

    Fix a delete on close divergence from windows [2/2]
    
    This second patch cleans up by removing all of the code that is made
    obsolete by the first patch.  It should cause no functional changes.

commit e2b4e25b433a43960bb37258c0f24d9b77598056
Author: Tim Prouty <tprouty at samba.org>
Date:   Sun Dec 7 10:30:01 2008 -0800

    Fix a delete on close divergence from windows [1/2]
    
    smbtorture4's BASE-DELETE:deltest17 was failing against win2k8,
    win2k3, and winXPsp2 but passing against samba.
    
    deltest17 does the following:
    
    1. open file -> file is created
    2. closes file
    3. open file with DOC -> fnum1
    4. check that DOC is not reported as being set from fnum1
    5. opens file again Read Only -> fnum2
    6. check that DOC is not reported as being set from either file handle
    7. close fnum1 (the file handle that requested DOC to be set)
    8. check if DOC is reported as being set from fnum2
     * This is where windows and samba begin to diverge.  Windows
       reports that the DOC bit is set, while samba reports that it is not set.
    9. close fnum2 (the last remaining open handle for the file)
    10.See if the file has been deleted.
     * On samba the file still exists.  On windows the file was deleted.
    
    The way open_file_ntcreate is written now, if an open has the DOC bit
    set on the wire, DOC (fsp->initial_delete_on_close) is not set unless:
    a. the open creates the file, or b. there is an open file handle with
    a share_entry in the struct lck that has the
    SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE bit set (let's call it
    SM_AIDOC).
    
    My understanding of SM_AIDOC is that it was added to differentiate
    between DOC being set on an open that creates a file vs an open that
    opens an existing.  As described in step 8/10 above, it appears that
    windows does not make this differentiation.
    
    To resolve this issue there are two patches.  This first patch is a
    simple proof of concept change that is sufficient to fix the bug.  It
    removes the differentiation in open_file_ntcreate, and updates
    deltest17 to allow it to pass against win2k3/xp.  This makes
    open_file_ntcreate more closely match the semantics in open_directory
    and rename_internals_fsp.  This change also does not break any other
    tests in BASE-DELETE or "make test".  Specifically test deltest20b
    which verifies the CIFSFS rename DOC semantics still passes :).

-----------------------------------------------------------------------

Summary of changes:
 source/include/proto.h   |10358 ++++++++++++++++++++++++++++++++++++++++++++++
 source/include/smb.h     |    1 -
 source/lib/sendfile.c    |    4 +-
 source/locking/locking.c |   46 +-
 source/smbd/open.c       |   11 +-
 source/smbd/reply.c      |    6 +-
 6 files changed, 10368 insertions(+), 58 deletions(-)
 create mode 100644 source/include/proto.h


Changeset truncated at 500 lines:

diff --git a/source/include/proto.h b/source/include/proto.h
new file mode 100644
index 0000000..7e7ed6f
--- /dev/null
+++ b/source/include/proto.h
@@ -0,0 +1,10358 @@
+#ifndef _PROTO_H_
+#define _PROTO_H_
+
+/* This file is automatically generated with "make proto". DO NOT EDIT */
+
+
+/* The following definitions come from auth/auth.c  */
+
+NTSTATUS smb_register_auth(int version, const char *name, auth_init_function init);
+bool load_auth_module(struct auth_context *auth_context, 
+		      const char *module, auth_methods **ret) ;
+NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context) ;
+NTSTATUS make_auth_context_fixed(struct auth_context **auth_context, uchar chal[8]) ;
+
+/* The following definitions come from auth/auth_builtin.c  */
+
+NTSTATUS auth_builtin_init(void);
+
+/* The following definitions come from auth/auth_compat.c  */
+
+NTSTATUS check_plaintext_password(const char *smb_name, DATA_BLOB plaintext_password, auth_serversupplied_info **server_info);
+bool password_ok(const char *smb_name, DATA_BLOB password_blob);
+
+/* The following definitions come from auth/auth_domain.c  */
+
+NTSTATUS auth_domain_init(void) ;
+
+/* The following definitions come from auth/auth_ntlmssp.c  */
+
+NTSTATUS auth_ntlmssp_start(AUTH_NTLMSSP_STATE **auth_ntlmssp_state);
+void auth_ntlmssp_end(AUTH_NTLMSSP_STATE **auth_ntlmssp_state);
+NTSTATUS auth_ntlmssp_update(AUTH_NTLMSSP_STATE *auth_ntlmssp_state, 
+			     const DATA_BLOB request, DATA_BLOB *reply) ;
+
+/* The following definitions come from auth/auth_sam.c  */
+
+NTSTATUS auth_sam_init(void);
+
+/* The following definitions come from auth/auth_server.c  */
+
+NTSTATUS auth_server_init(void);
+
+/* The following definitions come from auth/auth_unix.c  */
+
+NTSTATUS auth_unix_init(void);
+
+/* The following definitions come from auth/auth_util.c  */
+
+NTSTATUS make_user_info_map(auth_usersupplied_info **user_info, 
+			    const char *smb_name, 
+			    const char *client_domain, 
+			    const char *wksta_name, 
+ 			    DATA_BLOB *lm_pwd, DATA_BLOB *nt_pwd,
+ 			    DATA_BLOB *lm_interactive_pwd, DATA_BLOB *nt_interactive_pwd,
+			    DATA_BLOB *plaintext, 
+			    bool encrypted);
+bool make_user_info_netlogon_network(auth_usersupplied_info **user_info, 
+				     const char *smb_name, 
+				     const char *client_domain, 
+				     const char *wksta_name, 
+				     uint32 logon_parameters,
+				     const uchar *lm_network_pwd,
+				     int lm_pwd_len,
+				     const uchar *nt_network_pwd,
+				     int nt_pwd_len);
+bool make_user_info_netlogon_interactive(auth_usersupplied_info **user_info, 
+					 const char *smb_name, 
+					 const char *client_domain, 
+					 const char *wksta_name, 
+					 uint32 logon_parameters,
+					 const uchar chal[8], 
+					 const uchar lm_interactive_pwd[16], 
+					 const uchar nt_interactive_pwd[16], 
+					 const uchar *dc_sess_key);
+bool make_user_info_for_reply(auth_usersupplied_info **user_info, 
+			      const char *smb_name, 
+			      const char *client_domain,
+			      const uint8 chal[8],
+			      DATA_BLOB plaintext_password);
+NTSTATUS make_user_info_for_reply_enc(auth_usersupplied_info **user_info, 
+                                      const char *smb_name,
+                                      const char *client_domain, 
+                                      DATA_BLOB lm_resp, DATA_BLOB nt_resp);
+bool make_user_info_guest(auth_usersupplied_info **user_info) ;
+NTSTATUS make_server_info_sam(auth_serversupplied_info **server_info,
+			      struct samu *sampass);
+NTSTATUS create_local_token(auth_serversupplied_info *server_info);
+NTSTATUS create_token_from_username(TALLOC_CTX *mem_ctx, const char *username,
+				    bool is_guest,
+				    uid_t *uid, gid_t *gid,
+				    char **found_username,
+				    struct nt_user_token **token);
+bool user_in_group_sid(const char *username, const DOM_SID *group_sid);
+bool user_in_group(const char *username, const char *groupname);
+NTSTATUS make_server_info_pw(auth_serversupplied_info **server_info, 
+                             char *unix_username,
+			     struct passwd *pwd);
+bool init_guest_info(void);
+NTSTATUS make_server_info_guest(auth_serversupplied_info **server_info);
+bool copy_current_user(struct current_user *dst, struct current_user *src);
+bool set_current_user_guest(struct current_user *dst);
+struct passwd *smb_getpwnam( TALLOC_CTX *mem_ctx, char *domuser,
+			     fstring save_username, bool create );
+NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx, 
+				const char *sent_nt_username,
+				const char *domain,
+				auth_serversupplied_info **server_info, 
+				struct netr_SamInfo3 *info3);
+NTSTATUS make_server_info_wbcAuthUserInfo(TALLOC_CTX *mem_ctx,
+					  const char *sent_nt_username,
+					  const char *domain,
+					  const struct wbcAuthUserInfo *info,
+					  auth_serversupplied_info **server_info);
+void free_user_info(auth_usersupplied_info **user_info);
+bool make_auth_methods(struct auth_context *auth_context, auth_methods **auth_method) ;
+bool is_trusted_domain(const char* dom_name);
+
+/* The following definitions come from auth/auth_winbind.c  */
+
+NTSTATUS auth_winbind_init(void);
+
+/* The following definitions come from auth/pampass.c  */
+
+bool smb_pam_claim_session(char *user, char *tty, char *rhost);
+bool smb_pam_close_session(char *user, char *tty, char *rhost);
+NTSTATUS smb_pam_accountcheck(const char * user);
+NTSTATUS smb_pam_passcheck(const char * user, const char * password);
+bool smb_pam_passchange(const char * user, const char * oldpassword, const char * newpassword);
+NTSTATUS smb_pam_accountcheck(const char * user);
+bool smb_pam_claim_session(char *user, char *tty, char *rhost);
+bool smb_pam_close_session(char *in_user, char *tty, char *rhost);
+
+/* The following definitions come from auth/pass_check.c  */
+
+void dfs_unlogin(void);
+NTSTATUS pass_check(const struct passwd *pass, const char *user, const char *password, 
+		    int pwlen, bool (*fn) (const char *, const char *), bool run_cracker);
+
+/* The following definitions come from auth/token_util.c  */
+
+bool nt_token_check_sid ( const DOM_SID *sid, const NT_USER_TOKEN *token );
+bool nt_token_check_domain_rid( NT_USER_TOKEN *token, uint32 rid );
+NT_USER_TOKEN *get_root_nt_token( void );
+NTSTATUS add_aliases(const DOM_SID *domain_sid,
+		     struct nt_user_token *token);
+struct nt_user_token *create_local_nt_token(TALLOC_CTX *mem_ctx,
+					    const DOM_SID *user_sid,
+					    bool is_guest,
+					    int num_groupsids,
+					    const DOM_SID *groupsids);
+void debug_nt_user_token(int dbg_class, int dbg_lev, NT_USER_TOKEN *token);
+void debug_unix_user_token(int dbg_class, int dbg_lev, uid_t uid, gid_t gid,
+			   int n_groups, gid_t *groups);
+
+/* The following definitions come from dynconfig.c  */
+
+const char *get_dyn_CONFIGFILE(void);
+const char *set_dyn_CONFIGFILE(const char *newpath);
+const char *get_dyn_LOGFILEBASE(void);
+const char *set_dyn_LOGFILEBASE(const char *newpath);
+const char *get_dyn_LMHOSTSFILE(void);
+const char *set_dyn_LMHOSTSFILE(const char *newpath);
+const char *get_dyn_CODEPAGEDIR(void);
+const char *set_dyn_CODEPAGEDIR(const char *newpath);
+const char *get_dyn_LIBDIR(void);
+const char *set_dyn_LIBDIR(const char *newpath);
+const char *get_dyn_SHLIBEXT(void);
+const char *set_dyn_SHLIBEXT(const char *newpath);
+const char *get_dyn_LOCKDIR(void);
+const char *set_dyn_LOCKDIR(const char *newpath);
+const char *get_dyn_PIDDIR(void);
+const char *set_dyn_PIDDIR(const char *newpath);
+const char *get_dyn_SMB_PASSWD_FILE(void);
+const char *set_dyn_SMB_PASSWD_FILE(const char *newpath);
+const char *get_dyn_PRIVATE_DIR(void);
+const char *set_dyn_PRIVATE_DIR(const char *newpath);
+const char *get_dyn_STATEDIR(void);
+const char *get_dyn_CACHEDIR(void);
+
+/* The following definitions come from groupdb/mapping.c  */
+
+NTSTATUS add_initial_entry(gid_t gid, const char *sid, enum lsa_SidType sid_name_use, const char *nt_name, const char *comment);
+bool get_domain_group_from_sid(DOM_SID sid, GROUP_MAP *map);
+int smb_create_group(const char *unix_group, gid_t *new_gid);
+int smb_delete_group(const char *unix_group);
+int smb_set_primary_group(const char *unix_group, const char* unix_user);
+int smb_add_user_group(const char *unix_group, const char *unix_user);
+int smb_delete_user_group(const char *unix_group, const char *unix_user);
+NTSTATUS pdb_default_getgrsid(struct pdb_methods *methods, GROUP_MAP *map,
+				 DOM_SID sid);
+NTSTATUS pdb_default_getgrgid(struct pdb_methods *methods, GROUP_MAP *map,
+				 gid_t gid);
+NTSTATUS pdb_default_getgrnam(struct pdb_methods *methods, GROUP_MAP *map,
+				 const char *name);
+NTSTATUS pdb_default_add_group_mapping_entry(struct pdb_methods *methods,
+						GROUP_MAP *map);
+NTSTATUS pdb_default_update_group_mapping_entry(struct pdb_methods *methods,
+						   GROUP_MAP *map);
+NTSTATUS pdb_default_delete_group_mapping_entry(struct pdb_methods *methods,
+						   DOM_SID sid);
+NTSTATUS pdb_default_enum_group_mapping(struct pdb_methods *methods,
+					   const DOM_SID *sid, enum lsa_SidType sid_name_use,
+					   GROUP_MAP **pp_rmap, size_t *p_num_entries,
+					   bool unix_only);
+NTSTATUS pdb_default_create_alias(struct pdb_methods *methods,
+				  const char *name, uint32 *rid);
+NTSTATUS pdb_default_delete_alias(struct pdb_methods *methods,
+				  const DOM_SID *sid);
+NTSTATUS pdb_default_get_aliasinfo(struct pdb_methods *methods,
+				   const DOM_SID *sid,
+				   struct acct_info *info);
+NTSTATUS pdb_default_set_aliasinfo(struct pdb_methods *methods,
+				   const DOM_SID *sid,
+				   struct acct_info *info);
+NTSTATUS pdb_default_add_aliasmem(struct pdb_methods *methods,
+				  const DOM_SID *alias, const DOM_SID *member);
+NTSTATUS pdb_default_del_aliasmem(struct pdb_methods *methods,
+				  const DOM_SID *alias, const DOM_SID *member);
+NTSTATUS pdb_default_enum_aliasmem(struct pdb_methods *methods,
+				   const DOM_SID *alias, DOM_SID **pp_members,
+				   size_t *p_num_members);
+NTSTATUS pdb_default_alias_memberships(struct pdb_methods *methods,
+				       TALLOC_CTX *mem_ctx,
+				       const DOM_SID *domain_sid,
+				       const DOM_SID *members,
+				       size_t num_members,
+				       uint32 **pp_alias_rids,
+				       size_t *p_num_alias_rids);
+NTSTATUS pdb_nop_getgrsid(struct pdb_methods *methods, GROUP_MAP *map,
+				 DOM_SID sid);
+NTSTATUS pdb_nop_getgrgid(struct pdb_methods *methods, GROUP_MAP *map,
+				 gid_t gid);
+NTSTATUS pdb_nop_getgrnam(struct pdb_methods *methods, GROUP_MAP *map,
+				 const char *name);
+NTSTATUS pdb_nop_add_group_mapping_entry(struct pdb_methods *methods,
+						GROUP_MAP *map);
+NTSTATUS pdb_nop_update_group_mapping_entry(struct pdb_methods *methods,
+						   GROUP_MAP *map);
+NTSTATUS pdb_nop_delete_group_mapping_entry(struct pdb_methods *methods,
+						   DOM_SID sid);
+NTSTATUS pdb_nop_enum_group_mapping(struct pdb_methods *methods,
+					   enum lsa_SidType sid_name_use,
+					   GROUP_MAP **rmap, size_t *num_entries,
+					   bool unix_only);
+bool pdb_get_dom_grp_info(const DOM_SID *sid, struct acct_info *info);
+bool pdb_set_dom_grp_info(const DOM_SID *sid, const struct acct_info *info);
+NTSTATUS pdb_create_builtin_alias(uint32 rid);
+
+/* The following definitions come from groupdb/mapping_ldb.c  */
+
+const struct mapping_backend *groupdb_ldb_init(void);
+
+/* The following definitions come from groupdb/mapping_tdb.c  */
+
+const struct mapping_backend *groupdb_tdb_init(void);
+
+/* The following definitions come from intl/lang_tdb.c  */
+
+bool lang_tdb_init(const char *lang);
+const char *lang_msg(const char *msgid);
+void lang_msg_free(const char *msgstr);
+char *lang_tdb_current(void);
+
+/* The following definitions come from lib/access.c  */
+
+bool allow_access(const char **deny_list,
+		const char **allow_list,
+		const char *cname,
+		const char *caddr);
+bool check_access(int sock, const char **allow_list, const char **deny_list);
+
+/* The following definitions come from lib/account_pol.c  */
+
+void account_policy_names_list(const char ***names, int *num_names);
+const char *decode_account_policy_name(int field);
+const char *get_account_policy_attr(int field);
+const char *account_policy_get_desc(int field);
+int account_policy_name_to_fieldnum(const char *name);
+bool account_policy_get_default(int account_policy, uint32 *val);
+bool init_account_policy(void);
+bool account_policy_get(int field, uint32 *value);
+bool account_policy_set(int field, uint32 value);
+bool cache_account_policy_set(int field, uint32 value);
+bool cache_account_policy_get(int field, uint32 *value);
+struct db_context *get_account_pol_db( void );
+
+/* The following definitions come from lib/adt_tree.c  */
+
+
+/* The following definitions come from lib/afs.c  */
+
+char *afs_createtoken_str(const char *username, const char *cell);
+bool afs_login(connection_struct *conn);
+bool afs_login(connection_struct *conn);
+char *afs_createtoken_str(const char *username, const char *cell);
+
+/* The following definitions come from lib/afs_settoken.c  */
+
+int afs_syscall( int subcall,
+	  char * path,
+	  int cmd,
+	  char * cmarg,
+	  int follow);
+bool afs_settoken_str(const char *token_string);
+bool afs_settoken_str(const char *token_string);
+
+/* The following definitions come from lib/arc4.c  */
+
+void smb_arc4_init(unsigned char arc4_state_out[258], const unsigned char *key, size_t keylen);
+void smb_arc4_crypt(unsigned char arc4_state_inout[258], unsigned char *data, size_t len);
+
+/* The following definitions come from lib/audit.c  */
+
+const char *audit_category_str(uint32 category);
+const char *audit_param_str(uint32 category);
+const char *audit_description_str(uint32 category);
+bool get_audit_category_from_param(const char *param, uint32 *audit_category);
+const char *audit_policy_str(TALLOC_CTX *mem_ctx, uint32 policy);
+
+/* The following definitions come from lib/bitmap.c  */
+
+struct bitmap *bitmap_allocate(int n);
+void bitmap_free(struct bitmap *bm);
+struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n);
+int bitmap_copy(struct bitmap * const dst, const struct bitmap * const src);
+bool bitmap_set(struct bitmap *bm, unsigned i);
+bool bitmap_clear(struct bitmap *bm, unsigned i);
+bool bitmap_query(struct bitmap *bm, unsigned i);
+int bitmap_find(struct bitmap *bm, unsigned ofs);
+
+/* The following definitions come from lib/charcnv.c  */
+
+char lp_failed_convert_char(void);
+void lazy_initialize_conv(void);
+void gfree_charcnv(void);
+void init_iconv(void);
+size_t convert_string(charset_t from, charset_t to,
+		      void const *src, size_t srclen, 
+		      void *dest, size_t destlen, bool allow_bad_conv);
+bool convert_string_allocate(TALLOC_CTX *ctx, charset_t from, charset_t to,
+			     void const *src, size_t srclen, void *dst,
+			     size_t *converted_size, bool allow_bad_conv);
+size_t convert_string_talloc(TALLOC_CTX *ctx, charset_t from, charset_t to,
+			     void const *src, size_t srclen, void *dst,
+			     bool allow_bad_conv);
+size_t unix_strupper(const char *src, size_t srclen, char *dest, size_t destlen);
+char *strdup_upper(const char *s);
+char *talloc_strdup_upper(TALLOC_CTX *ctx, const char *s);
+size_t unix_strlower(const char *src, size_t srclen, char *dest, size_t destlen);
+char *strdup_lower(const char *s);
+char *talloc_strdup_lower(TALLOC_CTX *ctx, const char *s);
+size_t ucs2_align(const void *base_ptr, const void *p, int flags);
+size_t push_ascii(void *dest, const char *src, size_t dest_len, int flags);
+size_t push_ascii_fstring(void *dest, const char *src);
+size_t push_ascii_nstring(void *dest, const char *src);
+size_t push_ascii_allocate(char **dest, const char *src);
+size_t pull_ascii(char *dest, const void *src, size_t dest_len, size_t src_len, int flags);
+size_t pull_ascii_fstring(char *dest, const void *src);
+size_t pull_ascii_nstring(char *dest, size_t dest_len, const void *src);
+size_t push_ucs2(const void *base_ptr, void *dest, const char *src, size_t dest_len, int flags);
+size_t push_ucs2_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src);
+size_t push_ucs2_allocate(smb_ucs2_t **dest, const char *src);
+size_t push_utf8_fstring(void *dest, const char *src);
+size_t push_utf8_talloc(TALLOC_CTX *ctx, char **dest, const char *src);
+size_t push_utf8_allocate(char **dest, const char *src);
+size_t pull_ucs2(const void *base_ptr, char *dest, const void *src, size_t dest_len, size_t src_len, int flags);
+size_t pull_ucs2_base_talloc(TALLOC_CTX *ctx,
+			const void *base_ptr,
+			char **ppdest,
+			const void *src,
+			size_t src_len,
+			int flags);
+size_t pull_ucs2_fstring(char *dest, const void *src);
+size_t pull_ucs2_talloc(TALLOC_CTX *ctx, char **dest, const smb_ucs2_t *src);
+size_t pull_ucs2_allocate(char **dest, const smb_ucs2_t *src);
+size_t pull_utf8_talloc(TALLOC_CTX *ctx, char **dest, const char *src);
+size_t pull_utf8_allocate(char **dest, const char *src);
+size_t pull_ascii_talloc(TALLOC_CTX *ctx, char **dest, const char *src);
+size_t push_string_fn(const char *function, unsigned int line,
+		      const void *base_ptr, uint16 flags2,
+		      void *dest, const char *src,
+		      size_t dest_len, int flags);
+size_t pull_string_fn(const char *function,
+			unsigned int line,
+			const void *base_ptr,
+			uint16 smb_flags2,
+			char *dest,
+			const void *src,
+			size_t dest_len,
+			size_t src_len,
+			int flags);
+size_t pull_string_talloc_fn(const char *function,
+			unsigned int line,
+			TALLOC_CTX *ctx,
+			const void *base_ptr,
+			uint16 smb_flags2,
+			char **ppdest,
+			const void *src,
+			size_t src_len,
+			int flags);
+size_t align_string(const void *base_ptr, const char *p, int flags);
+codepoint_t next_codepoint(const char *str, size_t *size);
+
+/* The following definitions come from lib/clobber.c  */
+
+void clobber_region(const char *fn, unsigned int line, char *dest, size_t len);
+
+/* The following definitions come from lib/conn_tdb.c  */
+
+struct db_record *connections_fetch_record(TALLOC_CTX *mem_ctx,
+					   TDB_DATA key);
+struct db_record *connections_fetch_entry(TALLOC_CTX *mem_ctx,
+					  connection_struct *conn,
+					  const char *name);
+int connections_traverse(int (*fn)(struct db_record *rec,
+				   void *private_data),
+			 void *private_data);
+int connections_forall(int (*fn)(struct db_record *rec,
+				 const struct connections_key *key,
+				 const struct connections_data *data,
+				 void *private_data),
+		       void *private_data);
+bool connections_init(bool rw);
+
+/* The following definitions come from lib/crc32.c  */
+
+uint32 crc32_calc_buffer(const char *buf, size_t size);
+
+/* The following definitions come from lib/data_blob.c  */
+
+DATA_BLOB data_blob(const void *p, size_t length);
+DATA_BLOB data_blob_talloc(TALLOC_CTX *mem_ctx, const void *p, size_t length);
+void data_blob_free(DATA_BLOB *d);
+void data_blob_clear(DATA_BLOB *d);
+void data_blob_clear_free(DATA_BLOB *d);
+DATA_BLOB data_blob_string_const(const char *str);
+DATA_BLOB data_blob_const(const void *p, size_t length);
+DATA_BLOB data_blob_talloc_zero(TALLOC_CTX *mem_ctx, size_t length);
+
+/* The following definitions come from lib/dbwrap_util.c  */
+
+int32_t dbwrap_fetch_int32(struct db_context *db, const char *keystr);
+int dbwrap_store_int32(struct db_context *db, const char *keystr, int32_t v);
+bool dbwrap_fetch_uint32(struct db_context *db, const char *keystr,
+			 uint32_t *val);
+int dbwrap_store_uint32(struct db_context *db, const char *keystr, uint32_t v);
+uint32_t dbwrap_change_uint32_atomic(struct db_context *db, const char *keystr,
+				     uint32_t *oldval, uint32_t change_val);
+int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,
+				 int32 *oldval, int32 change_val);
+NTSTATUS dbwrap_trans_store(struct db_context *db, TDB_DATA key, TDB_DATA dbuf,
+			    int flag);
+NTSTATUS dbwrap_trans_delete(struct db_context *db, TDB_DATA key);
+NTSTATUS dbwrap_trans_store_int32(struct db_context *db, const char *keystr,
+				  int32_t v);
+NTSTATUS dbwrap_trans_store_uint32(struct db_context *db, const char *keystr,
+				   uint32_t v);
+NTSTATUS dbwrap_trans_store_bystring(struct db_context *db, const char *key,
+				     TDB_DATA data, int flags);
+NTSTATUS dbwrap_trans_delete_bystring(struct db_context *db, const char *key);
+
+/* The following definitions come from lib/debug.c  */
+
+void gfree_debugsyms(void);
+const char *debug_classname_from_index(int ndx);
+int debug_add_class(const char *classname);
+int debug_lookup_classname(const char *classname);
+bool debug_parse_levels(const char *params_str);
+void debug_message(struct messaging_context *msg_ctx,
+			  void *private_data, 
+			  uint32_t msg_type, 
+			  struct server_id src,
+			  DATA_BLOB *data);
+void debug_init(void);
+void debug_register_msgs(struct messaging_context *msg_ctx);
+void setup_logging(const char *pname, bool interactive);
+void debug_set_logfile(const char *name);
+bool reopen_logs( void );
+void force_check_log_size( void );
+bool need_to_check_log_size( void );
+void check_log_size( void );
+void dbgflush( void );
+bool dbghdr(int level, int cls, const char *file, const char *func, int line);
+TALLOC_CTX *debug_ctx(void);
+
+/* The following definitions come from lib/display_sec.c  */
+
+char *get_sec_mask_str(TALLOC_CTX *ctx, uint32 type);
+void display_sec_access(SEC_ACCESS *info);
+void display_sec_ace_flags(uint8_t flags);
+void display_sec_ace(SEC_ACE *ace);
+void display_sec_acl(SEC_ACL *sec_acl);
+void display_acl_type(uint16 type);
+void display_sec_desc(SEC_DESC *sec);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list