Lines Matching refs:ssp

157 		vcspec->ssp = NULL;
160 &vcspec->ssp);
183 struct smb_share *ssp = NULL;
207 error = smb_share_create(vcp, shspec, scred, &ssp);
210 error = smb_smb_treeconnect(ssp, scred);
212 vcspec->ssp = ssp;
214 smb_share_put(ssp, scred);
612 smb_vc_cmpshare(struct smb_share *ssp, struct smb_sharespec *dp)
616 if (strcmp(ssp->ss_name, dp->name) != 0)
619 if (ssp->ss_uid != dp->owner)
624 if (ssp->ss_grp != dp->group)
632 return (dp->mode & SMBM_MASK) == ssp->ss_mode ? 0 : 1;
634 if (smb_share_access(ssp, dp->scred, dp->mode) != 0)
648 struct smb_share *ssp = NULL;
654 ssp = (struct smb_share *)scp;
655 error = smb_share_lock(ssp);
658 if (smb_vc_cmpshare(ssp, dp) == 0)
660 smb_share_unlock(ssp);
662 if (ssp) {
663 smb_share_ref(ssp);
664 *sspp = ssp;
743 struct smb_share *ssp;
758 error = smb_vc_lookupshare(vcp, shspec, scred, &ssp);
760 smb_share_put(ssp, scred);
767 ssp = smb_zmalloc(sizeof(*ssp), M_SMBCONN, M_WAITOK);
768 smb_co_init(SSTOCP(ssp), SMBL_SHARE, "smbss ilock", "smbss");
769 ssp->obj.co_free = smb_share_free;
770 ssp->obj.co_gone = smb_share_gone;
771 smb_sl_init(&ssp->ss_stlock, "ssstlock");
772 ssp->ss_name = smb_strdup(shspec->name);
774 ssp->ss_pass = smb_strdup(shspec->pass);
775 ssp->ss_type = shspec->stype;
776 ssp->ss_tid = SMB_TID_UNKNOWN;
777 ssp->ss_uid = uid;
778 ssp->ss_grp = gid;
779 ssp->ss_mode = shspec->rights & SMBM_MASK;
780 smb_co_addchild(VCTOCP(vcp), SSTOCP(ssp));
781 *sspp = ssp;
788 struct smb_share *ssp = CPTOSS(cp);
790 SMB_STRFREE(ssp->ss_name);
791 SMB_STRFREE(ssp->ss_pass);
792 smb_sl_destroy(&ssp->ss_stlock);
793 smb_co_done(SSTOCP(ssp));
794 free(ssp, M_SMBCONN);
800 struct smb_share *ssp = CPTOSS(cp);
802 smb_smb_treedisconnect(ssp, scred);
806 smb_share_ref(struct smb_share *ssp)
808 smb_co_ref(SSTOCP(ssp));
812 smb_share_rele(struct smb_share *ssp, struct smb_cred *scred)
814 smb_co_rele(SSTOCP(ssp), scred);
818 smb_share_get(struct smb_share *ssp, struct smb_cred *scred)
820 struct smb_connobj *cp = SSTOCP(ssp);
830 smb_share_put(struct smb_share *ssp, struct smb_cred *scred)
833 smb_co_put(SSTOCP(ssp), scred);
837 smb_share_lock(struct smb_share *ssp)
842 cp = SSTOCP(ssp);
850 smb_share_unlock(struct smb_share *ssp)
854 cp = SSTOCP(ssp);
861 smb_share_access(struct smb_share *ssp, struct smb_cred *scred, mode_t mode)
865 if (smb_suser(cred) == 0 || cred->cr_uid == ssp->ss_uid)
868 if (!groupmember(ssp->ss_grp, cred))
870 return (ssp->ss_mode & mode) == mode ? 0 : EACCES;
874 smb_share_invalidate(struct smb_share *ssp)
876 ssp->ss_tid = SMB_TID_UNKNOWN;
880 smb_share_valid(struct smb_share *ssp)
882 return ssp->ss_tid != SMB_TID_UNKNOWN &&
883 ssp->ss_vcgenid == SSTOVC(ssp)->vc_genid;
887 smb_share_getpass(struct smb_share *ssp)
891 if (ssp->ss_pass)
892 return ssp->ss_pass;
893 vcp = SSTOVC(ssp);
900 smb_share_getinfo(struct smb_share *ssp, struct smb_share_info *sip)
904 sip->usecount = ssp->obj.co_usecount;
905 sip->tid = ssp->ss_tid;
906 sip->type= ssp->ss_type;
907 sip->uid = ssp->ss_uid;
908 sip->gid = ssp->ss_grp;
909 sip->mode= ssp->ss_mode;
910 sip->flags = ssp->obj.co_flags;
911 snprintf(sip->sname, sizeof(sip->sname), "%s", ssp->ss_name);
923 struct smb_share *ssp;
946 ssp = (struct smb_share *)scp2;
947 error = smb_share_lock(ssp);
952 smb_share_getinfo(ssp, &ssi);
953 smb_share_unlock(ssp);