Print this page
NEX-19057 All zfs/nfs/smb threads in door calls to idle idmap
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
1575 untangle libmlrpc from SMB server
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
NEX-15558 SMB logon fails during 1st second after service start
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15558 SMB logon fails during 1st second after service start
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-6309 Update NT status codes
Update ntstatus.h from [MS-ERREF] October 2015
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
NEX-2667 Wrong error when join domain with wrong password
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Bayard Bell <bayard.bell@nexenta.com>
NEX-2225 Unable to join NexentaStor to 2008 AD
NEX-2286 smbadm join error messages are uninformative
NEX-1810 extended security Kerberos (inbound)
NEX-1638 Updated DC Locator
 Includes work by: matt.barden@nexenta.com, kevin.crowe@nexenta.com

*** 18,60 **** * * CDDL HEADER END */ /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2015 Nexenta Systems, Inc. All rights reserved. */ #ifndef _LIBMLSVC_H #define _LIBMLSVC_H - #include <uuid/uuid.h> #include <sys/param.h> #include <sys/types.h> #include <sys/uio.h> #include <sys/ksynch.h> #include <time.h> #include <stdio.h> #include <string.h> #include <netdb.h> #include <libuutil.h> ! #include <smbsrv/wintypes.h> #include <smbsrv/hash_table.h> #include <smbsrv/smb_token.h> #include <smbsrv/smb_privilege.h> #include <smbsrv/smb_share.h> #include <smbsrv/smb_xdr.h> #include <smbsrv/smb_dfs.h> #include <smbsrv/libsmb.h> - #include <smbsrv/libmlrpc.h> - #include <smbsrv/ndl/lsarpc.ndl> #ifdef __cplusplus extern "C" { #endif uint32_t lsa_lookup_name(char *, uint16_t, smb_account_t *); uint32_t lsa_lookup_sid(smb_sid_t *, smb_account_t *); /* * SMB domain API to discover a domain controller and obtain domain * information. */ --- 18,75 ---- * * CDDL HEADER END */ /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2019 Nexenta Systems, Inc. All rights reserved. */ #ifndef _LIBMLSVC_H #define _LIBMLSVC_H #include <sys/param.h> #include <sys/types.h> #include <sys/uio.h> #include <sys/ksynch.h> + #include <uuid/uuid.h> + #include <time.h> #include <stdio.h> #include <string.h> + #include <syslog.h> #include <netdb.h> #include <libuutil.h> ! ! #include <smb/wintypes.h> ! #include <libmlrpc/libmlrpc.h> ! #include <smbsrv/hash_table.h> #include <smbsrv/smb_token.h> #include <smbsrv/smb_privilege.h> #include <smbsrv/smb_share.h> #include <smbsrv/smb_xdr.h> #include <smbsrv/smb_dfs.h> #include <smbsrv/libsmb.h> + /* + * XXX: Some temporary left-overs from the old ntstatus.h + * Should eliminate uses of these macros when convenient. + */ + /* This used to OR in the severity bits. */ + #define NT_SC_ERROR(S) (S) + /* This used to mask off the severity bits. */ + #define NT_SC_VALUE(S) (S) + /* XXX end of temporary left-overs. */ + #ifdef __cplusplus extern "C" { #endif uint32_t lsa_lookup_name(char *, uint16_t, smb_account_t *); + uint32_t lsa_lookup_lname(char *, uint16_t, smb_account_t *); uint32_t lsa_lookup_sid(smb_sid_t *, smb_account_t *); + uint32_t lsa_lookup_lsid(smb_sid_t *, smb_account_t *); /* * SMB domain API to discover a domain controller and obtain domain * information. */
*** 61,71 **** extern boolean_t smb_locate_dc(char *, smb_domainex_t *); uint32_t smb_ddiscover_dns(char *, smb_domainex_t *); extern void smb_ddiscover_bad_dc(char *); extern void smb_ddiscover_refresh(void); - extern int smb_ddiscover_wait(void); extern int dssetup_check_service(void); extern void dssetup_clear_domain_info(void); extern void mlsvc_disconnect(const char *); extern int mlsvc_init(void); --- 76,85 ----
*** 126,183 **** uint32_t low_part; uint32_t high_part; } ms_luid_t; /* - * Information about a server as reported by NetServerGetInfo. - * The SV_PLATFORM and SV_TYPE definitions are in srvsvc.ndl. - */ - typedef struct srvsvc_server_info { - uint32_t sv_platform_id; - char *sv_name; - uint32_t sv_version_major; - uint32_t sv_version_minor; - uint32_t sv_type; - char *sv_comment; - uint32_t sv_os; - } srvsvc_server_info_t; - - int srvsvc_net_server_getinfo(char *, char *, srvsvc_server_info_t *); - int srvsvc_net_remote_tod(char *, char *, struct timeval *, struct tm *); - - - /* * A client_t is created while binding a client connection to hold the * context for calls made using that connection. * * Handles are RPC call specific and we use an inheritance mechanism to * ensure that each handle has a pointer to the client_t. When the top * level (bind) handle is released, we close the connection. */ ! typedef struct mlsvc_handle { ! ndr_hdid_t handle; ! ndr_client_t *clnt; ! srvsvc_server_info_t svinfo; ! } mlsvc_handle_t; void ndr_rpc_init(void); void ndr_rpc_fini(void); uint32_t ndr_rpc_bind(mlsvc_handle_t *, char *, char *, char *, const char *); void ndr_rpc_unbind(mlsvc_handle_t *); - int ndr_rpc_call(mlsvc_handle_t *, int, void *); - void ndr_rpc_set_nonull(mlsvc_handle_t *); - const srvsvc_server_info_t *ndr_rpc_server_info(mlsvc_handle_t *); - uint32_t ndr_rpc_server_os(mlsvc_handle_t *); - int ndr_rpc_get_ssnkey(mlsvc_handle_t *, unsigned char *, size_t); - void *ndr_rpc_malloc(mlsvc_handle_t *, size_t); - ndr_heap_t *ndr_rpc_get_heap(mlsvc_handle_t *); - void ndr_rpc_release(mlsvc_handle_t *); - boolean_t ndr_is_null_handle(mlsvc_handle_t *); - boolean_t ndr_is_bind_handle(mlsvc_handle_t *); - void ndr_inherit_handle(mlsvc_handle_t *, mlsvc_handle_t *); void ndr_rpc_status(mlsvc_handle_t *, int, uint32_t); /* SVCCTL service */ /* * Calculate the wide-char equivalent string length required to * store a string - including the terminating null wide-char. */ --- 140,173 ---- uint32_t low_part; uint32_t high_part; } ms_luid_t; /* * A client_t is created while binding a client connection to hold the * context for calls made using that connection. * * Handles are RPC call specific and we use an inheritance mechanism to * ensure that each handle has a pointer to the client_t. When the top * level (bind) handle is released, we close the connection. */ ! typedef struct mlrpc_handle mlsvc_handle_t; + /* mlsvc_client.c */ void ndr_rpc_init(void); void ndr_rpc_fini(void); uint32_t ndr_rpc_bind(mlsvc_handle_t *, char *, char *, char *, const char *); void ndr_rpc_unbind(mlsvc_handle_t *); void ndr_rpc_status(mlsvc_handle_t *, int, uint32_t); + /* These three get info about the connected client. */ + boolean_t ndr_is_admin(ndr_xa_t *); + boolean_t ndr_is_poweruser(ndr_xa_t *); + int32_t ndr_native_os(ndr_xa_t *); + + /* SRVSVC */ + int srvsvc_net_remote_tod(char *, char *, struct timeval *, struct tm *); + /* SVCCTL service */ /* * Calculate the wide-char equivalent string length required to * store a string - including the terminating null wide-char. */