Changeset 988 for vendor/current/source3/include/proto.h
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source3/include/proto.h
r919 r988 24 24 #define _PROTO_H_ 25 25 26 #include <sys/types.h> 27 #include <regex.h> 28 26 29 /* The following definitions come from lib/access.c */ 27 30 … … 36 39 /* The following definitions come from lib/adt_tree.c */ 37 40 38 39 /* The following definitions come from lib/afs.c */40 41 char *afs_createtoken_str(const char *username, const char *cell);42 bool afs_login(connection_struct *conn);43 bool afs_login(connection_struct *conn);44 char *afs_createtoken_str(const char *username, const char *cell);45 46 /* The following definitions come from lib/afs_settoken.c */47 48 int afs_syscall( int subcall,49 char * path,50 int cmd,51 char * cmarg,52 int follow);53 bool afs_settoken_str(const char *token_string);54 bool afs_settoken_str(const char *token_string);55 56 41 /* The following definitions come from lib/audit.c */ 57 42 58 const char *audit_category_str(uint32 category);59 const char *audit_param_str(uint32 category);60 const char *audit_description_str(uint32 category);61 bool get_audit_category_from_param(const char *param, uint32 *audit_category);62 const char *audit_policy_str(TALLOC_CTX *mem_ctx, uint32 policy);43 const char *audit_category_str(uint32_t category); 44 const char *audit_param_str(uint32_t category); 45 const char *audit_description_str(uint32_t category); 46 bool get_audit_category_from_param(const char *param, uint32_t *audit_category); 47 const char *audit_policy_str(TALLOC_CTX *mem_ctx, uint32_t policy); 63 48 64 49 /* The following definitions come from lib/charcnv.c */ 65 50 66 char lp_failed_convert_char(void);67 void lazy_initialize_conv(void);68 51 void gfree_charcnv(void); 69 void init_iconv(void);70 size_t convert_string(charset_t from, charset_t to,71 void const *src, size_t srclen,72 void *dest, size_t destlen, bool allow_bad_conv);73 size_t unix_strupper(const char *src, size_t srclen, char *dest, size_t destlen);74 char *talloc_strdup_upper(TALLOC_CTX *ctx, const char *s);75 char *strupper_talloc(TALLOC_CTX *ctx, const char *s);76 size_t unix_strlower(const char *src, size_t srclen, char *dest, size_t destlen);77 char *talloc_strdup_lower(TALLOC_CTX *ctx, const char *s);78 char *strlower_talloc(TALLOC_CTX *ctx, const char *s);79 52 size_t ucs2_align(const void *base_ptr, const void *p, int flags); 80 53 size_t push_ascii(void *dest, const char *src, size_t dest_len, int flags); … … 84 57 size_t pull_ascii_fstring(char *dest, const void *src); 85 58 size_t pull_ascii_nstring(char *dest, size_t dest_len, const void *src); 86 size_t push_ ucs2(const void *base_ptr, void *dest, const char *src, size_t dest_len, int flags);87 size_t push_utf8_fstring(void *dest, const char *src);88 bool push_utf8_talloc(TALLOC_CTX *ctx, char **dest, const char *src,89 size_t *converted_size);90 size_t pull_ucs2(const void *base_ptr, char *dest, const void *src, size_t dest_len, size_t src_len, int flags);91 size_t pull_ ucs2_base_talloc(TALLOC_CTX *ctx,59 size_t push_string_check_fn(void *dest, const char *src, 60 size_t dest_len, int flags); 61 size_t push_string_base(const char *base, uint16_t flags2, 62 void *dest, const char *src, 63 size_t dest_len, int flags); 64 size_t pull_string_talloc(TALLOC_CTX *ctx, 92 65 const void *base_ptr, 66 uint16_t smb_flags2, 93 67 char **ppdest, 94 68 const void *src, 95 69 size_t src_len, 96 70 int flags); 97 size_t pull_ucs2_fstring(char *dest, const void *src); 98 bool push_ucs2_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src, 99 size_t *converted_size); 100 bool pull_utf8_talloc(TALLOC_CTX *ctx, char **dest, const char *src, 101 size_t *converted_size); 102 bool pull_ucs2_talloc(TALLOC_CTX *ctx, char **dest, const smb_ucs2_t *src, 103 size_t *converted_size); 104 bool pull_ascii_talloc(TALLOC_CTX *ctx, char **dest, const char *src, 105 size_t *converted_size); 106 size_t push_string_check_fn(const char *function, unsigned int line, 107 void *dest, const char *src, 108 size_t dest_len, int flags); 109 size_t push_string_base(const char *function, unsigned int line, 110 const char *base, uint16 flags2, 111 void *dest, const char *src, 112 size_t dest_len, int flags); 113 size_t pull_string_fn(const char *function, 114 unsigned int line, 115 const void *base_ptr, 116 uint16 smb_flags2, 117 char *dest, 118 const void *src, 119 size_t dest_len, 120 size_t src_len, 121 int flags); 122 size_t pull_string_talloc_fn(const char *function, 123 unsigned int line, 124 TALLOC_CTX *ctx, 125 const void *base_ptr, 126 uint16 smb_flags2, 127 char **ppdest, 128 const void *src, 129 size_t src_len, 130 int flags); 131 size_t align_string(const void *base_ptr, const char *p, int flags); 132 133 /* The following definitions come from lib/clobber.c */ 134 135 void clobber_region(const char *fn, unsigned int line, char *dest, size_t len); 136 137 /* The following definitions come from lib/conn_tdb.c */ 138 139 struct db_record *connections_fetch_entry(TALLOC_CTX *mem_ctx, 140 connection_struct *conn, 141 const char *name); 142 int connections_traverse(int (*fn)(struct db_record *rec, 143 void *private_data), 144 void *private_data); 145 int connections_forall(int (*fn)(struct db_record *rec, 146 const struct connections_key *key, 147 const struct connections_data *data, 148 void *private_data), 149 void *private_data); 150 int connections_forall_read(int (*fn)(const struct connections_key *key, 151 const struct connections_data *data, 152 void *private_data), 153 void *private_data); 154 bool connections_init(bool rw); 71 size_t dos_PutUniCode(char *dst,const char *src, size_t len, bool null_terminate); 72 int rpcstr_push_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src); 155 73 156 74 /* The following definitions come from lib/dmallocmsg.c */ … … 167 85 int map_errno_from_nt_status(NTSTATUS status); 168 86 169 /* The following definitions come from lib/fault.c */170 void fault_setup(void (*fn)(void *));171 void dump_core_setup(const char *progname);172 173 87 /* The following definitions come from lib/file_id.c */ 174 88 175 89 struct file_id vfs_file_id_from_sbuf(connection_struct *conn, const SMB_STRUCT_STAT *sbuf); 176 bool file_id_equal(const struct file_id *id1, const struct file_id *id2); 177 const char *file_id_string_tos(const struct file_id *id); 178 void push_file_id_16(char *buf, const struct file_id *id); 179 void push_file_id_24(char *buf, const struct file_id *id); 180 void pull_file_id_24(char *buf, struct file_id *id); 181 182 /* The following definitions come from lib/gencache.c */ 183 184 bool gencache_set(const char *keystr, const char *value, time_t timeout); 185 bool gencache_del(const char *keystr); 186 bool gencache_get(const char *keystr, char **valstr, time_t *timeout); 187 bool gencache_parse(const char *keystr, 188 void (*parser)(time_t timeout, DATA_BLOB blob, 189 void *private_data), 190 void *private_data); 191 bool gencache_get_data_blob(const char *keystr, DATA_BLOB *blob, 192 time_t *timeout, bool *was_expired); 193 bool gencache_stabilize(void); 194 bool gencache_set_data_blob(const char *keystr, const DATA_BLOB *blob, time_t timeout); 195 void gencache_iterate_blobs(void (*fn)(const char *key, DATA_BLOB value, 196 time_t timeout, void *private_data), 197 void *private_data, const char *pattern); 198 void gencache_iterate(void (*fn)(const char* key, const char *value, time_t timeout, void* dptr), 199 void* data, const char* keystr_pattern); 90 91 #include "lib/gencache.h" 200 92 201 93 /* The following definitions come from lib/interface.c */ … … 229 121 char *escape_rdn_val_string_alloc(const char *s); 230 122 231 /* The following definitions come from lib/module.c */232 233 NTSTATUS smb_load_module(const char *module_name);234 int smb_load_modules(const char **modules);235 NTSTATUS smb_probe_module(const char *subsystem, const char *module);236 NTSTATUS smb_load_module(const char *module_name);237 int smb_load_modules(const char **modules);238 NTSTATUS smb_probe_module(const char *subsystem, const char *module);239 void init_modules(void);240 241 123 /* The following definitions come from lib/ms_fnmatch.c */ 242 124 243 125 int ms_fnmatch(const char *pattern, const char *string, bool translate_pattern, 244 126 bool is_case_sensitive); 245 int gen_fnmatch(const char *pattern, const char *string);246 247 /* The following definitions come from lib/pidfile.c */248 249 pid_t pidfile_pid(const char *name);250 void pidfile_create(const char *program_name);251 void pidfile_unlink(void);252 127 253 128 /* The following definitions come from lib/recvfile.c */ … … 255 130 ssize_t sys_recvfile(int fromfd, 256 131 int tofd, 257 SMB_OFF_Toffset,132 off_t offset, 258 133 size_t count); 259 134 ssize_t sys_recvfile(int fromfd, 260 135 int tofd, 261 SMB_OFF_Toffset,136 off_t offset, 262 137 size_t count); 263 138 ssize_t drain_socket(int sockfd, size_t count); 264 139 265 /* The following definitions come from lib/secdesc.c */266 267 uint32_t get_sec_info(const struct security_descriptor *sd);268 struct security_descriptor *sec_desc_merge(TALLOC_CTX *ctx, struct security_descriptor *new_sdb, struct security_descriptor *old_sdb);269 struct sec_desc_buf *sec_desc_merge_buf(TALLOC_CTX *ctx, struct sec_desc_buf *new_sdb, struct sec_desc_buf *old_sdb);270 struct security_descriptor *make_sec_desc(TALLOC_CTX *ctx,271 enum security_descriptor_revision revision,272 uint16 type,273 const struct dom_sid *owner_sid, const struct dom_sid *grp_sid,274 struct security_acl *sacl, struct security_acl *dacl, size_t *sd_size);275 struct security_descriptor *dup_sec_desc(TALLOC_CTX *ctx, const struct security_descriptor *src);276 NTSTATUS marshall_sec_desc(TALLOC_CTX *mem_ctx,277 struct security_descriptor *secdesc,278 uint8 **data, size_t *len);279 NTSTATUS marshall_sec_desc_buf(TALLOC_CTX *mem_ctx,280 struct sec_desc_buf *secdesc_buf,281 uint8_t **data, size_t *len);282 NTSTATUS unmarshall_sec_desc(TALLOC_CTX *mem_ctx, uint8 *data, size_t len,283 struct security_descriptor **psecdesc);284 NTSTATUS unmarshall_sec_desc_buf(TALLOC_CTX *mem_ctx, uint8_t *data, size_t len,285 struct sec_desc_buf **psecdesc_buf);286 struct security_descriptor *make_standard_sec_desc(TALLOC_CTX *ctx, const struct dom_sid *owner_sid, const struct dom_sid *grp_sid,287 struct security_acl *dacl, size_t *sd_size);288 struct sec_desc_buf *make_sec_desc_buf(TALLOC_CTX *ctx, size_t len, struct security_descriptor *sec_desc);289 struct sec_desc_buf *dup_sec_desc_buf(TALLOC_CTX *ctx, struct sec_desc_buf *src);290 NTSTATUS sec_desc_add_sid(TALLOC_CTX *ctx, struct security_descriptor **psd, const struct dom_sid *sid, uint32 mask, size_t *sd_size);291 NTSTATUS sec_desc_mod_sid(struct security_descriptor *sd, struct dom_sid *sid, uint32 mask);292 NTSTATUS sec_desc_del_sid(TALLOC_CTX *ctx, struct security_descriptor **psd, struct dom_sid *sid, size_t *sd_size);293 bool sd_has_inheritable_components(const struct security_descriptor *parent_ctr, bool container);294 NTSTATUS se_create_child_secdesc(TALLOC_CTX *ctx,295 struct security_descriptor **ppsd,296 size_t *psize,297 const struct security_descriptor *parent_ctr,298 const struct dom_sid *owner_sid,299 const struct dom_sid *group_sid,300 bool container);301 NTSTATUS se_create_child_secdesc_buf(TALLOC_CTX *ctx,302 struct sec_desc_buf **ppsdb,303 const struct security_descriptor *parent_ctr,304 bool container);305 306 140 /* The following definitions come from lib/sendfile.c */ 307 141 308 ssize_t sys_sendfile(int tofd, int fromfd, const DATA_BLOB *header, SMB_OFF_Toffset, size_t count);142 ssize_t sys_sendfile(int tofd, int fromfd, const DATA_BLOB *header, off_t offset, size_t count); 309 143 310 144 /* The following definitions come from lib/server_mutex.c */ … … 316 150 317 151 bool share_info_db_init(void); 318 struct security_descriptor *get_share_security_default( TALLOC_CTX *ctx, size_t *psize, uint32 def_access);152 struct security_descriptor *get_share_security_default( TALLOC_CTX *ctx, size_t *psize, uint32_t def_access); 319 153 struct security_descriptor *get_share_security( TALLOC_CTX *ctx, const char *servicename, 320 154 size_t *psize); … … 323 157 bool share_access_check(const struct security_token *token, 324 158 const char *sharename, 325 uint32 desired_access,159 uint32_t desired_access, 326 160 uint32_t *pgranted); 327 161 bool parse_usershare_acl(TALLOC_CTX *ctx, const char *acl_str, struct security_descriptor **ppsd); … … 357 191 const char *input_string, 358 192 const char *username, 193 const char *grpname, 359 194 const char *domain, 360 195 uid_t uid, … … 369 204 const char *smb_name, const char *domain_name, 370 205 char *str, size_t len); 371 char *standard_sub_conn(TALLOC_CTX *ctx, connection_struct *conn, const char *str);372 373 /* The following definitions come from lib/sysacls.c */374 375 int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);376 int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);377 int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);378 void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);379 int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);380 int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);381 int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);382 char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);383 SMB_ACL_T sys_acl_init(int count);384 int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);385 int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);386 int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);387 int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);388 int sys_acl_free_text(char *text);389 int sys_acl_free_acl(SMB_ACL_T acl_d) ;390 int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);391 int sys_acl_valid(SMB_ACL_T acl_d);392 SMB_ACL_T sys_acl_get_file(vfs_handle_struct *handle,393 const char *path_p, SMB_ACL_TYPE_T type);394 SMB_ACL_T sys_acl_get_fd(vfs_handle_struct *handle, files_struct *fsp);395 int sys_acl_set_file(vfs_handle_struct *handle,396 const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);397 int sys_acl_set_fd(vfs_handle_struct *handle, files_struct *fsp,398 SMB_ACL_T acl_d);399 int sys_acl_delete_def_file(vfs_handle_struct *handle,400 const char *path);401 int no_acl_syscall_error(int err);402 206 403 207 /* The following definitions come from lib/sysquotas.c */ … … 423 227 /* The following definitions come from lib/system.c */ 424 228 425 void *sys_memalign( size_t align, size_t size );426 int sys_usleep(long usecs);427 ssize_t sys_read(int fd, void *buf, size_t count);428 ssize_t sys_write(int fd, const void *buf, size_t count);429 ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt);430 ssize_t sys_pread(int fd, void *buf, size_t count, SMB_OFF_T off);431 ssize_t sys_pwrite(int fd, const void *buf, size_t count, SMB_OFF_T off);432 229 ssize_t sys_send(int s, const void *msg, size_t len, int flags); 433 ssize_t sys_sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);434 ssize_t sys_recv(int fd, void *buf, size_t count, int flags);435 230 ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); 436 231 int sys_fcntl_ptr(int fd, int cmd, void *arg); … … 444 239 int sys_lstat(const char *fname,SMB_STRUCT_STAT *sbuf, 445 240 bool fake_dir_create_times); 446 int sys_ftruncate(int fd, SMB_OFF_T offset); 447 int sys_posix_fallocate(int fd, SMB_OFF_T offset, SMB_OFF_T len); 448 int sys_fallocate(int fd, enum vfs_fallocate_mode mode, SMB_OFF_T offset, SMB_OFF_T len); 449 SMB_OFF_T sys_lseek(int fd, SMB_OFF_T offset, int whence); 450 int sys_fseek(FILE *fp, SMB_OFF_T offset, int whence); 451 SMB_OFF_T sys_ftell(FILE *fp); 452 int sys_creat(const char *path, mode_t mode); 453 int sys_open(const char *path, int oflag, mode_t mode); 454 FILE *sys_fopen(const char *path, const char *type); 455 void kernel_flock(int fd, uint32 share_mode, uint32 access_mask); 456 SMB_STRUCT_DIR *sys_opendir(const char *name); 457 SMB_STRUCT_DIR *sys_fdopendir(int fd); 458 SMB_STRUCT_DIRENT *sys_readdir(SMB_STRUCT_DIR *dirp); 459 void sys_seekdir(SMB_STRUCT_DIR *dirp, long offset); 460 long sys_telldir(SMB_STRUCT_DIR *dirp); 461 void sys_rewinddir(SMB_STRUCT_DIR *dirp); 462 int sys_closedir(SMB_STRUCT_DIR *dirp); 241 int sys_posix_fallocate(int fd, off_t offset, off_t len); 242 int sys_fallocate(int fd, uint32_t mode, off_t offset, off_t len); 243 void kernel_flock(int fd, uint32_t share_mode, uint32_t access_mask); 244 DIR *sys_fdopendir(int fd); 463 245 int sys_mknod(const char *path, mode_t mode, SMB_DEV_T dev); 464 246 int sys_waitpid(pid_t pid,int *status,int options); 465 char *sys_getwd( char *s);247 char *sys_getwd(void); 466 248 void set_effective_capability(enum smbd_capability capability); 467 249 void drop_effective_capability(enum smbd_capability capability); … … 474 256 int sys_pclose(int fd); 475 257 ssize_t sys_getxattr (const char *path, const char *name, void *value, size_t size); 476 ssize_t sys_lgetxattr (const char *path, const char *name, void *value, size_t size);477 258 ssize_t sys_fgetxattr (int filedes, const char *name, void *value, size_t size); 478 259 ssize_t sys_listxattr (const char *path, char *list, size_t size); 479 ssize_t sys_llistxattr (const char *path, char *list, size_t size);480 260 ssize_t sys_flistxattr (int filedes, char *list, size_t size); 481 261 int sys_removexattr (const char *path, const char *name); 482 int sys_lremovexattr (const char *path, const char *name);483 262 int sys_fremovexattr (int filedes, const char *name); 484 263 int sys_setxattr (const char *path, const char *name, const void *value, size_t size, int flags); 485 int sys_lsetxattr (const char *path, const char *name, const void *value, size_t size, int flags);486 264 int sys_fsetxattr (int filedes, const char *name, const void *value, size_t size, int flags); 487 uint32 unix_dev_major(SMB_DEV_T dev); 488 uint32 unix_dev_minor(SMB_DEV_T dev); 489 int sys_aio_read(SMB_STRUCT_AIOCB *aiocb); 490 int sys_aio_write(SMB_STRUCT_AIOCB *aiocb); 491 ssize_t sys_aio_return(SMB_STRUCT_AIOCB *aiocb); 492 int sys_aio_cancel(int fd, SMB_STRUCT_AIOCB *aiocb); 493 int sys_aio_error(const SMB_STRUCT_AIOCB *aiocb); 494 int sys_aio_fsync(int op, SMB_STRUCT_AIOCB *aiocb); 495 int sys_aio_suspend(const SMB_STRUCT_AIOCB * const cblist[], int n, const struct timespec *timeout); 496 int sys_aio_read(SMB_STRUCT_AIOCB *aiocb); 497 int sys_aio_write(SMB_STRUCT_AIOCB *aiocb); 498 ssize_t sys_aio_return(SMB_STRUCT_AIOCB *aiocb); 499 int sys_aio_cancel(int fd, SMB_STRUCT_AIOCB *aiocb); 500 int sys_aio_error(const SMB_STRUCT_AIOCB *aiocb); 501 int sys_aio_fsync(int op, SMB_STRUCT_AIOCB *aiocb); 502 int sys_aio_suspend(const SMB_STRUCT_AIOCB * const cblist[], int n, const struct timespec *timeout); 265 uint32_t unix_dev_major(SMB_DEV_T dev); 266 uint32_t unix_dev_minor(SMB_DEV_T dev); 267 #if 0 268 int sys_get_number_of_cores(void); 269 #endif 270 271 struct stat; 272 void init_stat_ex_from_stat (struct stat_ex *dst, 273 const struct stat *src, 274 bool fake_dir_create_times); 275 503 276 /* The following definitions come from lib/system_smbd.c */ 504 277 … … 537 310 time_t srv_make_unix_date2(const void *date_ptr); 538 311 time_t srv_make_unix_date3(const void *date_ptr); 539 struct timespec convert_time_t_to_timespec(time_t t);540 struct timespec convert_timeval_to_timespec(const struct timeval tv);541 struct timeval convert_timespec_to_timeval(const struct timespec ts);542 struct timespec timespec_current(void);543 struct timespec timespec_min(const struct timespec *ts1,544 const struct timespec *ts2);545 int timespec_compare(const struct timespec *ts1, const struct timespec *ts2);546 void round_timespec_to_sec(struct timespec *ts);547 void round_timespec_to_usec(struct timespec *ts);548 312 struct timespec interpret_long_date(const char *p); 549 313 void TimeInit(void); … … 552 316 time_t nt_time_to_unix_abs(const NTTIME *nt); 553 317 time_t uint64s_nt_time_to_unix_abs(const uint64_t *src); 554 void unix_timespec_to_nt_time(NTTIME *nt, struct timespec ts);555 318 void unix_to_nt_time_abs(NTTIME *nt, time_t t); 556 319 const char *time_to_asc(const time_t t); … … 565 328 566 329 /* The following definitions come from lib/util_names.c */ 567 void gfree_netbios_names(void);568 bool set_global_myname(const char *myname);569 const char *global_myname(void);570 bool set_global_myworkgroup(const char *myworkgroup);571 const char *lp_workgroup(void);572 330 const char *get_global_sam_name(void); 331 const char *my_sam_name(void); 573 332 574 333 /* The following definitions come from lib/util.c */ … … 577 336 void set_Protocol(enum protocol_types p); 578 337 bool all_zero(const uint8_t *ptr, size_t size); 579 bool set_global_scope(const char *scope);580 const char *global_scope(void);581 338 void gfree_names(void); 582 339 void gfree_all( void ); … … 588 345 bool socket_exist(const char *fname); 589 346 uint64_t get_file_size_stat(const SMB_STRUCT_STAT *sbuf); 590 SMB_OFF_T get_file_size(char *file_name); 591 char *attrib_string(uint16 mode);592 void show_msg(char *buf); 593 void smb_set_enclen(char *buf,int len,uint16 enc_ctx_num);594 void s mb_setlen(char *buf,int len);347 bool check_same_dev_ino(const SMB_STRUCT_STAT *sbuf1, 348 const SMB_STRUCT_STAT *sbuf2); 349 bool check_same_stat(const SMB_STRUCT_STAT *sbuf1, 350 const SMB_STRUCT_STAT *sbuf2); 351 void show_msg(const char *buf); 595 352 int set_message_bcc(char *buf,int num_bytes); 596 ssize_t message_push_blob(uint8 **outbuf, DATA_BLOB blob);353 ssize_t message_push_blob(uint8_t **outbuf, DATA_BLOB blob); 597 354 char *unix_clean_name(TALLOC_CTX *ctx, const char *s); 598 355 char *clean_name(TALLOC_CTX *ctx, const char *s); 599 ssize_t write_data_at_offset(int fd, const char *buffer, size_t N, SMB_OFF_Tpos);356 ssize_t write_data_at_offset(int fd, const char *buffer, size_t N, off_t pos); 600 357 int set_blocking(int fd, bool set); 358 NTSTATUS init_before_fork(void); 601 359 NTSTATUS reinit_after_fork(struct messaging_context *msg_ctx, 602 struct event_context *ev_ctx, 603 struct server_id id, 604 bool parent_longlived); 360 struct tevent_context *ev_ctx, 361 bool parent_longlived, 362 const char *comment); 363 NTSTATUS smbd_reinit_after_fork(struct messaging_context *msg_ctx, 364 struct tevent_context *ev_ctx, 365 bool parent_longlived, 366 const char *comment); 605 367 void *malloc_(size_t size); 606 void *memalign_array(size_t el_size, size_t align, unsigned int count);607 void *calloc_array(size_t size, size_t nmemb);608 368 void *Realloc(void *p, size_t size, bool free_old_on_error); 609 369 void add_to_large_array(TALLOC_CTX *mem_ctx, size_t element_size, 610 void *element, void *_array, uint32 *num_elements,370 void *element, void *_array, uint32_t *num_elements, 611 371 ssize_t *array_size); 612 372 char *get_myname(TALLOC_CTX *ctx); 613 373 char *get_mydnsdomname(TALLOC_CTX *ctx); 614 int interpret_protocol(const char *str,int def);615 374 char *automount_lookup(TALLOC_CTX *ctx, const char *user_name); 616 375 char *automount_lookup(TALLOC_CTX *ctx, const char *user_name); 617 376 bool process_exists(const struct server_id pid); 377 bool processes_exist(const struct server_id *pids, int num_pids, 378 bool *results); 618 379 const char *uidtoname(uid_t uid); 619 380 char *gidtoname(gid_t gid); 620 381 uid_t nametouid(const char *name); 621 382 gid_t nametogid(const char *name); 622 void smb_panic (const char *constwhy);383 void smb_panic_s3(const char *why); 623 384 void log_stack_trace(void); 624 const char *readdirname( SMB_STRUCT_DIR *p);385 const char *readdirname(DIR *p); 625 386 bool is_in_path(const char *name, name_compare_entry *namelist, bool case_sensitive); 626 387 void set_namearray(name_compare_entry **ppname_array, const char *namelist); 627 388 void free_namearray(name_compare_entry *name_array); 628 bool fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_Tcount, int type);629 bool fcntl_getlock(int fd, SMB_OFF_T *poffset, SMB_OFF_T*pcount, int *ptype, pid_t *ppid);389 bool fcntl_lock(int fd, int op, off_t offset, off_t count, int type); 390 bool fcntl_getlock(int fd, off_t *poffset, off_t *pcount, int *ptype, pid_t *ppid); 630 391 bool is_myname(const char *s); 631 bool is_myworkgroup(const char *s);632 392 void ra_lanman_string( const char *native_lanman ); 633 393 const char *get_remote_arch_str(void); … … 641 401 void *smb_xmalloc_array(size_t size, unsigned int count); 642 402 char *myhostname(void); 643 char *lock_path(const char *name); 644 char *pid_path(const char *name); 645 char *lib_path(const char *name); 646 char *modules_path(const char *name); 647 char *data_path(const char *name); 648 char *state_path(const char *name); 649 char *cache_path(const char *name); 650 const char *shlib_ext(void); 403 char *myhostname_upper(void); 404 #include "lib/util_path.h" 651 405 bool parent_dirname(TALLOC_CTX *mem_ctx, const char *dir, char **parent, 652 406 const char **name); … … 658 412 bool unix_wild_match(const char *pattern, const char *string); 659 413 bool name_to_fqdn(fstring fqdn, const char *name); 660 void *talloc_append_blob(TALLOC_CTX *mem_ctx, void *buf, DATA_BLOB blob); 661 uint32 map_share_mode_to_deny_mode(uint32 share_access, uint32 private_options); 662 pid_t procid_to_pid(const struct server_id *proc); 663 void set_my_vnn(uint32 vnn); 664 uint32 get_my_vnn(void); 665 void set_my_unique_id(uint64_t unique_id); 666 struct server_id pid_to_procid(pid_t pid); 667 struct server_id procid_self(void); 668 bool procid_equal(const struct server_id *p1, const struct server_id *p2); 669 bool cluster_id_equal(const struct server_id *id1, 670 const struct server_id *id2); 671 bool procid_is_me(const struct server_id *pid); 414 uint32_t map_share_mode_to_deny_mode(uint32_t share_access, uint32_t private_options); 415 416 #include "lib/util_procid.h" 417 418 #define serverid_equal(p1, p2) server_id_equal(p1,p2) 672 419 struct server_id interpret_pid(const char *pid_string); 673 char *procid_str(TALLOC_CTX *mem_ctx, const struct server_id *pid);674 char *procid_str_static(const struct server_id *pid);675 bool procid_valid(const struct server_id *pid);676 bool procid_is_local(const struct server_id *pid);677 bool trans_oob(uint32_t bufsize, uint32_t offset, uint32_t length);678 420 bool is_offset_safe(const char *buf_base, size_t buf_len, char *ptr, size_t off); 679 421 char *get_safe_ptr(const char *buf_base, size_t buf_len, char *ptr, size_t off); … … 685 427 char **domain, 686 428 char **user); 687 void *_talloc_zero_zeronull(const void *ctx, size_t size, const char *name);688 void *_talloc_memdup_zeronull(const void *t, const void *p, size_t size, const char *name);689 void *_talloc_array_zeronull(const void *ctx, size_t el_size, unsigned count, const char *name);690 void *_talloc_zero_array_zeronull(const void *ctx, size_t el_size, unsigned count, const char *name);691 void *talloc_zeronull(const void *context, size_t size, const char *name);692 429 const char *strip_hostname(const char *s); 693 bool tevent_req_poll_ntstatus(struct tevent_req *req,694 struct tevent_context *ev,695 NTSTATUS *status);696 430 bool any_nt_status_not_ok(NTSTATUS err1, NTSTATUS err2, NTSTATUS *result); 697 431 int timeval_to_msec(struct timeval t); … … 700 434 bool map_open_params_to_ntcreate(const char *smb_base_fname, 701 435 int deny_mode, int open_func, 702 uint32 *paccess_mask,703 uint32 *pshare_mode,704 uint32 *pcreate_disposition,705 uint32 *pcreate_options,436 uint32_t *paccess_mask, 437 uint32_t *pshare_mode, 438 uint32_t *pcreate_disposition, 439 uint32_t *pcreate_options, 706 440 uint32_t *pprivate_flags); 707 708 /* The following definitions come from lib/util_cmdline.c */ 709 710 struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx); 711 const char *get_cmdline_auth_info_username(const struct user_auth_info *auth_info); 712 void set_cmdline_auth_info_username(struct user_auth_info *auth_info, 713 const char *username); 714 const char *get_cmdline_auth_info_domain(const struct user_auth_info *auth_info); 715 void set_cmdline_auth_info_domain(struct user_auth_info *auth_info, 716 const char *domain); 717 void set_cmdline_auth_info_password(struct user_auth_info *auth_info, 718 const char *password); 719 const char *get_cmdline_auth_info_password(const struct user_auth_info *auth_info); 720 bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info, 721 const char *arg); 722 int get_cmdline_auth_info_signing_state(const struct user_auth_info *auth_info); 723 void set_cmdline_auth_info_use_ccache(struct user_auth_info *auth_info, 724 bool b); 725 bool get_cmdline_auth_info_use_ccache(const struct user_auth_info *auth_info); 726 void set_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info, 727 bool b); 728 bool get_cmdline_auth_info_use_kerberos(const struct user_auth_info *auth_info); 729 void set_cmdline_auth_info_fallback_after_kerberos(struct user_auth_info *auth_info, 730 bool b); 731 bool get_cmdline_auth_info_fallback_after_kerberos(const struct user_auth_info *auth_info); 732 void set_cmdline_auth_info_use_krb5_ticket(struct user_auth_info *auth_info); 733 void set_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info); 734 void set_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info); 735 bool get_cmdline_auth_info_got_pass(const struct user_auth_info *auth_info); 736 bool get_cmdline_auth_info_smb_encrypt(const struct user_auth_info *auth_info); 737 bool get_cmdline_auth_info_use_machine_account(const struct user_auth_info *auth_info); 738 struct user_auth_info *get_cmdline_auth_info_copy(TALLOC_CTX *mem_ctx, 739 const struct user_auth_info *info); 740 bool set_cmdline_auth_info_machine_account_creds(struct user_auth_info *auth_info); 741 void set_cmdline_auth_info_getpass(struct user_auth_info *auth_info); 441 struct security_unix_token *copy_unix_token(TALLOC_CTX *ctx, const struct security_unix_token *tok); 442 bool dir_check_ftype(uint32_t mode, uint32_t dirtype); 443 void init_modules(void); 742 444 743 445 /* The following definitions come from lib/util_builtin.c */ 744 446 745 bool lookup_builtin_rid(TALLOC_CTX *mem_ctx, uint32 rid, const char **name);746 bool lookup_builtin_name(const char *name, uint32 *rid);447 bool lookup_builtin_rid(TALLOC_CTX *mem_ctx, uint32_t rid, const char **name); 448 bool lookup_builtin_name(const char *name, uint32_t *rid); 747 449 const char *builtin_domain_name(void); 748 450 bool sid_check_is_builtin(const struct dom_sid *sid); 749 451 bool sid_check_is_in_builtin(const struct dom_sid *sid); 452 bool sid_check_is_wellknown_builtin(const struct dom_sid *sid); 750 453 751 454 /* The following definitions come from lib/util_file.c */ … … 773 476 uid_t sec_initial_uid(void); 774 477 gid_t sec_initial_gid(void); 478 bool root_mode(void); 775 479 bool non_root_mode(void); 776 480 void gain_root_privilege(void); … … 785 489 int set_re_uid(void); 786 490 void become_user_permanently(uid_t uid, gid_t gid); 491 int set_thread_credentials(uid_t uid, 492 gid_t gid, 493 size_t setlen, 494 const gid_t *gidset); 787 495 bool is_setuid_root(void) ; 788 496 … … 793 501 char *sid_string_dbg(const struct dom_sid *sid); 794 502 char *sid_string_tos(const struct dom_sid *sid); 795 bool sid_linearize( char*outbuf, size_t len, const struct dom_sid *sid);503 bool sid_linearize(uint8_t *outbuf, size_t len, const struct dom_sid *sid); 796 504 bool non_mappable_sid(struct dom_sid *sid); 797 char *sid_binstring_hex (const struct dom_sid *sid);505 char *sid_binstring_hex_talloc(TALLOC_CTX *mem_ctx, const struct dom_sid *sid); 798 506 struct netr_SamInfo3; 799 507 NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx, … … 824 532 char *print_canonical_sockaddr(TALLOC_CTX *ctx, 825 533 const struct sockaddr_storage *pss); 826 const char *client_name(int fd);827 534 int get_socket_port(int fd); 828 535 const char *client_addr(int fd, char *addr, size_t addrlen); 829 536 const char *client_socket_addr(int fd, char *addr, size_t addr_len); 830 537 int client_socket_port(int fd); 831 void set_smb_read_error(enum smb_read_errors *pre,832 enum smb_read_errors newerr);833 void cond_set_smb_read_error(enum smb_read_errors *pre,834 enum smb_read_errors newerr);835 538 bool is_a_socket(int fd); 836 539 void set_socket_options(int fd, const char *options); … … 843 546 unsigned int time_out, 844 547 size_t *size_ret); 845 NTSTATUS read_data(int fd, char *buffer, size_t N); 846 ssize_t write_data(int fd, const char *buffer, size_t N); 847 ssize_t write_data_iov(int fd, const struct iovec *orig_iov, int iovcnt); 548 NTSTATUS read_data_ntstatus(int fd, char *buffer, size_t N); 549 848 550 bool send_keepalive(int client); 849 551 NTSTATUS read_smb_length_return_keepalive(int fd, char *inbuf, … … 864 566 int timeout, int *pfd); 865 567 struct tevent_req *open_socket_out_send(TALLOC_CTX *mem_ctx, 866 struct event_context *ev,568 struct tevent_context *ev, 867 569 const struct sockaddr_storage *pss, 868 570 uint16_t port, … … 870 572 NTSTATUS open_socket_out_recv(struct tevent_req *req, int *pfd); 871 573 struct tevent_req *open_socket_out_defer_send(TALLOC_CTX *mem_ctx, 872 struct event_context *ev,574 struct tevent_context *ev, 873 575 struct timeval wait_time, 874 576 const struct sockaddr_storage *pss, … … 877 579 NTSTATUS open_socket_out_defer_recv(struct tevent_req *req, int *pfd); 878 580 int open_udp_socket(const char *host, int port); 879 const char *get_peer_name(int fd, bool force_lookup);880 581 const char *get_peer_addr(int fd, char *addr, size_t addr_len); 582 583 struct tsocket_address; 584 585 int get_remote_hostname(const struct tsocket_address *remote_address, 586 char **name, 587 TALLOC_CTX *mem_ctx); 588 881 589 int create_pipe_sock(const char *socket_dir, 882 590 const char *socket_name, 883 591 mode_t dir_perms); 592 int create_tcpip_socket(const struct sockaddr_storage *ifss, uint16_t *port); 884 593 const char *get_mydnsfullname(void); 885 594 bool is_myname_or_ipaddr(const char *s); … … 893 602 int poll_one_fd(int fd, int events, int timeout, int *revents); 894 603 int poll_intr_one_fd(int fd, int events, int timeout, int *revents); 895 struct tstream_context;896 struct tevent_req *tstream_read_packet_send(TALLOC_CTX *mem_ctx,897 struct tevent_context *ev,898 struct tstream_context *stream,899 size_t initial,900 ssize_t (*more)(uint8_t *buf,901 size_t buflen,902 void *private_data),903 void *private_data);904 ssize_t tstream_read_packet_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,905 uint8_t **pbuf, int *perrno);906 604 907 605 /* The following definitions come from lib/util_str.c */ 908 606 909 607 bool next_token(const char **ptr, char *buff, const char *sep, size_t bufsize); 910 int StrCaseCmp(const char *s, const char *t);911 int StrnCaseCmp(const char *s, const char *t, size_t len);912 608 bool strnequal(const char *s1,const char *s2,size_t n); 913 609 bool strcsequal(const char *s1,const char *s2); 914 void strnorm(char *s, int case_default); 915 bool strisnormal(const char *s, int case_default); 610 bool strnorm(char *s, int case_default); 916 611 char *push_skip_string(char *buf); 917 612 char *skip_string(const char *base, size_t len, char *buf); 918 613 size_t str_charnum(const char *s); 919 size_t str_ascii_charnum(const char *s);920 614 bool trim_char(char *s,char cfront,char cback); 921 615 bool strhasupper(const char *s); 922 616 bool strhaslower(const char *s); 923 char *safe_strcpy_fn(const char *fn, 924 int line, 925 char *dest, 926 const char *src, 927 size_t maxlength); 928 char *safe_strcat_fn(const char *fn, 929 int line, 930 char *dest, 931 const char *src, 932 size_t maxlength); 933 char *alpha_strcpy_fn(const char *fn, 934 int line, 935 char *dest, 936 const char *src, 937 const char *other_safe_chars, 938 size_t maxlength); 939 char *StrnCpy_fn(const char *fn, int line,char *dest,const char *src,size_t n); 617 char *StrnCpy(char *dest,const char *src,size_t n); 940 618 bool in_list(const char *s, const char *list, bool casesensitive); 941 void string_free(char **s);942 bool string_set(char **dest,const char *src);943 void string_sub2(char *s,const char *pattern, const char *insert, size_t len,944 bool remove_unsafe_characters, bool replace_once,945 bool allow_trailing_dollar);946 void string_sub_once(char *s, const char *pattern,947 const char *insert, size_t len);948 void string_sub(char *s,const char *pattern, const char *insert, size_t len);949 619 void fstring_sub(char *s,const char *pattern,const char *insert); 950 620 char *realloc_string_sub2(char *string, … … 977 647 char *strnrchr_m(const char *s, char c, unsigned int n); 978 648 char *strstr_m(const char *src, const char *findstr); 979 voidstrlower_m(char *s);980 voidstrupper_m(char *s);649 bool strlower_m(char *s); 650 bool strupper_m(char *s); 981 651 size_t strlen_m(const char *s); 982 652 size_t strlen_m_term(const char *s); … … 992 662 int ipstr_list_parse(const char *ipstr_list, struct ip_service **ip_list); 993 663 void ipstr_list_free(char* ipstr_list); 994 DATA_BLOB base64_decode_data_blob(const char *s);995 void base64_decode_inplace(char *s);996 char *base64_encode_data_blob(TALLOC_CTX *mem_ctx, DATA_BLOB data);997 664 uint64_t STR_TO_SMB_BIG_UINT(const char *nptr, const char **entptr); 998 SMB_OFF_T conv_str_size(const char * str); 999 void string_append(char **left, const char *right); 1000 bool add_string_to_array(TALLOC_CTX *mem_ctx, 1001 const char *str, const char ***strings, 1002 int *num); 665 uint64_t conv_str_size(const char * str); 1003 666 void sprintf_append(TALLOC_CTX *mem_ctx, char **string, ssize_t *len, 1004 667 size_t *bufsize, const char *fmt, ...); … … 1006 669 char *talloc_asprintf_strupper_m(TALLOC_CTX *t, const char *fmt, ...); 1007 670 char *talloc_asprintf_strlower_m(TALLOC_CTX *t, const char *fmt, ...); 1008 char *sstring_sub(const char *src, char front, char back);1009 671 bool validate_net_name( const char *name, 1010 672 const char *invalid_chars, 1011 673 int max_len); 1012 674 char *escape_shell_string(const char *src); 1013 char **str_list_make_v3(TALLOC_CTX *mem_ctx, const char *string, const char *sep); 1014 char *sanitize_username(TALLOC_CTX *mem_ctx, const char *username); 1015 1016 /* The following definitions come from lib/util_unistr.c */ 1017 1018 void gfree_case_tables(void); 1019 void load_case_tables(void); 1020 size_t dos_PutUniCode(char *dst,const char *src, size_t len, bool null_terminate); 1021 int rpcstr_push(void *dest, const char *src, size_t dest_len, int flags); 1022 int rpcstr_push_talloc(TALLOC_CTX *ctx, smb_ucs2_t **dest, const char *src); 1023 bool isvalid83_w(smb_ucs2_t c); 1024 size_t strlen_w(const smb_ucs2_t *src); 1025 size_t strnlen_w(const smb_ucs2_t *src, size_t max); 1026 smb_ucs2_t *strchr_w(const smb_ucs2_t *s, smb_ucs2_t c); 1027 smb_ucs2_t *strchr_wa(const smb_ucs2_t *s, char c); 1028 smb_ucs2_t *strrchr_w(const smb_ucs2_t *s, smb_ucs2_t c); 1029 smb_ucs2_t *strnrchr_w(const smb_ucs2_t *s, smb_ucs2_t c, unsigned int n); 1030 smb_ucs2_t *strstr_w(const smb_ucs2_t *s, const smb_ucs2_t *ins); 1031 bool strlower_w(smb_ucs2_t *s); 1032 bool strupper_w(smb_ucs2_t *s); 1033 void strnorm_w(smb_ucs2_t *s, int case_default); 1034 int strcmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b); 1035 int strncmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b, size_t len); 1036 int strcasecmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b); 1037 int strncasecmp_w(const smb_ucs2_t *a, const smb_ucs2_t *b, size_t len); 1038 bool strequal_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2); 1039 bool strnequal_w(const smb_ucs2_t *s1,const smb_ucs2_t *s2,size_t n); 1040 smb_ucs2_t *strdup_w(const smb_ucs2_t *src); 1041 smb_ucs2_t *strndup_w(const smb_ucs2_t *src, size_t len); 1042 smb_ucs2_t *strncpy_w(smb_ucs2_t *dest, const smb_ucs2_t *src, const size_t max); 1043 smb_ucs2_t *strncat_w(smb_ucs2_t *dest, const smb_ucs2_t *src, const size_t max); 1044 smb_ucs2_t *strcat_w(smb_ucs2_t *dest, const smb_ucs2_t *src); 1045 void string_replace_w(smb_ucs2_t *s, smb_ucs2_t oldc, smb_ucs2_t newc); 1046 bool trim_string_w(smb_ucs2_t *s, const smb_ucs2_t *front, 1047 const smb_ucs2_t *back); 1048 int strcmp_wa(const smb_ucs2_t *a, const char *b); 1049 int strncmp_wa(const smb_ucs2_t *a, const char *b, size_t len); 1050 smb_ucs2_t *strpbrk_wa(const smb_ucs2_t *s, const char *p); 1051 smb_ucs2_t *strstr_wa(const smb_ucs2_t *s, const char *ins); 1052 smb_ucs2_t toupper_w(smb_ucs2_t v); 1053 bool isupper_w(smb_ucs2_t v); 1054 smb_ucs2_t tolower_w(smb_ucs2_t v); 1055 bool islower_w(smb_ucs2_t v); 675 ssize_t full_path_tos(const char *dir, const char *name, 676 char *tmpbuf, size_t tmpbuf_len, 677 char **pdst, char **to_free); 1056 678 1057 679 /* The following definitions come from lib/version.c */ … … 1068 690 void wins_srv_tags_free(char **list); 1069 691 struct in_addr wins_srv_ip_tag(const char *tag, struct in_addr src_ip); 692 bool wins_server_tag_ips(const char *tag, TALLOC_CTX *mem_ctx, 693 struct in_addr **pservers, int *pnum_servers); 1070 694 unsigned wins_srv_count_tag(const char *tag); 1071 1072 /* The following definitions come from libsmb/clispnego.c */1073 1074 DATA_BLOB spnego_gen_negTokenInit(TALLOC_CTX *ctx,1075 const char *OIDs[],1076 DATA_BLOB *psecblob,1077 const char *principal);1078 695 1079 696 #ifndef ASN1_MAX_OIDS … … 1085 702 char **principal, 1086 703 DATA_BLOB *secblob); 1087 DATA_BLOB spnego_gen_krb5_wrap(TALLOC_CTX *ctx, const DATA_BLOB ticket, const uint8 tok_id[2]); 1088 bool spnego_parse_krb5_wrap(TALLOC_CTX *ctx, DATA_BLOB blob, DATA_BLOB *ticket, uint8 tok_id[2]); 1089 int spnego_gen_krb5_negTokenInit(TALLOC_CTX *ctx, 1090 const char *principal, int time_offset, 1091 DATA_BLOB *targ, 1092 DATA_BLOB *session_key_krb5, uint32 extra_ap_opts, 1093 time_t *expire_time); 1094 bool spnego_parse_challenge(TALLOC_CTX *ctx, const DATA_BLOB blob, 1095 DATA_BLOB *chal1, DATA_BLOB *chal2); 1096 DATA_BLOB spnego_gen_auth(TALLOC_CTX *ctx, DATA_BLOB blob); 1097 bool spnego_parse_auth(TALLOC_CTX *ctx, DATA_BLOB blob, DATA_BLOB *auth); 1098 DATA_BLOB spnego_gen_auth_response(TALLOC_CTX *ctx, DATA_BLOB *reply, NTSTATUS nt_status, 1099 const char *mechOID); 1100 bool spnego_parse_auth_response(TALLOC_CTX *ctx, 1101 DATA_BLOB blob, NTSTATUS nt_status, 1102 const char *mechOID, 1103 DATA_BLOB *auth); 1104 1105 bool spnego_parse_auth_and_mic(TALLOC_CTX *ctx, DATA_BLOB blob, 1106 DATA_BLOB *auth, DATA_BLOB *signature); 1107 DATA_BLOB spnego_gen_auth_response_and_mic(TALLOC_CTX *ctx, 1108 NTSTATUS nt_status, 1109 const char *mechOID, 1110 DATA_BLOB *reply, 1111 DATA_BLOB *mechlistMIC); 1112 bool spnego_mech_list_blob(TALLOC_CTX *mem_ctx, 1113 char **oid_list, DATA_BLOB *data); 704 DATA_BLOB spnego_gen_krb5_wrap(TALLOC_CTX *ctx, const DATA_BLOB ticket, const uint8_t tok_id[2]); 1114 705 1115 706 /* The following definitions come from libsmb/conncache.c */ … … 1123 714 struct netr_DsRGetDCNameInfo; 1124 715 1125 void debug_dsdcinfo_flags(int lvl, uint32_t flags);1126 716 NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx, 1127 717 struct messaging_context *msg_ctx, … … 1134 724 /* The following definitions come from libsmb/errormap.c */ 1135 725 1136 NTSTATUS dos_to_ntstatus(uint8 eclass, uint32 ecode); 1137 void ntstatus_to_dos(NTSTATUS ntstatus, uint8 *eclass, uint32 *ecode); 1138 NTSTATUS werror_to_ntstatus(WERROR error); 1139 WERROR ntstatus_to_werror(NTSTATUS error); 1140 NTSTATUS map_nt_error_from_gss(uint32 gss_maj, uint32 minor); 726 NTSTATUS dos_to_ntstatus(uint8_t eclass, uint32_t ecode); 1141 727 1142 728 /* The following definitions come from libsmb/namecache.c */ … … 1166 752 bool saf_join_store( const char *domain, const char *servername ); 1167 753 bool saf_delete( const char *domain ); 1168 char *saf_fetch( const char *domain );754 char *saf_fetch(TALLOC_CTX *mem_ctx, const char *domain ); 1169 755 struct tevent_req *node_status_query_send(TALLOC_CTX *mem_ctx, 1170 756 struct tevent_context *ev, … … 1185 771 const struct sockaddr_storage *to_ss, 1186 772 fstring name); 1187 int ip_service_compare(struct ip_service *ss1, struct ip_service *ss2);773 int remove_duplicate_addrs2(struct ip_service *iplist, int count ); 1188 774 struct tevent_req *name_query_send(TALLOC_CTX *mem_ctx, 1189 775 struct tevent_context *ev, … … 1200 786 struct sockaddr_storage **addrs, 1201 787 int *num_addrs, uint8_t *flags); 788 struct tevent_req *name_resolve_bcast_send(TALLOC_CTX *mem_ctx, 789 struct tevent_context *ev, 790 const char *name, 791 int name_type); 792 NTSTATUS name_resolve_bcast_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, 793 struct sockaddr_storage **addrs, 794 int *num_addrs); 1202 795 NTSTATUS name_resolve_bcast(const char *name, 1203 796 int name_type, … … 1205 798 struct sockaddr_storage **return_iplist, 1206 799 int *return_count); 800 struct tevent_req *resolve_wins_send(TALLOC_CTX *mem_ctx, 801 struct tevent_context *ev, 802 const char *name, 803 int name_type); 804 NTSTATUS resolve_wins_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, 805 struct sockaddr_storage **addrs, 806 int *num_addrs, uint8_t *flags); 1207 807 NTSTATUS resolve_wins(const char *name, 1208 808 int name_type, 1209 struct ip_service **return_iplist, 809 TALLOC_CTX *mem_ctx, 810 struct sockaddr_storage **return_iplist, 1210 811 int *return_count); 1211 812 NTSTATUS internal_resolve_name(const char *name, … … 1214 815 struct ip_service **return_iplist, 1215 816 int *return_count, 1216 const char * resolve_order);817 const char **resolve_order); 1217 818 bool resolve_name(const char *name, 1218 819 struct sockaddr_storage *return_ss, … … 1243 844 struct sockaddr_storage *ss_out); 1244 845 1245 /* The following definitions come from libsmb/nterr.c */1246 1247 const char *nt_errstr(NTSTATUS nt_code);1248 const char *get_friendly_nt_error_msg(NTSTATUS nt_code);1249 const char *get_nt_error_c_code(NTSTATUS nt_code);1250 NTSTATUS nt_status_string_to_code(const char *nt_status_str);1251 NTSTATUS nt_status_squash(NTSTATUS nt_status);1252 1253 /* The following definitions come from libsmb/ntlmssp.c */1254 struct ntlmssp_state;1255 NTSTATUS ntlmssp_set_username(struct ntlmssp_state *ntlmssp_state, const char *user) ;1256 NTSTATUS ntlmssp_set_hashes(struct ntlmssp_state *ntlmssp_state,1257 const uint8_t lm_hash[16],1258 const uint8_t nt_hash[16]) ;1259 NTSTATUS ntlmssp_set_password(struct ntlmssp_state *ntlmssp_state, const char *password) ;1260 NTSTATUS ntlmssp_set_domain(struct ntlmssp_state *ntlmssp_state, const char *domain) ;1261 void ntlmssp_want_feature_list(struct ntlmssp_state *ntlmssp_state, char *feature_list);1262 void ntlmssp_want_feature(struct ntlmssp_state *ntlmssp_state, uint32_t feature);1263 bool ntlmssp_have_feature(struct ntlmssp_state *ntlmssp_state, uint32_t feature);1264 NTSTATUS ntlmssp_update(struct ntlmssp_state *ntlmssp_state,1265 const DATA_BLOB in, DATA_BLOB *out) ;1266 NTSTATUS ntlmssp_server_start(TALLOC_CTX *mem_ctx,1267 bool is_standalone,1268 const char *netbios_name,1269 const char *netbios_domain,1270 const char *dns_name,1271 const char *dns_domain,1272 struct ntlmssp_state **ntlmssp_state);1273 NTSTATUS ntlmssp_client_start(TALLOC_CTX *mem_ctx,1274 const char *netbios_name,1275 const char *netbios_domain,1276 bool use_ntlmv2,1277 struct ntlmssp_state **_ntlmssp_state);1278 1279 846 /* The following definitions come from libsmb/passchange.c */ 1280 847 … … 1294 861 /* The following definitions come from libsmb/smberr.c */ 1295 862 1296 const char *smb_dos_err_name(uint8 e_class, uint16num);863 const char *smb_dos_err_name(uint8_t e_class, uint16_t num); 1297 864 const char *get_dos_error_msg(WERROR result); 1298 const char *smb_dos_err_class(uint8 e_class); 1299 char *smb_dos_errstr(char *inbuf); 865 const char *smb_dos_err_class(uint8_t e_class); 1300 866 WERROR map_werror_from_unix(int error); 1301 867 … … 1304 870 bool trustdom_cache_enable(void); 1305 871 bool trustdom_cache_shutdown(void); 1306 bool trustdom_cache_store(c har* name, char* alt_name, const struct dom_sid *sid,1307 872 bool trustdom_cache_store(const char *name, const char *alt_name, 873 const struct dom_sid *sid, time_t timeout); 1308 874 bool trustdom_cache_fetch(const char* name, struct dom_sid* sid); 1309 uint32 trustdom_cache_fetch_timestamp( void );1310 bool trustdom_cache_store_timestamp( uint32 t, time_t timeout );875 uint32_t trustdom_cache_fetch_timestamp( void ); 876 bool trustdom_cache_store_timestamp( uint32_t t, time_t timeout ); 1311 877 void trustdom_cache_flush(void); 1312 878 void update_trustdom_cache( void ); … … 1314 880 /* The following definitions come from libsmb/trusts_util.c */ 1315 881 1316 NTSTATUS trust_pw_change_and_store_it(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, 1317 const char *domain, 1318 const char *account_name, 1319 unsigned char orig_trust_passwd_hash[16], 1320 enum netr_SchannelType sec_channel_type); 1321 NTSTATUS trust_pw_find_change_and_store_it(struct rpc_pipe_client *cli, 1322 TALLOC_CTX *mem_ctx, 1323 const char *domain) ; 1324 bool enumerate_domain_trusts( TALLOC_CTX *mem_ctx, const char *domain, 1325 char ***domain_names, uint32 *num_domains, 1326 struct dom_sid **sids ); 1327 NTSTATUS change_trust_account_password( const char *domain, const char *remote_machine); 882 struct netlogon_creds_cli_context; 883 struct messaging_context; 884 struct dcerpc_binding_handle; 885 NTSTATUS trust_pw_change(struct netlogon_creds_cli_context *context, 886 struct messaging_context *msg_ctx, 887 struct dcerpc_binding_handle *b, 888 const char *domain, 889 bool force); 1328 890 1329 891 /* The following definitions come from param/loadparm.c */ 1330 892 1331 char *lp_smb_ports(void); 1332 const char *lp_dos_charset(void); 1333 const char *lp_unix_charset(void); 1334 const char *lp_display_charset(void); 1335 char *lp_logfile(void); 1336 char *lp_configfile(void); 1337 char *lp_smb_passwd_file(void); 1338 char *lp_private_dir(void); 1339 char *lp_serverstring(void); 1340 int lp_printcap_cache_time(void); 1341 char *lp_addport_cmd(void); 1342 char *lp_enumports_cmd(void); 1343 char *lp_addprinter_cmd(void); 1344 char *lp_deleteprinter_cmd(void); 1345 char *lp_os2_driver_map(void); 1346 char *lp_lockdir(void); 1347 char *lp_statedir(void); 1348 char *lp_cachedir(void); 1349 char *lp_piddir(void); 1350 char *lp_mangling_method(void); 1351 int lp_mangle_prefix(void); 1352 char *lp_utmpdir(void); 1353 char *lp_wtmpdir(void); 1354 bool lp_utmp(void); 1355 char *lp_rootdir(void); 1356 char *lp_defaultservice(void); 1357 char *lp_msg_command(void); 1358 char *lp_get_quota_command(void); 1359 char *lp_set_quota_command(void); 1360 char *lp_auto_services(void); 1361 char *lp_passwd_program(void); 1362 char *lp_passwd_chat(void); 1363 char *lp_passwordserver(void); 1364 char *lp_name_resolve_order(void); 1365 char *lp_realm(void); 1366 const char *lp_afs_username_map(void); 1367 int lp_afs_token_lifetime(void); 1368 char *lp_log_nt_token_command(void); 1369 char *lp_username_map(void); 1370 const char *lp_logon_script(void); 1371 const char *lp_logon_path(void); 1372 const char *lp_logon_drive(void); 1373 const char *lp_logon_home(void); 1374 char *lp_remote_announce(void); 1375 char *lp_remote_browse_sync(void); 1376 bool lp_nmbd_bind_explicit_broadcast(void); 1377 const char **lp_wins_server_list(void); 1378 const char **lp_interfaces(void); 1379 const char *lp_socket_address(void); 1380 char *lp_nis_home_map_name(void); 1381 const char **lp_netbios_aliases(void); 1382 const char *lp_passdb_backend(void); 1383 const char **lp_preload_modules(void); 1384 char *lp_panic_action(void); 1385 char *lp_adduser_script(void); 1386 char *lp_renameuser_script(void); 1387 char *lp_deluser_script(void); 1388 const char *lp_guestaccount(void); 1389 char *lp_addgroup_script(void); 1390 char *lp_delgroup_script(void); 1391 char *lp_addusertogroup_script(void); 1392 char *lp_deluserfromgroup_script(void); 1393 char *lp_setprimarygroup_script(void); 1394 char *lp_addmachine_script(void); 1395 char *lp_shutdown_script(void); 1396 char *lp_abort_shutdown_script(void); 1397 char *lp_username_map_script(void); 1398 int lp_username_map_cache_time(void); 1399 char *lp_check_password_script(void); 1400 char *lp_wins_hook(void); 1401 const char *lp_template_homedir(void); 1402 const char *lp_template_shell(void); 1403 const char *lp_winbind_separator(void); 1404 int lp_acl_compatibility(void); 1405 bool lp_winbind_enum_users(void); 1406 bool lp_winbind_enum_groups(void); 1407 bool lp_winbind_use_default_domain(void); 1408 bool lp_winbind_trusted_domains_only(void); 1409 bool lp_winbind_nested_groups(void); 1410 int lp_winbind_expand_groups(void); 1411 bool lp_winbind_refresh_tickets(void); 1412 bool lp_winbind_offline_logon(void); 1413 bool lp_winbind_normalize_names(void); 1414 bool lp_winbind_rpc_only(void); 1415 bool lp_create_krb5_conf(void); 893 #include "source3/param/param_proto.h" 894 895 char *lp_servicename(TALLOC_CTX *ctx, int); 896 const char *lp_const_servicename(int); 897 bool lp_autoloaded(int); 898 const char *lp_dnsdomain(void); 1416 899 int lp_winbind_max_domain_connections(void); 1417 const char *lp_idmap_backend(void); 1418 int lp_idmap_cache_time(void); 1419 int lp_idmap_negative_cache_time(void); 1420 int lp_keepalive(void); 1421 bool lp_passdb_expand_explicit(void); 1422 char *lp_ldap_suffix(void); 1423 char *lp_ldap_admin_dn(void); 1424 int lp_ldap_ssl(void); 1425 bool lp_ldap_ssl_ads(void); 1426 int lp_ldap_deref(void); 1427 int lp_ldap_follow_referral(void); 1428 int lp_ldap_passwd_sync(void); 1429 bool lp_ldap_delete_dn(void); 1430 int lp_ldap_replication_sleep(void); 1431 int lp_ldap_timeout(void); 1432 int lp_ldap_connection_timeout(void); 1433 int lp_ldap_page_size(void); 1434 int lp_ldap_debug_level(void); 1435 int lp_ldap_debug_threshold(void); 1436 char *lp_add_share_cmd(void); 1437 char *lp_change_share_cmd(void); 1438 char *lp_delete_share_cmd(void); 1439 char *lp_usershare_path(void); 1440 const char **lp_usershare_prefix_allow_list(void); 1441 const char **lp_usershare_prefix_deny_list(void); 1442 const char **lp_eventlog_list(void); 1443 bool lp_registry_shares(void); 1444 bool lp_usershare_allow_guests(void); 1445 bool lp_usershare_owner_only(void); 1446 bool lp_disable_netbios(void); 1447 bool lp_reset_on_zero_vc(void); 1448 bool lp_log_writeable_files_on_exit(void); 1449 bool lp_ms_add_printer_wizard(void); 1450 bool lp_dns_proxy(void); 1451 bool lp_wins_support(void); 1452 bool lp_we_are_a_wins_server(void); 1453 bool lp_wins_proxy(void); 1454 bool lp_local_master(void); 1455 bool lp_domain_logons(void); 1456 const char **lp_init_logon_delayed_hosts(void); 1457 int lp_init_logon_delay(void); 1458 bool lp_load_printers(void); 1459 bool lp_readraw(void); 1460 bool _lp_readraw(void); 1461 bool lp_large_readwrite(void); 1462 bool lp_writeraw(void); 1463 bool _lp_writeraw(void); 1464 bool lp_null_passwords(void); 1465 bool lp_obey_pam_restrictions(void); 1466 bool lp_encrypted_passwords(void); 1467 int lp_client_schannel(void); 1468 int lp_server_schannel(void); 1469 bool lp_syslog_only(void); 1470 bool lp_timestamp_logs(void); 1471 bool lp_debug_prefix_timestamp(void); 1472 bool lp_debug_hires_timestamp(void); 1473 bool lp_debug_pid(void); 1474 bool lp_debug_uid(void); 1475 bool lp_debug_class(void); 1476 bool lp_enable_core_files(void); 1477 bool lp_browse_list(void); 1478 bool lp_nis_home_map(void); 1479 bool lp_bind_interfaces_only(void); 1480 bool lp_pam_password_change(void); 1481 bool lp_unix_password_sync(void); 1482 bool lp_passwd_chat_debug(void); 1483 int lp_passwd_chat_timeout(void); 1484 bool lp_nt_pipe_support(void); 1485 bool lp_nt_status_support(void); 1486 bool lp_stat_cache(void); 1487 int lp_max_stat_cache_size(void); 1488 bool lp_allow_trusted_domains(void); 1489 bool lp_map_untrusted_to_domain(void); 1490 int lp_restrict_anonymous(void); 1491 bool lp_lanman_auth(void); 1492 bool lp_ntlm_auth(void); 1493 bool lp_raw_ntlmv2_auth(void); 1494 bool lp_client_plaintext_auth(void); 1495 bool lp_client_lanman_auth(void); 1496 bool lp_client_ntlmv2_auth(void); 1497 bool lp_host_msdfs(void); 1498 bool lp_kernel_oplocks(void); 1499 bool lp_enhanced_browsing(void); 1500 bool lp_use_mmap(void); 1501 bool lp_unix_extensions(void); 1502 bool lp_use_spnego(void); 1503 bool lp_client_use_spnego(void); 1504 bool lp_client_use_spnego_principal(void); 1505 bool lp_send_spnego_principal(void); 1506 bool lp_hostname_lookups(void); 1507 bool lp_change_notify(const struct share_params *p ); 1508 bool lp_kernel_change_notify(const struct share_params *p ); 1509 char * lp_dedicated_keytab_file(void); 1510 int lp_kerberos_method(void); 1511 bool lp_defer_sharing_violations(void); 1512 bool lp_enable_privileges(void); 1513 bool lp_enable_asu_support(void); 1514 int lp_os_level(void); 1515 int lp_max_ttl(void); 1516 int lp_max_wins_ttl(void); 1517 int lp_min_wins_ttl(void); 1518 int lp_max_log_size(void); 1519 int lp_max_open_files(void); 1520 int lp_open_files_db_hash_size(void); 1521 int lp_maxxmit(void); 1522 int lp_maxmux(void); 1523 int lp_passwordlevel(void); 1524 int lp_usernamelevel(void); 1525 int lp_deadtime(void); 1526 bool lp_getwd_cache(void); 1527 int lp_maxprotocol(void); 1528 int lp_minprotocol(void); 900 bool lp_idmap_range(const char *domain_name, uint32_t *low, uint32_t *high); 901 bool lp_idmap_default_range(uint32_t *low, uint32_t *high); 902 const char *lp_idmap_backend(const char *domain_name); 903 const char *lp_idmap_default_backend (void); 1529 904 int lp_security(void); 1530 const char **lp_auth_methods(void); 1531 bool lp_paranoid_server_security(void); 1532 int lp_maxdisksize(void); 1533 int lp_lpqcachetime(void); 1534 int lp_max_smbd_processes(void); 1535 bool _lp_disable_spoolss(void); 1536 int lp_syslog(void); 1537 int lp_lm_announce(void); 1538 int lp_lm_interval(void); 1539 int lp_machine_password_timeout(void); 1540 int lp_map_to_guest(void); 1541 int lp_oplock_break_wait_time(void); 1542 int lp_lock_spin_time(void); 1543 int lp_usershare_max_shares(void); 1544 const char *lp_socket_options(void); 1545 int lp_config_backend(void); 1546 int lp_smb2_max_read(void); 1547 int lp_smb2_max_write(void); 1548 int lp_smb2_max_trans(void); 905 int lp_client_max_protocol(void); 906 int lp_client_ipc_min_protocol(void); 907 int lp_client_ipc_max_protocol(void); 908 int lp_client_ipc_signing(void); 1549 909 int lp_smb2_max_credits(void); 1550 char *lp_preexec(int );1551 char *lp_postexec(int );1552 char *lp_rootpreexec(int );1553 char *lp_rootpostexec(int );1554 char *lp_servicename(int );1555 const char *lp_const_servicename(int );1556 char *lp_pathname(int );1557 char *lp_dontdescend(int );1558 char *lp_username(int );1559 const char **lp_invalid_users(int );1560 const char **lp_valid_users(int );1561 const char **lp_admin_users(int );1562 const char **lp_svcctl_list(void);1563 char *lp_cups_options(int );1564 char *lp_cups_server(void);1565 910 int lp_cups_encrypt(void); 1566 char *lp_iprint_server(void);1567 int lp_cups_connection_timeout(void);1568 const char *lp_ctdbd_socket(void);1569 const char **lp_cluster_addresses(void);1570 bool lp_clustering(void);1571 int lp_ctdb_timeout(void);1572 int lp_ctdb_locktime_warn_threshold(void);1573 char *lp_printcommand(int );1574 char *lp_lpqcommand(int );1575 char *lp_lprmcommand(int );1576 char *lp_lppausecommand(int );1577 char *lp_lpresumecommand(int );1578 char *lp_queuepausecommand(int );1579 char *lp_queueresumecommand(int );1580 const char *lp_printjob_username(int );1581 const char **lp_hostsallow(int );1582 const char **lp_hostsdeny(int );1583 char *lp_magicscript(int );1584 char *lp_magicoutput(int );1585 char *lp_comment(int );1586 char *lp_force_user(int );1587 char *lp_force_group(int );1588 const char **lp_readlist(int );1589 const char **lp_writelist(int );1590 const char **lp_printer_admin(int );1591 char *lp_fstype(int );1592 const char **lp_vfs_objects(int );1593 char *lp_msdfs_proxy(int );1594 char *lp_veto_files(int );1595 char *lp_hide_files(int );1596 char *lp_veto_oplocks(int );1597 bool lp_msdfs_root(int );1598 char *lp_aio_write_behind(int );1599 char *lp_dfree_command(int );1600 bool lp_autoloaded(int );1601 bool lp_preexec_close(int );1602 bool lp_rootpreexec_close(int );1603 int lp_casesensitive(int );1604 bool lp_preservecase(int );1605 bool lp_shortpreservecase(int );1606 bool lp_hide_dot_files(int );1607 bool lp_hide_special_files(int );1608 bool lp_hideunreadable(int );1609 bool lp_hideunwriteable_files(int );1610 bool lp_browseable(int );1611 bool lp_access_based_share_enum(int );1612 bool lp_readonly(int );1613 bool lp_no_set_dir(int );1614 bool lp_guest_ok(int );1615 bool lp_guest_only(int );1616 bool lp_administrative_share(int );1617 bool lp_print_ok(int );1618 bool lp_print_notify_backchannel(int );1619 bool lp_map_hidden(int );1620 bool lp_map_archive(int );1621 bool lp_store_dos_attributes(int );1622 bool lp_dmapi_support(int );1623 bool lp_locking(const struct share_params *p );1624 int lp_strict_locking(const struct share_params *p );1625 bool lp_posix_locking(const struct share_params *p );1626 bool lp_share_modes(int );1627 bool lp_oplocks(int );1628 bool lp_level2_oplocks(int );1629 bool lp_onlyuser(int );1630 bool lp_manglednames(const struct share_params *p );1631 bool lp_allow_insecure_widelinks(void);1632 911 bool lp_widelinks(int ); 1633 bool lp_symlinks(int ); 1634 bool lp_syncalways(int ); 1635 bool lp_strict_allocate(int ); 1636 bool lp_strict_sync(int ); 1637 bool lp_map_system(int ); 1638 bool lp_delete_readonly(int ); 1639 bool lp_fake_oplocks(int ); 1640 bool lp_recursive_veto_delete(int ); 1641 bool lp_dos_filemode(int ); 1642 bool lp_dos_filetimes(int ); 1643 bool lp_dos_filetime_resolution(int ); 1644 bool lp_fake_dir_create_times(int); 1645 bool lp_async_smb_echo_handler(void); 1646 bool lp_multicast_dns_register(void); 1647 bool lp_blocking_locks(int ); 1648 bool lp_inherit_perms(int ); 1649 bool lp_inherit_acls(int ); 1650 bool lp_inherit_owner(int ); 1651 bool lp_use_client_driver(int ); 1652 bool lp_default_devmode(int ); 1653 bool lp_force_printername(int ); 1654 bool lp_nt_acl_support(int ); 1655 bool lp_force_unknown_acl_user(int ); 1656 bool lp_ea_support(int ); 1657 bool _lp_use_sendfile(int ); 1658 bool lp_profile_acls(int ); 1659 bool lp_map_acl_inherit(int ); 1660 bool lp_afs_share(int ); 1661 bool lp_acl_check_permissions(int ); 1662 bool lp_acl_group_control(int ); 1663 bool lp_acl_map_full_control(int ); 1664 int lp_create_mask(int ); 1665 int lp_force_create_mode(int ); 1666 int lp_security_mask(int ); 1667 int lp_force_security_mode(int ); 1668 int lp_dir_mask(int ); 1669 int lp_force_dir_mode(int ); 1670 int lp_dir_security_mask(int ); 1671 int lp_force_dir_security_mode(int ); 1672 int lp_max_connections(int ); 1673 int lp_defaultcase(int ); 1674 int lp_minprintspace(int ); 1675 int lp_printing(int ); 1676 int lp_max_reported_jobs(int ); 1677 int lp_oplock_contention_limit(int ); 1678 int lp_csc_policy(int ); 1679 int lp_write_cache_size(int ); 1680 int lp_block_size(int ); 1681 int lp_dfree_cache_time(int ); 1682 int lp_allocation_roundup_size(int ); 1683 int lp_aio_read_size(int ); 1684 int lp_aio_write_size(int ); 1685 int lp_map_readonly(int ); 1686 int lp_directory_name_cache_size(int ); 1687 int lp_smb_encrypt(int ); 1688 char lp_magicchar(const struct share_params *p ); 1689 int lp_winbind_cache_time(void); 1690 int lp_winbind_reconnect_delay(void); 1691 int lp_winbind_max_clients(void); 1692 const char **lp_winbind_nss_info(void); 1693 bool lp_winbind_sealed_pipes(void); 1694 int lp_algorithmic_rid_base(void); 1695 int lp_name_cache_timeout(void); 1696 int lp_client_signing(void); 1697 int lp_client_ipc_signing(void); 1698 int lp_server_signing(void); 1699 int lp_client_ldap_sasl_wrapping(void); 1700 char *lp_parm_talloc_string(int snum, const char *type, const char *option, const char *def); 912 913 int lp_wi_scan_global_parametrics( 914 const char *regex, size_t max_matches, 915 bool (*cb)(const char *string, regmatch_t matches[], 916 void *private_data), 917 void *private_data); 918 919 char *lp_parm_talloc_string(TALLOC_CTX *ctx, int snum, const char *type, const char *option, const char *def); 1701 920 const char *lp_parm_const_string(int snum, const char *type, const char *option, const char *def); 921 struct loadparm_service; 922 const char *lp_parm_const_string_service(struct loadparm_service *service, const char *type, 923 const char *option, const char *def); 1702 924 const char **lp_parm_string_list(int snum, const char *type, const char *option, const char **def); 1703 925 int lp_parm_int(int snum, const char *type, const char *option, int def); 1704 926 unsigned long lp_parm_ulong(int snum, const char *type, const char *option, unsigned long def); 927 unsigned long long lp_parm_ulonglong(int snum, const char *type, 928 const char *option, 929 unsigned long long def); 1705 930 bool lp_parm_bool(int snum, const char *type, const char *option, bool def); 931 struct enum_list; 1706 932 int lp_parm_enum(int snum, const char *type, const char *option, 1707 933 const struct enum_list *_enum, int def); … … 1713 939 bool lp_parameter_is_valid(const char *pszParmName); 1714 940 bool lp_parameter_is_global(const char *pszParmName); 1715 bool lp_parameter_is_canonical(const char *parm_name);1716 941 bool lp_canonicalize_parameter(const char *parm_name, const char **canon_parm, 1717 942 bool *inverse); … … 1721 946 const char **canon_val); 1722 947 void show_parameter_list(void); 1723 bool lp_string_is_valid_boolean(const char *parm_value);1724 948 bool lp_invert_boolean(const char *str, const char **inverse_str); 1725 949 bool lp_canonicalize_boolean(const char *str, const char**canon_str); 1726 bool service_ok(int iService);1727 950 bool process_registry_service(const char *service_name); 1728 951 bool process_registry_shares(void); … … 1730 953 bool lp_config_backend_is_file(void); 1731 954 bool lp_file_list_changed(void); 1732 bool lp_idmap_uid(uid_t *low, uid_t *high); 1733 bool lp_idmap_gid(gid_t *low, gid_t *high); 1734 const char *lp_ldap_machine_suffix(void); 1735 const char *lp_ldap_user_suffix(void); 1736 const char *lp_ldap_group_suffix(void); 1737 const char *lp_ldap_idmap_suffix(void); 1738 void *lp_local_ptr_by_snum(int snum, void *ptr); 955 const char *lp_ldap_machine_suffix(TALLOC_CTX *ctx); 956 const char *lp_ldap_user_suffix(TALLOC_CTX *ctx); 957 const char *lp_ldap_group_suffix(TALLOC_CTX *ctx); 958 const char *lp_ldap_idmap_suffix(TALLOC_CTX *ctx); 959 struct parm_struct; 960 /* Return a pointer to a service by name. */ 961 struct loadparm_service *lp_service(const char *pszServiceName); 962 struct loadparm_service *lp_servicebynum(int snum); 963 struct loadparm_service *lp_default_loadparm_service(void); 964 void *lp_parm_ptr(struct loadparm_service *service, struct parm_struct *parm); 965 void *lp_local_ptr_by_snum(int snum, struct parm_struct *parm); 1739 966 bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue); 1740 967 bool lp_set_cmdline(const char *pszParmName, const char *pszParmValue); 1741 bool lp_set_option(const char *option);1742 void init_locals(void);1743 bool lp_is_default(int snum, struct parm_struct *parm);1744 968 bool dump_a_parameter(int snum, char *parm_name, FILE * f, bool isGlobal); 1745 struct parm_struct *lp_get_parameter(const char *param_name);1746 struct parm_struct *lp_next_parameter(int snum, int *i, int allparameters);1747 969 bool lp_snum_ok(int iService); 1748 970 void lp_add_one_printer(const char *name, const char *comment, 1749 971 const char *location, void *pdata); 1750 972 bool lp_loaded(void); 1751 void lp_killunused(bool (*snumused) (int)); 973 void lp_killunused(struct smbd_server_connection *sconn, 974 bool (*snumused) (struct smbd_server_connection *, int)); 1752 975 void lp_kill_all_services(void); 1753 976 void lp_killservice(int iServiceIn); 1754 const char* server_role_str(uint32 role);977 const char* server_role_str(uint32_t role); 1755 978 enum usershare_err parse_usershare_file(TALLOC_CTX *ctx, 1756 979 SMB_STRUCT_STAT *psbuf, … … 1765 988 bool *pallow_guest); 1766 989 int load_usershare_service(const char *servicename); 1767 int load_usershare_shares(void); 990 int load_usershare_shares(struct smbd_server_connection *sconn, 991 bool (*snumused) (struct smbd_server_connection *, int)); 1768 992 void gfree_loadparm(void); 1769 void lp_set_in_client(bool b);1770 bool lp_is_in_client(void);1771 bool lp_load(const char *pszFname,1772 bool global_only,1773 bool save_defaults,1774 bool add_ipc,1775 bool initialize_globals);1776 993 bool lp_load_initial_only(const char *pszFname); 1777 bool lp_load_with_registry_shares(const char *pszFname, 1778 bool global_only, 1779 bool save_defaults, 1780 bool add_ipc, 1781 bool initialize_globals); 994 bool lp_load_global(const char *file_name); 995 bool lp_load_with_shares(const char *file_name); 996 bool lp_load_client(const char *file_name); 997 bool lp_load_global_no_reinit(const char *file_name); 998 bool lp_load_no_reinit(const char *file_name); 999 bool lp_load_client_no_reinit(const char *file_name); 1000 bool lp_load_with_registry_shares(const char *pszFname); 1782 1001 int lp_numservices(void); 1783 1002 void lp_dump(FILE *f, bool show_defaults, int maxtoprint); 1784 1003 void lp_dump_one(FILE * f, bool show_defaults, int snum); 1785 1004 int lp_servicenumber(const char *pszServiceName); 1786 bool share_defined(const char *service_name); 1787 struct share_params *get_share_params(TALLOC_CTX *mem_ctx, 1788 const char *sharename); 1789 struct share_iterator *share_list_all(TALLOC_CTX *mem_ctx); 1790 struct share_params *next_share(struct share_iterator *list); 1791 struct share_params *next_printer(struct share_iterator *list); 1792 struct share_params *snum2params_static(int snum); 1793 const char *volume_label(int snum); 1005 const char *volume_label(TALLOC_CTX *ctx, int snum); 1794 1006 bool lp_domain_master(void); 1795 bool lp_domain_master_true_or_auto(void);1796 1007 bool lp_preferred_master(void); 1797 1008 void lp_remove_service(int snum); 1798 1009 void lp_copy_service(int snum, const char *new_name); 1799 1010 int lp_default_server_announce(void); 1800 int lp_major_announce_version(void); 1801 int lp_minor_announce_version(void); 1802 void lp_set_name_resolve_order(const char *new_order); 1803 const char *lp_printername(int snum); 1011 const char *lp_printername(TALLOC_CTX *ctx, int snum); 1804 1012 void lp_set_logfile(const char *name); 1805 1013 int lp_maxprintjobs(int snum); 1806 1014 const char *lp_printcapname(void); 1807 1015 bool lp_disable_spoolss( void ); 1808 void lp_set_spoolss_state( uint32 state );1809 uint32 lp_get_spoolss_state( void );1016 void lp_set_spoolss_state( uint32_t state ); 1017 uint32_t lp_get_spoolss_state( void ); 1810 1018 struct smb_signing_state; 1811 1019 bool lp_use_sendfile(int snum, struct smb_signing_state *signing_state); 1812 1020 void set_use_sendfile(int snum, bool val); 1813 void set_store_dos_attributes(int snum, bool val);1814 1021 void lp_set_mangling_method(const char *new_method); 1815 1022 bool lp_posix_pathnames(void); … … 1818 1025 void lp_set_posix_default_cifsx_readwrite_locktype(enum brl_flavour val); 1819 1026 int lp_min_receive_file_size(void); 1820 char* lp_perfcount_module(void); 1821 void lp_set_passdb_backend(const char *backend); 1027 char* lp_perfcount_module(TALLOC_CTX *ctx); 1822 1028 void widelinks_warning(int snum); 1823 char *lp_ncalrpc_dir(void); 1824 bool lp_allow_dcerpc_auth_level_connect(void); 1029 const char *lp_ncalrpc_dir(void); 1030 void _lp_set_server_role(int server_role); 1031 1032 /* The following definitions come from param/loadparm_ctx.c */ 1033 1034 const struct loadparm_s3_helpers *loadparm_s3_helpers(void); 1825 1035 1826 1036 /* The following definitions come from param/loadparm_server_role.c */ … … 1831 1041 /* The following definitions come from param/util.c */ 1832 1042 1833 uint32 get_int_param( const char* param );1043 uint32_t get_int_param( const char* param ); 1834 1044 char* get_string_param( const char* param ); 1835 1045 … … 1842 1052 /* The following definitions come from lib/sessionid_tdb.c */ 1843 1053 struct sessionid; 1844 bool sessionid_init(void); 1845 bool sessionid_init_readonly(void); 1846 struct db_record *sessionid_fetch_record(TALLOC_CTX *mem_ctx, const char *key); 1847 int sessionid_traverse(int (*fn)(struct db_record *rec, const char *key, 1848 struct sessionid *session, 1849 void *private_data), 1850 void *private_data); 1851 int sessionid_traverse_read(int (*fn)(const char *key, 1852 struct sessionid *session, 1853 void *private_data), 1854 void *private_data); 1054 NTSTATUS sessionid_traverse_read(int (*fn)(const char *key, 1055 struct sessionid *session, 1056 void *private_data), 1057 void *private_data); 1855 1058 1856 1059 /* The following definitions come from utils/passwd_util.c */ … … 1934 1137 bool lookup_unix_group_name(const char *name, struct dom_sid *sid); 1935 1138 1139 /* The following definitions come from lib/util_specialsids.c */ 1140 bool sid_check_is_asserted_identity(const struct dom_sid *sid); 1141 bool sid_check_is_in_asserted_identity(const struct dom_sid *sid); 1142 const char *asserted_identity_domain_name(void); 1143 1936 1144 /* The following definitions come from lib/filename_util.c */ 1937 1145 1938 1146 NTSTATUS get_full_smb_filename(TALLOC_CTX *ctx, const struct smb_filename *smb_fname, 1939 1147 char **full_name); 1940 NTSTATUS create_synthetic_smb_fname(TALLOC_CTX *ctx, const char *base_name, 1941 const char *stream_name, 1942 const SMB_STRUCT_STAT *psbuf, 1943 struct smb_filename **smb_fname_out); 1944 NTSTATUS create_synthetic_smb_fname_split(TALLOC_CTX *ctx, 1945 const char *fname, 1946 const SMB_STRUCT_STAT *psbuf, 1947 struct smb_filename **smb_fname_out); 1148 struct smb_filename *synthetic_smb_fname(TALLOC_CTX *mem_ctx, 1149 const char *base_name, 1150 const char *stream_name, 1151 const SMB_STRUCT_STAT *psbuf); 1152 struct smb_filename *synthetic_smb_fname_split(TALLOC_CTX *ctx, 1153 const char *fname, 1154 const SMB_STRUCT_STAT *psbuf); 1948 1155 const char *smb_fname_str_dbg(const struct smb_filename *smb_fname); 1949 1156 const char *fsp_str_dbg(const struct files_struct *fsp); 1950 NTSTATUS copy_smb_filename(TALLOC_CTX *ctx, 1951 const struct smb_filename *smb_fname_in,1952 struct smb_filename **smb_fname_out);1157 const char *fsp_fnum_dbg(const struct files_struct *fsp); 1158 struct smb_filename *cp_smb_filename(TALLOC_CTX *mem_ctx, 1159 const struct smb_filename *in); 1953 1160 bool is_ntfs_stream_smb_fname(const struct smb_filename *smb_fname); 1954 1161 bool is_ntfs_default_stream_smb_fname(const struct smb_filename *smb_fname); 1162 bool is_invalid_windows_ea_name(const char *name); 1163 bool ea_list_has_invalid_name(struct ea_list *ea_list); 1955 1164 1956 1165 /* The following definitions come from lib/dummyroot.c */ … … 1959 1168 void unbecome_root(void); 1960 1169 1961 /* The following definitions come from lib/ dummysmbd.c */1170 /* The following definitions come from lib/smbd_shim.c */ 1962 1171 1963 1172 int find_service(TALLOC_CTX *ctx, const char *service_in, char **p_service_out); 1964 bool conn_snum_used(int snum);1965 1173 void cancel_pending_lock_requests_by_fid(files_struct *fsp, 1966 1174 struct byte_range_lock *br_lck, … … 1970 1178 NTSTATUS can_delete_directory_fsp(files_struct *fsp); 1971 1179 bool change_to_root_user(void); 1972 struct event_context *smbd_event_context(void); 1180 bool become_authenticated_pipe_user(struct auth_session_info *session_info); 1181 bool unbecome_authenticated_pipe_user(void); 1182 1973 1183 void contend_level2_oplocks_begin(files_struct *fsp, 1974 1184 enum level2_contention_type type);
Note:
See TracChangeset
for help on using the changeset viewer.