X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=source3%2Fsmbd%2Fproto.h;h=fdb0ffabf752ca2550ac6e0f1de5c891fd462760;hb=11f2583420310e0278188935f31be3131eb85fd4;hp=ed12e504bf8bb3e666080607db8e1bc2e7926463;hpb=66bc2c4332f475d9b614c442223749a499b39c60;p=samba.git diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index ed12e504bf8..fdb0ffabf75 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -146,6 +146,9 @@ NTSTATUS delete_all_streams(connection_struct *conn, bool recursive_rmdir(TALLOC_CTX *ctx, connection_struct *conn, struct smb_filename *smb_dname); +bool has_other_nonposix_opens(struct share_mode_lock *lck, + struct files_struct *fsp, + struct server_id self); /* The following definitions come from smbd/conn.c */ @@ -260,6 +263,11 @@ mode_t unix_mode(connection_struct *conn, int dosmode, uint32_t dos_mode_msdfs(connection_struct *conn, const struct smb_filename *smb_fname); uint32_t dos_mode(connection_struct *conn, struct smb_filename *smb_fname); +struct tevent_req *dos_mode_at_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + files_struct *dir_fsp, + struct smb_filename *smb_fname); +NTSTATUS dos_mode_at_recv(struct tevent_req *req, uint32_t *dosmode); int file_set_dosmode(connection_struct *conn, struct smb_filename *smb_fname, uint32_t dosmode, const char *parent_dir, bool newfile); NTSTATUS file_set_sparse(connection_struct *conn, @@ -290,6 +298,10 @@ struct timespec get_change_timespec(connection_struct *conn, struct files_struct *fsp, const struct smb_filename *smb_fname); +NTSTATUS parse_dos_attribute_blob(struct smb_filename *smb_fname, + DATA_BLOB blob, + uint32_t *pattr); + /* The following definitions come from smbd/error.c */ bool use_nt_status(void); @@ -320,10 +332,7 @@ NTSTATUS can_set_delete_on_close(files_struct *fsp, uint32_t dosmode); /* The following definitions come from smbd/fileio.c */ ssize_t read_file(files_struct *fsp,char *data,off_t pos,size_t n); -void update_write_time_handler(struct tevent_context *ctx, - struct tevent_timer *te, - struct timeval now, - void *private_data); +void fsp_flush_write_time_update(struct files_struct *fsp); void trigger_write_time_update(struct files_struct *fsp); void trigger_write_time_update_immediate(struct files_struct *fsp); void mark_file_modified(files_struct *fsp); @@ -356,6 +365,7 @@ NTSTATUS filename_convert(TALLOC_CTX *mem_ctx, connection_struct *conn, const char *name_in, uint32_t ucf_flags, + time_t *twrp, bool *ppath_contains_wcard, struct smb_filename **pp_smb_fname); NTSTATUS filename_convert_with_privilege(TALLOC_CTX *mem_ctx, @@ -393,7 +403,6 @@ struct files_struct *file_find_one_fsp_from_lease_key( struct smbd_server_connection *sconn, const struct smb2_lease_key *lease_key); bool file_find_subpath(files_struct *dir_fsp); -void file_sync_all(connection_struct *conn); void fsp_free(files_struct *fsp); void file_free(struct smb_request *req, files_struct *fsp); files_struct *file_fsp(struct smb_request *req, uint16_t fid); @@ -499,21 +508,6 @@ NTSTATUS resolve_dfspath_wcard(TALLOC_CTX *ctx, bool allow_broken_path, char **pp_name_out, bool *ppath_contains_wcard); -NTSTATUS create_conn_struct(TALLOC_CTX *ctx, - struct tevent_context *ev, - struct messaging_context *msg, - connection_struct **pconn, - int snum, - const char *path, - const struct auth_session_info *session_info); -NTSTATUS create_conn_struct_cwd(TALLOC_CTX *ctx, - struct tevent_context *ev, - struct messaging_context *msg, - connection_struct **pconn, - int snum, - const char *path, - const struct auth_session_info *session_info, - struct smb_filename **poldcwd_fname); struct connection_struct; struct smb_filename; struct conn_struct_tos { @@ -548,7 +542,9 @@ void change_notify_reply(struct smb_request *req, void notify_callback(struct smbd_server_connection *sconn, void *private_data, struct timespec when, const struct notify_event *e); -NTSTATUS change_notify_create(struct files_struct *fsp, uint32_t filter, +NTSTATUS change_notify_create(struct files_struct *fsp, + uint32_t max_buffer_size, + uint32_t filter, bool recursive); NTSTATUS change_notify_add_request(struct smb_request *req, uint32_t max_param, @@ -604,7 +600,6 @@ int fam_watch(TALLOC_CTX *mem_ctx, struct notify_context *notify_init( TALLOC_CTX *mem_ctx, struct messaging_context *msg, - struct tevent_context *ev, struct smbd_server_connection *sconn, void (*callback)(struct smbd_server_connection *sconn, void *, struct timespec, @@ -650,6 +645,20 @@ NTSTATUS smbd_do_query_security_desc(connection_struct *conn, uint32_t max_data_count, uint8_t **ppmarshalled_sd, size_t *psd_size); +#ifdef HAVE_SYS_QUOTAS + +struct smb2_query_quota_info; + +NTSTATUS smbd_do_query_getinfo_quota(TALLOC_CTX *mem_ctx, + files_struct *fsp, + bool restart_scan, + bool return_single, + uint32_t sid_list_length, + DATA_BLOB *sidbuffer, + uint32_t max_data_count, + uint8_t **p_data, + uint32_t *p_data_size); +#endif void reply_nttrans(struct smb_request *req); void reply_nttranss(struct smb_request *req); @@ -750,10 +759,6 @@ void message_to_share_mode_entry(struct file_id *id, bool init_oplocks(struct smbd_server_connection *sconn); void init_kernel_oplocks(struct smbd_server_connection *sconn); -/* The following definitions come from smbd/oplock_irix.c */ - -struct kernel_oplocks *irix_init_kernel_oplocks(struct smbd_server_connection *sconn); - /* The following definitions come from smbd/oplock_linux.c */ void linux_set_lease_capability(void); @@ -839,8 +844,6 @@ NTSTATUS make_default_filesystem_acl( /* The following definitions come from smbd/process.c */ -void smbd_setup_sig_term_handler(struct smbd_server_connection *sconn); -void smbd_setup_sig_hup_handler(struct smbd_server_connection *sconn); bool srv_send_smb(struct smbXsrv_connection *xconn, char *buffer, bool no_signing, uint32_t seqnum, bool do_encrypt, @@ -1081,7 +1084,8 @@ void smbd_exit_server_cleanly(const char *const reason) _NORETURN_; bool set_conn_connectpath(connection_struct *conn, const char *connectpath); NTSTATUS set_conn_force_user_group(connection_struct *conn, int snum); -bool set_current_service(connection_struct *conn, uint16_t flags, bool do_chdir); +void set_current_case_sensitive(connection_struct *conn, uint16_t flags); +bool chdir_current_service(connection_struct *conn); void load_registry_shares(void); int add_home_service(const char *service, const char *username, const char *homedir); int find_service(TALLOC_CTX *ctx, const char *service, char **p_service_out); @@ -1215,6 +1219,7 @@ NTSTATUS check_user_share_access(connection_struct *conn, uint32_t *p_share_access, bool *p_readonly_share); bool change_to_user(connection_struct *conn, uint64_t vuid); +bool change_to_user_by_fsp(struct files_struct *fsp); bool smbd_change_to_root_user(void); bool smbd_become_authenticated_pipe_user(struct auth_session_info *session_info); bool smbd_unbecome_authenticated_pipe_user(void); @@ -1223,6 +1228,7 @@ void unbecome_root(void); void smbd_become_root(void); void smbd_unbecome_root(void); bool become_user(connection_struct *conn, uint64_t vuid); +bool become_user_by_fsp(struct files_struct *fsp); bool become_user_by_session(connection_struct *conn, const struct auth_session_info *session_info); bool unbecome_user(void);