mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
libsmbclient: Add smbc_[gs]etOptionPosixExtensions()
This is an obvious part of MR2888, not used anywhere yet. It will eventually result in us requesting SMB311 posix semantics, but for now it will just allow to change behaviour of libsmbclient that could break unsuspecting applications. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Böhme <slow@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
9e3856ecf8
commit
feb7803555
@ -159,6 +159,14 @@ struct SMBC_internal_data {
|
||||
*/
|
||||
bool full_time_names;
|
||||
|
||||
/*
|
||||
* Enable POSIX extensions before opening files/directories
|
||||
* Will silently ignore if the server does not support the POSIX
|
||||
* extensions
|
||||
*/
|
||||
|
||||
bool posix_extensions;
|
||||
|
||||
/*
|
||||
* The share mode of a file being opened. To match POSIX semantics
|
||||
* (and maintain backward compatibility), DENY_NONE is the default.
|
||||
|
@ -588,7 +588,13 @@ smbc_getPort(SMBCCTX *c);
|
||||
void
|
||||
smbc_setPort(SMBCCTX *c, uint16_t port);
|
||||
|
||||
/** Get whether to enable POSIX extensions if available */
|
||||
smbc_bool
|
||||
smbc_getOptionPosixExtensions(SMBCCTX *c);
|
||||
|
||||
/** Set whether to enable POSIX extensions if available */
|
||||
void
|
||||
smbc_setOptionPosixExtensions(SMBCCTX *c, smbc_bool b);
|
||||
|
||||
/***********************************
|
||||
* Getters and setters for OPTIONS *
|
||||
|
190
source3/libsmb/ABI/smbclient-0.8.0.sigs
Normal file
190
source3/libsmb/ABI/smbclient-0.8.0.sigs
Normal file
@ -0,0 +1,190 @@
|
||||
smbc_chmod: int (const char *, mode_t)
|
||||
smbc_close: int (int)
|
||||
smbc_closedir: int (int)
|
||||
smbc_creat: int (const char *, mode_t)
|
||||
smbc_fgetxattr: int (int, const char *, const void *, size_t)
|
||||
smbc_flistxattr: int (int, char *, size_t)
|
||||
smbc_free_context: int (SMBCCTX *, int)
|
||||
smbc_fremovexattr: int (int, const char *)
|
||||
smbc_fsetxattr: int (int, const char *, const void *, size_t, int)
|
||||
smbc_fstat: int (int, struct stat *)
|
||||
smbc_fstatvfs: int (int, struct statvfs *)
|
||||
smbc_ftruncate: int (int, off_t)
|
||||
smbc_getDebug: int (SMBCCTX *)
|
||||
smbc_getFunctionAddCachedServer: smbc_add_cached_srv_fn (SMBCCTX *)
|
||||
smbc_getFunctionAuthData: smbc_get_auth_data_fn (SMBCCTX *)
|
||||
smbc_getFunctionAuthDataWithContext: smbc_get_auth_data_with_context_fn (SMBCCTX *)
|
||||
smbc_getFunctionCheckServer: smbc_check_server_fn (SMBCCTX *)
|
||||
smbc_getFunctionChmod: smbc_chmod_fn (SMBCCTX *)
|
||||
smbc_getFunctionClose: smbc_close_fn (SMBCCTX *)
|
||||
smbc_getFunctionClosedir: smbc_closedir_fn (SMBCCTX *)
|
||||
smbc_getFunctionCreat: smbc_creat_fn (SMBCCTX *)
|
||||
smbc_getFunctionFstat: smbc_fstat_fn (SMBCCTX *)
|
||||
smbc_getFunctionFstatVFS: smbc_fstatvfs_fn (SMBCCTX *)
|
||||
smbc_getFunctionFstatdir: smbc_fstatdir_fn (SMBCCTX *)
|
||||
smbc_getFunctionFtruncate: smbc_ftruncate_fn (SMBCCTX *)
|
||||
smbc_getFunctionGetCachedServer: smbc_get_cached_srv_fn (SMBCCTX *)
|
||||
smbc_getFunctionGetdents: smbc_getdents_fn (SMBCCTX *)
|
||||
smbc_getFunctionGetxattr: smbc_getxattr_fn (SMBCCTX *)
|
||||
smbc_getFunctionListPrintJobs: smbc_list_print_jobs_fn (SMBCCTX *)
|
||||
smbc_getFunctionListxattr: smbc_listxattr_fn (SMBCCTX *)
|
||||
smbc_getFunctionLseek: smbc_lseek_fn (SMBCCTX *)
|
||||
smbc_getFunctionLseekdir: smbc_lseekdir_fn (SMBCCTX *)
|
||||
smbc_getFunctionMkdir: smbc_mkdir_fn (SMBCCTX *)
|
||||
smbc_getFunctionNotify: smbc_notify_fn (SMBCCTX *)
|
||||
smbc_getFunctionOpen: smbc_open_fn (SMBCCTX *)
|
||||
smbc_getFunctionOpenPrintJob: smbc_open_print_job_fn (SMBCCTX *)
|
||||
smbc_getFunctionOpendir: smbc_opendir_fn (SMBCCTX *)
|
||||
smbc_getFunctionPrintFile: smbc_print_file_fn (SMBCCTX *)
|
||||
smbc_getFunctionPurgeCachedServers: smbc_purge_cached_fn (SMBCCTX *)
|
||||
smbc_getFunctionRead: smbc_read_fn (SMBCCTX *)
|
||||
smbc_getFunctionReaddir: smbc_readdir_fn (SMBCCTX *)
|
||||
smbc_getFunctionReaddirPlus: smbc_readdirplus_fn (SMBCCTX *)
|
||||
smbc_getFunctionReaddirPlus2: smbc_readdirplus2_fn (SMBCCTX *)
|
||||
smbc_getFunctionRemoveCachedServer: smbc_remove_cached_srv_fn (SMBCCTX *)
|
||||
smbc_getFunctionRemoveUnusedServer: smbc_remove_unused_server_fn (SMBCCTX *)
|
||||
smbc_getFunctionRemovexattr: smbc_removexattr_fn (SMBCCTX *)
|
||||
smbc_getFunctionRename: smbc_rename_fn (SMBCCTX *)
|
||||
smbc_getFunctionRmdir: smbc_rmdir_fn (SMBCCTX *)
|
||||
smbc_getFunctionSetxattr: smbc_setxattr_fn (SMBCCTX *)
|
||||
smbc_getFunctionSplice: smbc_splice_fn (SMBCCTX *)
|
||||
smbc_getFunctionStat: smbc_stat_fn (SMBCCTX *)
|
||||
smbc_getFunctionStatVFS: smbc_statvfs_fn (SMBCCTX *)
|
||||
smbc_getFunctionTelldir: smbc_telldir_fn (SMBCCTX *)
|
||||
smbc_getFunctionUnlink: smbc_unlink_fn (SMBCCTX *)
|
||||
smbc_getFunctionUnlinkPrintJob: smbc_unlink_print_job_fn (SMBCCTX *)
|
||||
smbc_getFunctionUtimes: smbc_utimes_fn (SMBCCTX *)
|
||||
smbc_getFunctionWrite: smbc_write_fn (SMBCCTX *)
|
||||
smbc_getNetbiosName: const char *(SMBCCTX *)
|
||||
smbc_getOptionBrowseMaxLmbCount: int (SMBCCTX *)
|
||||
smbc_getOptionCaseSensitive: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionDebugToStderr: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionFallbackAfterKerberos: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionFullTimeNames: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionNoAutoAnonymousLogin: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionOneSharePerServer: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionOpenShareMode: smbc_share_mode (SMBCCTX *)
|
||||
smbc_getOptionPosixExtensions: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionSmbEncryptionLevel: smbc_smb_encrypt_level (SMBCCTX *)
|
||||
smbc_getOptionUrlEncodeReaddirEntries: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionUseCCache: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionUseKerberos: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionUseNTHash: smbc_bool (SMBCCTX *)
|
||||
smbc_getOptionUserData: void *(SMBCCTX *)
|
||||
smbc_getPort: uint16_t (SMBCCTX *)
|
||||
smbc_getServerCacheData: struct smbc_server_cache *(SMBCCTX *)
|
||||
smbc_getTimeout: int (SMBCCTX *)
|
||||
smbc_getUser: const char *(SMBCCTX *)
|
||||
smbc_getWorkgroup: const char *(SMBCCTX *)
|
||||
smbc_getdents: int (unsigned int, struct smbc_dirent *, int)
|
||||
smbc_getxattr: int (const char *, const char *, const void *, size_t)
|
||||
smbc_init: int (smbc_get_auth_data_fn, int)
|
||||
smbc_init_context: SMBCCTX *(SMBCCTX *)
|
||||
smbc_lgetxattr: int (const char *, const char *, const void *, size_t)
|
||||
smbc_list_print_jobs: int (const char *, smbc_list_print_job_fn)
|
||||
smbc_listxattr: int (const char *, char *, size_t)
|
||||
smbc_llistxattr: int (const char *, char *, size_t)
|
||||
smbc_lremovexattr: int (const char *, const char *)
|
||||
smbc_lseek: off_t (int, off_t, int)
|
||||
smbc_lseekdir: int (int, off_t)
|
||||
smbc_lsetxattr: int (const char *, const char *, const void *, size_t, int)
|
||||
smbc_mkdir: int (const char *, mode_t)
|
||||
smbc_new_context: SMBCCTX *(void)
|
||||
smbc_notify: int (int, smbc_bool, uint32_t, unsigned int, smbc_notify_callback_fn, void *)
|
||||
smbc_open: int (const char *, int, mode_t)
|
||||
smbc_open_print_job: int (const char *)
|
||||
smbc_opendir: int (const char *)
|
||||
smbc_option_get: void *(SMBCCTX *, char *)
|
||||
smbc_option_set: void (SMBCCTX *, char *, ...)
|
||||
smbc_print_file: int (const char *, const char *)
|
||||
smbc_read: ssize_t (int, void *, size_t)
|
||||
smbc_readdir: struct smbc_dirent *(unsigned int)
|
||||
smbc_readdirplus: const struct libsmb_file_info *(unsigned int)
|
||||
smbc_readdirplus2: const struct libsmb_file_info *(unsigned int, struct stat *)
|
||||
smbc_removexattr: int (const char *, const char *)
|
||||
smbc_rename: int (const char *, const char *)
|
||||
smbc_rmdir: int (const char *)
|
||||
smbc_setConfiguration: int (SMBCCTX *, const char *)
|
||||
smbc_setDebug: void (SMBCCTX *, int)
|
||||
smbc_setFunctionAddCachedServer: void (SMBCCTX *, smbc_add_cached_srv_fn)
|
||||
smbc_setFunctionAuthData: void (SMBCCTX *, smbc_get_auth_data_fn)
|
||||
smbc_setFunctionAuthDataWithContext: void (SMBCCTX *, smbc_get_auth_data_with_context_fn)
|
||||
smbc_setFunctionCheckServer: void (SMBCCTX *, smbc_check_server_fn)
|
||||
smbc_setFunctionChmod: void (SMBCCTX *, smbc_chmod_fn)
|
||||
smbc_setFunctionClose: void (SMBCCTX *, smbc_close_fn)
|
||||
smbc_setFunctionClosedir: void (SMBCCTX *, smbc_closedir_fn)
|
||||
smbc_setFunctionCreat: void (SMBCCTX *, smbc_creat_fn)
|
||||
smbc_setFunctionFstat: void (SMBCCTX *, smbc_fstat_fn)
|
||||
smbc_setFunctionFstatVFS: void (SMBCCTX *, smbc_fstatvfs_fn)
|
||||
smbc_setFunctionFstatdir: void (SMBCCTX *, smbc_fstatdir_fn)
|
||||
smbc_setFunctionFtruncate: void (SMBCCTX *, smbc_ftruncate_fn)
|
||||
smbc_setFunctionGetCachedServer: void (SMBCCTX *, smbc_get_cached_srv_fn)
|
||||
smbc_setFunctionGetdents: void (SMBCCTX *, smbc_getdents_fn)
|
||||
smbc_setFunctionGetxattr: void (SMBCCTX *, smbc_getxattr_fn)
|
||||
smbc_setFunctionListPrintJobs: void (SMBCCTX *, smbc_list_print_jobs_fn)
|
||||
smbc_setFunctionListxattr: void (SMBCCTX *, smbc_listxattr_fn)
|
||||
smbc_setFunctionLseek: void (SMBCCTX *, smbc_lseek_fn)
|
||||
smbc_setFunctionLseekdir: void (SMBCCTX *, smbc_lseekdir_fn)
|
||||
smbc_setFunctionMkdir: void (SMBCCTX *, smbc_mkdir_fn)
|
||||
smbc_setFunctionNotify: void (SMBCCTX *, smbc_notify_fn)
|
||||
smbc_setFunctionOpen: void (SMBCCTX *, smbc_open_fn)
|
||||
smbc_setFunctionOpenPrintJob: void (SMBCCTX *, smbc_open_print_job_fn)
|
||||
smbc_setFunctionOpendir: void (SMBCCTX *, smbc_opendir_fn)
|
||||
smbc_setFunctionPrintFile: void (SMBCCTX *, smbc_print_file_fn)
|
||||
smbc_setFunctionPurgeCachedServers: void (SMBCCTX *, smbc_purge_cached_fn)
|
||||
smbc_setFunctionRead: void (SMBCCTX *, smbc_read_fn)
|
||||
smbc_setFunctionReaddir: void (SMBCCTX *, smbc_readdir_fn)
|
||||
smbc_setFunctionReaddirPlus: void (SMBCCTX *, smbc_readdirplus_fn)
|
||||
smbc_setFunctionReaddirPlus2: void (SMBCCTX *, smbc_readdirplus2_fn)
|
||||
smbc_setFunctionRemoveCachedServer: void (SMBCCTX *, smbc_remove_cached_srv_fn)
|
||||
smbc_setFunctionRemoveUnusedServer: void (SMBCCTX *, smbc_remove_unused_server_fn)
|
||||
smbc_setFunctionRemovexattr: void (SMBCCTX *, smbc_removexattr_fn)
|
||||
smbc_setFunctionRename: void (SMBCCTX *, smbc_rename_fn)
|
||||
smbc_setFunctionRmdir: void (SMBCCTX *, smbc_rmdir_fn)
|
||||
smbc_setFunctionSetxattr: void (SMBCCTX *, smbc_setxattr_fn)
|
||||
smbc_setFunctionSplice: void (SMBCCTX *, smbc_splice_fn)
|
||||
smbc_setFunctionStat: void (SMBCCTX *, smbc_stat_fn)
|
||||
smbc_setFunctionStatVFS: void (SMBCCTX *, smbc_statvfs_fn)
|
||||
smbc_setFunctionTelldir: void (SMBCCTX *, smbc_telldir_fn)
|
||||
smbc_setFunctionUnlink: void (SMBCCTX *, smbc_unlink_fn)
|
||||
smbc_setFunctionUnlinkPrintJob: void (SMBCCTX *, smbc_unlink_print_job_fn)
|
||||
smbc_setFunctionUtimes: void (SMBCCTX *, smbc_utimes_fn)
|
||||
smbc_setFunctionWrite: void (SMBCCTX *, smbc_write_fn)
|
||||
smbc_setLogCallback: void (SMBCCTX *, void *, smbc_debug_callback_fn)
|
||||
smbc_setNetbiosName: void (SMBCCTX *, const char *)
|
||||
smbc_setOptionBrowseMaxLmbCount: void (SMBCCTX *, int)
|
||||
smbc_setOptionCaseSensitive: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionDebugToStderr: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionFallbackAfterKerberos: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionFullTimeNames: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionNoAutoAnonymousLogin: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionOneSharePerServer: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionOpenShareMode: void (SMBCCTX *, smbc_share_mode)
|
||||
smbc_setOptionPosixExtensions: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionProtocols: smbc_bool (SMBCCTX *, const char *, const char *)
|
||||
smbc_setOptionSmbEncryptionLevel: void (SMBCCTX *, smbc_smb_encrypt_level)
|
||||
smbc_setOptionUrlEncodeReaddirEntries: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionUseCCache: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionUseKerberos: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionUseNTHash: void (SMBCCTX *, smbc_bool)
|
||||
smbc_setOptionUserData: void (SMBCCTX *, void *)
|
||||
smbc_setPort: void (SMBCCTX *, uint16_t)
|
||||
smbc_setServerCacheData: void (SMBCCTX *, struct smbc_server_cache *)
|
||||
smbc_setTimeout: void (SMBCCTX *, int)
|
||||
smbc_setUser: void (SMBCCTX *, const char *)
|
||||
smbc_setWorkgroup: void (SMBCCTX *, const char *)
|
||||
smbc_set_context: SMBCCTX *(SMBCCTX *)
|
||||
smbc_set_credentials: void (const char *, const char *, const char *, smbc_bool, const char *)
|
||||
smbc_set_credentials_with_fallback: void (SMBCCTX *, const char *, const char *, const char *)
|
||||
smbc_setxattr: int (const char *, const char *, const void *, size_t, int)
|
||||
smbc_stat: int (const char *, struct stat *)
|
||||
smbc_statvfs: int (char *, struct statvfs *)
|
||||
smbc_telldir: off_t (int)
|
||||
smbc_unlink: int (const char *)
|
||||
smbc_unlink_print_job: int (const char *, int)
|
||||
smbc_urldecode: int (char *, char *, size_t)
|
||||
smbc_urlencode: int (char *, char *, int)
|
||||
smbc_utime: int (const char *, struct utimbuf *)
|
||||
smbc_utimes: int (const char *, struct timeval *)
|
||||
smbc_version: const char *(void)
|
||||
smbc_write: ssize_t (int, const void *, size_t)
|
@ -191,6 +191,7 @@ smbc_new_context(void)
|
||||
smbc_setOptionBrowseMaxLmbCount(context, 3); /* # LMBs to query */
|
||||
smbc_setOptionUrlEncodeReaddirEntries(context, False);
|
||||
smbc_setOptionOneSharePerServer(context, False);
|
||||
smbc_setOptionPosixExtensions(context, false);
|
||||
if (getenv("LIBSMBCLIENT_NO_CCACHE") != NULL) {
|
||||
smbc_setOptionUseCCache(context, false);
|
||||
}
|
||||
|
@ -549,6 +549,20 @@ smbc_setOptionProtocols(SMBCCTX *c,
|
||||
return ok;
|
||||
}
|
||||
|
||||
/** Get whether to enable POSIX extensions if available */
|
||||
smbc_bool
|
||||
smbc_getOptionPosixExtensions(SMBCCTX *c)
|
||||
{
|
||||
return c->internal->posix_extensions;
|
||||
}
|
||||
|
||||
/** Set whether to enable POSIX extensions if available */
|
||||
void
|
||||
smbc_setOptionPosixExtensions(SMBCCTX *c, smbc_bool b)
|
||||
{
|
||||
c->internal->posix_extensions = b;
|
||||
}
|
||||
|
||||
/** Get the function for obtaining authentication data */
|
||||
smbc_get_auth_data_fn
|
||||
smbc_getFunctionAuthData(SMBCCTX *c)
|
||||
|
@ -26,5 +26,5 @@ def build(bld):
|
||||
public_headers='../include/libsmbclient.h',
|
||||
abi_directory='ABI',
|
||||
abi_match='smbc_*',
|
||||
vnum='0.7.0',
|
||||
vnum='0.8.0',
|
||||
pc_files='smbclient.pc')
|
||||
|
Loading…
Reference in New Issue
Block a user