Lines Matching refs:ssp

151 		vcspec->ssp = NULL;
154 &vcspec->ssp);
177 struct smb_share *ssp = NULL;
201 error = smb_share_create(vcp, shspec, scred, &ssp);
204 error = smb_smb_treeconnect(ssp, scred);
206 vcspec->ssp = ssp;
208 smb_share_put(ssp, scred);
583 smb_vc_cmpshare(struct smb_share *ssp, struct smb_sharespec *dp)
587 if (strcmp(ssp->ss_name, dp->name) != 0)
590 if (ssp->ss_uid != dp->owner)
595 if (ssp->ss_grp != dp->group)
603 return (dp->mode & SMBM_MASK) == ssp->ss_mode ? 0 : 1;
605 if (smb_share_access(ssp, dp->scred, dp->mode) != 0)
619 struct smb_share *ssp = NULL;
625 ssp = (struct smb_share *)scp;
626 error = smb_share_lock(ssp, LK_EXCLUSIVE);
629 if (smb_vc_cmpshare(ssp, dp) == 0)
631 smb_share_unlock(ssp, 0);
633 if (ssp) {
634 smb_share_ref(ssp);
635 *sspp = ssp;
712 struct smb_share *ssp;
727 error = smb_vc_lookupshare(vcp, shspec, scred, &ssp);
729 smb_share_put(ssp, scred);
736 ssp = smb_zmalloc(sizeof(*ssp), M_SMBCONN, M_WAITOK);
737 smb_co_init(SSTOCP(ssp), SMBL_SHARE, "smbss ilock", "smbss");
738 ssp->obj.co_free = smb_share_free;
739 ssp->obj.co_gone = smb_share_gone;
740 smb_sl_init(&ssp->ss_stlock, "ssstlock");
741 ssp->ss_name = smb_strdup(shspec->name);
743 ssp->ss_pass = smb_strdup(shspec->pass);
744 ssp->ss_type = shspec->stype;
745 ssp->ss_tid = SMB_TID_UNKNOWN;
746 ssp->ss_uid = uid;
747 ssp->ss_grp = gid;
748 ssp->ss_mode = shspec->rights & SMBM_MASK;
749 smb_co_addchild(VCTOCP(vcp), SSTOCP(ssp));
750 *sspp = ssp;
757 struct smb_share *ssp = CPTOSS(cp);
759 SMB_STRFREE(ssp->ss_name);
760 SMB_STRFREE(ssp->ss_pass);
761 smb_sl_destroy(&ssp->ss_stlock);
762 smb_co_done(SSTOCP(ssp));
763 free(ssp, M_SMBCONN);
769 struct smb_share *ssp = CPTOSS(cp);
771 smb_smb_treedisconnect(ssp, scred);
775 smb_share_ref(struct smb_share *ssp)
777 smb_co_ref(SSTOCP(ssp));
781 smb_share_rele(struct smb_share *ssp, struct smb_cred *scred)
783 smb_co_rele(SSTOCP(ssp), scred);
787 smb_share_get(struct smb_share *ssp, int flags, struct smb_cred *scred)
789 return smb_co_get(SSTOCP(ssp), flags, scred);
793 smb_share_put(struct smb_share *ssp, struct smb_cred *scred)
795 smb_co_put(SSTOCP(ssp), scred);
799 smb_share_lock(struct smb_share *ssp, int flags)
801 return smb_co_lock(SSTOCP(ssp), flags);
805 smb_share_unlock(struct smb_share *ssp, int flags)
807 smb_co_unlock(SSTOCP(ssp), flags);
811 smb_share_access(struct smb_share *ssp, struct smb_cred *scred, mode_t mode)
815 if (smb_suser(cred) == 0 || cred->cr_uid == ssp->ss_uid)
818 if (!groupmember(ssp->ss_grp, cred))
820 return (ssp->ss_mode & mode) == mode ? 0 : EACCES;
824 smb_share_invalidate(struct smb_share *ssp)
826 ssp->ss_tid = SMB_TID_UNKNOWN;
830 smb_share_valid(struct smb_share *ssp)
832 return ssp->ss_tid != SMB_TID_UNKNOWN &&
833 ssp->ss_vcgenid == SSTOVC(ssp)->vc_genid;
837 smb_share_getpass(struct smb_share *ssp)
841 if (ssp->ss_pass)
842 return ssp->ss_pass;
843 vcp = SSTOVC(ssp);
850 smb_share_getinfo(struct smb_share *ssp, struct smb_share_info *sip)
854 sip->usecount = ssp->obj.co_usecount;
855 sip->tid = ssp->ss_tid;
856 sip->type= ssp->ss_type;
857 sip->uid = ssp->ss_uid;
858 sip->gid = ssp->ss_grp;
859 sip->mode= ssp->ss_mode;
860 sip->flags = ssp->obj.co_flags;
861 snprintf(sip->sname, sizeof(sip->sname), "%s", ssp->ss_name);
875 struct smb_share *ssp;
899 ssp = (struct smb_share *)scp2;
900 error = smb_share_lock(ssp, LK_SHARED);
905 smb_share_getinfo(ssp, &ssi);
906 smb_share_unlock(ssp, 0);