summaryrefslogtreecommitdiff
path: root/usr/src/lib/smbsrv/libsmb/common/smb_kmod.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/smbsrv/libsmb/common/smb_kmod.c')
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_kmod.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_kmod.c b/usr/src/lib/smbsrv/libsmb/common/smb_kmod.c
index ebc99295b4..ac5a60f7b0 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_kmod.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_kmod.c
@@ -63,6 +63,12 @@ smb_kmod_bind(void)
return (0);
}
+boolean_t
+smb_kmod_isbound(void)
+{
+ return ((smbdrv_fd == -1) ? B_FALSE : B_TRUE);
+}
+
int
smb_kmod_setcfg(smb_kmod_cfg_t *cfg)
{
@@ -78,6 +84,7 @@ smb_kmod_setcfg(smb_kmod_cfg_t *cfg)
ioc.sync_enable = cfg->skc_sync_enable;
ioc.secmode = cfg->skc_secmode;
ioc.ipv6_enable = cfg->skc_ipv6_enable;
+ ioc.print_enable = cfg->skc_print_enable;
ioc.exec_flags = cfg->skc_execflags;
ioc.version = cfg->skc_version;
@@ -213,6 +220,24 @@ smb_kmod_unshare(nvlist_t *shrlist)
}
int
+smb_kmod_shareinfo(char *shrname, boolean_t *shortnames)
+{
+ smb_ioc_shareinfo_t ioc;
+ int rc;
+
+ bzero(&ioc, sizeof (ioc));
+ (void) strlcpy(ioc.shrname, shrname, MAXNAMELEN);
+
+ rc = smb_kmod_ioctl(SMB_IOC_SHAREINFO, &ioc.hdr, sizeof (ioc));
+ if (rc == 0)
+ *shortnames = ioc.shortnames;
+ else
+ *shortnames = B_TRUE;
+
+ return (rc);
+}
+
+int
smb_kmod_get_open_num(smb_opennum_t *opennum)
{
smb_ioc_opennum_t ioc;
@@ -232,6 +257,24 @@ smb_kmod_get_open_num(smb_opennum_t *opennum)
return (rc);
}
+int
+smb_kmod_get_spool_doc(uint32_t *spool_num, char *username,
+ char *path, smb_inaddr_t *ipaddr)
+{
+ smb_ioc_spooldoc_t ioc;
+ int rc;
+
+ bzero(&ioc, sizeof (ioc));
+ rc = smb_kmod_ioctl(SMB_IOC_SPOOLDOC, &ioc.hdr, sizeof (ioc));
+ if (rc == 0) {
+ *spool_num = ioc.spool_num;
+ (void) strlcpy(username, ioc.username, MAXNAMELEN);
+ (void) strlcpy(path, ioc.path, MAXPATHLEN);
+ *ipaddr = ioc.ipaddr;
+ }
+ return (rc);
+}
+
/*
* Initialization for an smb_kmod_enum request. If this call succeeds,
* smb_kmod_enum_fini() must be called later to deallocate resources.