Lines Matching full:ssp
159 vcspec->ssp = NULL; in smb_sm_lookupint()
162 &vcspec->ssp); in smb_sm_lookupint()
185 struct smb_share *ssp = NULL; in smb_sm_lookup() local
209 error = smb_share_create(vcp, shspec, scred, &ssp); in smb_sm_lookup()
212 error = smb_smb_treeconnect(ssp, scred); in smb_sm_lookup()
214 vcspec->ssp = ssp; in smb_sm_lookup()
216 smb_share_put(ssp, scred); in smb_sm_lookup()
614 smb_vc_cmpshare(struct smb_share *ssp, struct smb_sharespec *dp) in smb_vc_cmpshare() argument
618 if (strcmp(ssp->ss_name, dp->name) != 0) in smb_vc_cmpshare()
621 if (ssp->ss_uid != dp->owner) in smb_vc_cmpshare()
626 if (ssp->ss_grp != dp->group) in smb_vc_cmpshare()
634 return (dp->mode & SMBM_MASK) == ssp->ss_mode ? 0 : 1; in smb_vc_cmpshare()
636 if (smb_share_access(ssp, dp->scred, dp->mode) != 0) in smb_vc_cmpshare()
650 struct smb_share *ssp = NULL; in smb_vc_lookupshare() local
656 ssp = (struct smb_share *)scp; in smb_vc_lookupshare()
657 error = smb_share_lock(ssp); in smb_vc_lookupshare()
660 if (smb_vc_cmpshare(ssp, dp) == 0) in smb_vc_lookupshare()
662 smb_share_unlock(ssp); in smb_vc_lookupshare()
664 if (ssp) { in smb_vc_lookupshare()
665 smb_share_ref(ssp); in smb_vc_lookupshare()
666 *sspp = ssp; in smb_vc_lookupshare()
745 struct smb_share *ssp; in smb_share_create() local
760 error = smb_vc_lookupshare(vcp, shspec, scred, &ssp); in smb_share_create()
762 smb_share_put(ssp, scred); in smb_share_create()
769 ssp = smb_zmalloc(sizeof(*ssp), M_SMBCONN, M_WAITOK); in smb_share_create()
770 smb_co_init(SSTOCP(ssp), SMBL_SHARE, "smbss ilock", "smbss"); in smb_share_create()
771 ssp->obj.co_free = smb_share_free; in smb_share_create()
772 ssp->obj.co_gone = smb_share_gone; in smb_share_create()
773 smb_sl_init(&ssp->ss_stlock, "ssstlock"); in smb_share_create()
774 ssp->ss_name = smb_strdup(shspec->name); in smb_share_create()
776 ssp->ss_pass = smb_strdup(shspec->pass); in smb_share_create()
777 ssp->ss_type = shspec->stype; in smb_share_create()
778 ssp->ss_tid = SMB_TID_UNKNOWN; in smb_share_create()
779 ssp->ss_uid = uid; in smb_share_create()
780 ssp->ss_grp = gid; in smb_share_create()
781 ssp->ss_mode = shspec->rights & SMBM_MASK; in smb_share_create()
782 smb_co_addchild(VCTOCP(vcp), SSTOCP(ssp)); in smb_share_create()
783 *sspp = ssp; in smb_share_create()
790 struct smb_share *ssp = CPTOSS(cp); in smb_share_free() local
792 SMB_STRFREE(ssp->ss_name); in smb_share_free()
793 SMB_STRFREE(ssp->ss_pass); in smb_share_free()
794 smb_sl_destroy(&ssp->ss_stlock); in smb_share_free()
795 smb_co_done(SSTOCP(ssp)); in smb_share_free()
796 free(ssp, M_SMBCONN); in smb_share_free()
802 struct smb_share *ssp = CPTOSS(cp); in smb_share_gone() local
804 smb_smb_treedisconnect(ssp, scred); in smb_share_gone()
808 smb_share_ref(struct smb_share *ssp) in smb_share_ref() argument
810 smb_co_ref(SSTOCP(ssp)); in smb_share_ref()
814 smb_share_rele(struct smb_share *ssp, struct smb_cred *scred) in smb_share_rele() argument
816 smb_co_rele(SSTOCP(ssp), scred); in smb_share_rele()
820 smb_share_get(struct smb_share *ssp, struct smb_cred *scred) in smb_share_get() argument
822 struct smb_connobj *cp = SSTOCP(ssp); in smb_share_get()
832 smb_share_put(struct smb_share *ssp, struct smb_cred *scred) in smb_share_put() argument
835 smb_co_put(SSTOCP(ssp), scred); in smb_share_put()
839 smb_share_lock(struct smb_share *ssp) in smb_share_lock() argument
844 cp = SSTOCP(ssp); in smb_share_lock()
852 smb_share_unlock(struct smb_share *ssp) in smb_share_unlock() argument
856 cp = SSTOCP(ssp); in smb_share_unlock()
863 smb_share_access(struct smb_share *ssp, struct smb_cred *scred, mode_t mode) in smb_share_access() argument
867 if (smb_suser(cred) == 0 || cred->cr_uid == ssp->ss_uid) in smb_share_access()
870 if (!groupmember(ssp->ss_grp, cred)) in smb_share_access()
872 return (ssp->ss_mode & mode) == mode ? 0 : EACCES; in smb_share_access()
876 smb_share_invalidate(struct smb_share *ssp) in smb_share_invalidate() argument
878 ssp->ss_tid = SMB_TID_UNKNOWN; in smb_share_invalidate()
882 smb_share_valid(struct smb_share *ssp) in smb_share_valid() argument
884 return ssp->ss_tid != SMB_TID_UNKNOWN && in smb_share_valid()
885 ssp->ss_vcgenid == SSTOVC(ssp)->vc_genid; in smb_share_valid()
889 smb_share_getpass(struct smb_share *ssp) in smb_share_getpass() argument
893 if (ssp->ss_pass) in smb_share_getpass()
894 return ssp->ss_pass; in smb_share_getpass()
895 vcp = SSTOVC(ssp); in smb_share_getpass()
902 smb_share_getinfo(struct smb_share *ssp, struct smb_share_info *sip) in smb_share_getinfo() argument
906 sip->usecount = ssp->obj.co_usecount; in smb_share_getinfo()
907 sip->tid = ssp->ss_tid; in smb_share_getinfo()
908 sip->type= ssp->ss_type; in smb_share_getinfo()
909 sip->uid = ssp->ss_uid; in smb_share_getinfo()
910 sip->gid = ssp->ss_grp; in smb_share_getinfo()
911 sip->mode= ssp->ss_mode; in smb_share_getinfo()
912 sip->flags = ssp->obj.co_flags; in smb_share_getinfo()
913 snprintf(sip->sname, sizeof(sip->sname), "%s", ssp->ss_name); in smb_share_getinfo()
925 struct smb_share *ssp; in smb_sysctl_treedump() local
948 ssp = (struct smb_share *)scp2; in smb_sysctl_treedump()
949 error = smb_share_lock(ssp); in smb_sysctl_treedump()
954 smb_share_getinfo(ssp, &ssi); in smb_sysctl_treedump()
955 smb_share_unlock(ssp); in smb_sysctl_treedump()