diff options
| author | Jordan Brown <Jordan.Brown@Sun.COM> | 2009-11-05 14:34:36 -0800 |
|---|---|---|
| committer | Jordan Brown <Jordan.Brown@Sun.COM> | 2009-11-05 14:34:36 -0800 |
| commit | bbf6f00c25b6a2bed23c35eac6d62998ecdb338c (patch) | |
| tree | 8cf72fd47362b5b0da2ffe9be7fe7726a3d24426 /usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c | |
| parent | d95ac3ffcdcc13296bb4c53f621f72c0535f32c3 (diff) | |
| download | illumos-joyent-bbf6f00c25b6a2bed23c35eac6d62998ecdb338c.tar.gz | |
6747532 ns_lookup_bypid spams syslog with too many messages
6888836 Not listing all files in a directory of a CIFS share in Windows XP
6812570 Trans2 is missing pass-through levels: FILE_RENAME_INFORMATION (and others)
6888827 Add Unicode codepage support
6865488 libadutils: leak in ldap_lookup_domains_in_forest()
6888708 idmapd crashing periodically. Need cores analyzed.
6891342 invalid, redundant SQL in rule WHERE expressions
6891767 minor cleanups in idmap
6892544 Panic occurred at smb_node_ref+0x7f(ffffffd612297310)
--HG--
rename : usr/src/uts/common/smbsrv/cifs.h => usr/src/uts/common/smbsrv/smb.h
Diffstat (limited to 'usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c')
| -rw-r--r-- | usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c b/usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c index 616701292f..08eeca4462 100644 --- a/usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c +++ b/usr/src/lib/smbsrv/libmlsvc/common/srvsvc_svc.c @@ -32,6 +32,7 @@ */ #include <sys/errno.h> +#include <sys/tzfile.h> #include <unistd.h> #include <netdb.h> #include <strings.h> @@ -49,9 +50,8 @@ #include <smbsrv/libsmb.h> #include <smbsrv/libmlsvc.h> #include <smbsrv/lmerr.h> -#include <smbsrv/nterror.h> #include <smbsrv/nmpipes.h> -#include <smbsrv/cifs.h> +#include <smbsrv/smb.h> #include <smbsrv/netrauth.h> #include <smbsrv/ndl/srvsvc.ndl> #include <smbsrv/smb_common_door.h> @@ -1196,7 +1196,7 @@ srvsvc_modify_transient_share(smb_share_t *si, srvsvc_netshare_setinfo_t *info) uint32_t nerr; if (info->nss_netname != NULL && info->nss_netname[0] != '\0' && - utf8_strcasecmp(info->nss_netname, si->shr_name) != 0) { + smb_strcasecmp(info->nss_netname, si->shr_name, 0) != 0) { nerr = smb_shr_rename(si->shr_name, info->nss_netname); if (nerr != NERR_Success) return (nerr); @@ -1790,6 +1790,9 @@ netservergetinfo_no_memory: * positive; for time zones east of Greenwich, the value is negative. * A value of -1 indicates that the time zone is undefined. * + * Determine offset from GMT. If daylight saving time use altzone, + * otherwise use timezone. + * * The clock tick value represents a resolution of one ten-thousandth * (0.0001) second. */ @@ -1800,6 +1803,8 @@ srvsvc_s_NetRemoteTOD(void *arg, ndr_xa_t *mxa) struct mslm_TIME_OF_DAY_INFO *tod; struct timeval time_val; struct tm tm; + time_t gmtoff; + (void) gettimeofday(&time_val, 0); (void) gmtime_r(&time_val.tv_sec, &tm); @@ -1810,6 +1815,8 @@ srvsvc_s_NetRemoteTOD(void *arg, ndr_xa_t *mxa) return (ERROR_NOT_ENOUGH_MEMORY); } + bzero(tod, sizeof (struct mslm_TIME_OF_DAY_INFO)); + tod->tod_elapsedt = time_val.tv_sec; tod->tod_msecs = time_val.tv_usec; tod->tod_hours = tm.tm_hour; @@ -1823,6 +1830,8 @@ srvsvc_s_NetRemoteTOD(void *arg, ndr_xa_t *mxa) tod->tod_weekday = tm.tm_wday; (void) localtime_r(&time_val.tv_sec, &tm); + gmtoff = (tm.tm_isdst) ? altzone : timezone; + tod->tod_timezone = gmtoff / SECSPERMIN; param->bufptr = tod; param->status = ERROR_SUCCESS; @@ -2703,7 +2712,7 @@ srvsvc_s_NetShareCheck(void *arg, ndr_xa_t *mxa) while ((si = smb_shr_iterate(&iterator)) != NULL) { path = srvsvc_share_mkpath(mxa, si->shr_path); - if (utf8_strcasecmp(path, (char *)param->path) == 0) { + if (smb_strcasecmp(path, (char *)param->path, 0) == 0) { param->stype = (si->shr_type & STYPE_MASK); param->status = NERR_Success; return (NDR_DRC_OK); @@ -2908,7 +2917,7 @@ srvsvc_sa_modify(smb_share_t *si, srvsvc_netshare_setinfo_t *info) } if (info->nss_netname != NULL && info->nss_netname[0] != '\0' && - utf8_strcasecmp(info->nss_netname, si->shr_name) != 0) { + smb_strcasecmp(info->nss_netname, si->shr_name, 0) != 0) { (void) sa_set_resource_attr(resource, SHOPT_NAME, info->nss_netname); renamed = B_TRUE; |
