Lines Matching +full:spec +full:-

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 2000-2001 Boris Popov
52 static void smb_usr_vcspec_free(struct smb_vcspec *spec);
55 smb_usr_vc2spec(struct smbioc_ossn *dp, struct smb_vcspec *spec) in smb_usr_vc2spec() argument
59 bzero(spec, sizeof(*spec)); in smb_usr_vc2spec()
62 if (dp->ioc_user[0] == 0) in smb_usr_vc2spec()
66 if (dp->ioc_server == NULL) in smb_usr_vc2spec()
68 if (dp->ioc_localcs[0] == 0) { in smb_usr_vc2spec()
73 spec->sap = smb_memdupin(dp->ioc_server, dp->ioc_svlen); in smb_usr_vc2spec()
74 if (spec->sap == NULL) in smb_usr_vc2spec()
76 if (dp->ioc_local) { in smb_usr_vc2spec()
77 spec->lap = smb_memdupin(dp->ioc_local, dp->ioc_lolen); in smb_usr_vc2spec()
78 if (spec->lap == NULL) { in smb_usr_vc2spec()
79 smb_usr_vcspec_free(spec); in smb_usr_vc2spec()
83 spec->srvname = dp->ioc_srvname; in smb_usr_vc2spec()
84 spec->pass = dp->ioc_password; in smb_usr_vc2spec()
85 spec->domain = dp->ioc_workgroup; in smb_usr_vc2spec()
86 spec->username = dp->ioc_user; in smb_usr_vc2spec()
87 spec->mode = dp->ioc_mode; in smb_usr_vc2spec()
88 spec->rights = dp->ioc_rights; in smb_usr_vc2spec()
89 spec->owner = dp->ioc_owner; in smb_usr_vc2spec()
90 spec->group = dp->ioc_group; in smb_usr_vc2spec()
91 spec->localcs = dp->ioc_localcs; in smb_usr_vc2spec()
92 spec->servercs = dp->ioc_servercs; in smb_usr_vc2spec()
93 if (dp->ioc_opt & SMBVOPT_PRIVATE) in smb_usr_vc2spec()
95 if (dp->ioc_opt & SMBVOPT_SINGLESHARE) in smb_usr_vc2spec()
97 spec->flags = flags; in smb_usr_vc2spec()
102 smb_usr_vcspec_free(struct smb_vcspec *spec) in smb_usr_vcspec_free() argument
104 if (spec->sap) in smb_usr_vcspec_free()
105 smb_memfree(spec->sap); in smb_usr_vcspec_free()
106 if (spec->lap) in smb_usr_vcspec_free()
107 smb_memfree(spec->lap); in smb_usr_vcspec_free()
111 smb_usr_share2spec(struct smbioc_oshare *dp, struct smb_sharespec *spec) in smb_usr_share2spec() argument
113 bzero(spec, sizeof(*spec)); in smb_usr_share2spec()
114 spec->mode = dp->ioc_mode; in smb_usr_share2spec()
115 spec->rights = dp->ioc_rights; in smb_usr_share2spec()
116 spec->owner = dp->ioc_owner; in smb_usr_share2spec()
117 spec->group = dp->ioc_group; in smb_usr_share2spec()
118 spec->name = dp->ioc_share; in smb_usr_share2spec()
119 spec->stype = dp->ioc_stype; in smb_usr_share2spec()
120 spec->pass = dp->ioc_password; in smb_usr_share2spec()
133 if (dp->ioc_level < SMBL_VC || dp->ioc_level > SMBL_SHARE) in smb_usr_lookup()
135 error = smb_usr_vc2spec(&dp->ioc_ssn, &vspec); in smb_usr_lookup()
138 if (dp->ioc_flags & SMBLK_CREATE) in smb_usr_lookup()
141 if (dp->ioc_level >= SMBL_SHARE) { in smb_usr_lookup()
142 error = smb_usr_share2spec(&dp->ioc_sh, &sspec); in smb_usr_lookup()
173 if (dp->ioc_opt & SMBVOPT_CREATE) in smb_usr_opensession()
197 if ((dp->ioc_opt & SMBSOPT_CREATE) == 0) in smb_usr_openshare()
221 switch (dp->ioc_cmd) { in smb_usr_simplerequest()
234 error = smb_rq_init(rqp, SSTOCP(ssp), dp->ioc_cmd, scred); in smb_usr_simplerequest()
239 mbp = &rqp->sr_rq; in smb_usr_simplerequest()
241 error = mb_put_mem(mbp, dp->ioc_twords, dp->ioc_twc * 2, MB_MUSER); in smb_usr_simplerequest()
246 error = mb_put_mem(mbp, dp->ioc_tbytes, dp->ioc_tbc, MB_MUSER); in smb_usr_simplerequest()
253 mdp = &rqp->sr_rp; in smb_usr_simplerequest()
255 dp->ioc_rwc = wc; in smb_usr_simplerequest()
257 if (wc > dp->ioc_rpbufsz) { in smb_usr_simplerequest()
261 error = md_get_mem(mdp, dp->ioc_rpbuf, wc, MB_MUSER); in smb_usr_simplerequest()
265 if ((wc + bc) > dp->ioc_rpbufsz) { in smb_usr_simplerequest()
269 dp->ioc_rbc = bc; in smb_usr_simplerequest()
270 error = md_get_mem(mdp, dp->ioc_rpbuf + wc, bc, MB_MUSER); in smb_usr_simplerequest()
272 dp->ioc_errclass = rqp->sr_errclass; in smb_usr_simplerequest()
273 dp->ioc_serror = rqp->sr_serror; in smb_usr_simplerequest()
274 dp->ioc_error = rqp->sr_error; in smb_usr_simplerequest()
302 if (dp->ioc_setupcnt > 3) in smb_usr_t2request()
305 error = smb_t2_init(t2p, SSTOCP(ssp), dp->ioc_setup[0], scred); in smb_usr_t2request()
310 len = t2p->t2_setupcount = dp->ioc_setupcnt; in smb_usr_t2request()
312 t2p->t2_setupdata = dp->ioc_setup; in smb_usr_t2request()
313 if (dp->ioc_name) { in smb_usr_t2request()
314 t2p->t_name = smb_strdupin(dp->ioc_name, 128); in smb_usr_t2request()
315 if (t2p->t_name == NULL) { in smb_usr_t2request()
320 t2p->t2_maxscount = 0; in smb_usr_t2request()
321 t2p->t2_maxpcount = dp->ioc_rparamcnt; in smb_usr_t2request()
322 t2p->t2_maxdcount = dp->ioc_rdatacnt; in smb_usr_t2request()
323 error = smb_cpdatain(&t2p->t2_tparam, dp->ioc_tparamcnt, dp->ioc_tparam); in smb_usr_t2request()
326 error = smb_cpdatain(&t2p->t2_tdata, dp->ioc_tdatacnt, dp->ioc_tdata); in smb_usr_t2request()
332 mdp = &t2p->t2_rparam; in smb_usr_t2request()
333 if (mdp->md_top) { in smb_usr_t2request()
334 len = m_fixhdr(mdp->md_top); in smb_usr_t2request()
335 if (len > dp->ioc_rparamcnt) { in smb_usr_t2request()
339 dp->ioc_rparamcnt = len; in smb_usr_t2request()
340 error = md_get_mem(mdp, dp->ioc_rparam, len, MB_MUSER); in smb_usr_t2request()
344 dp->ioc_rparamcnt = 0; in smb_usr_t2request()
345 mdp = &t2p->t2_rdata; in smb_usr_t2request()
346 if (mdp->md_top) { in smb_usr_t2request()
347 len = m_fixhdr(mdp->md_top); in smb_usr_t2request()
348 if (len > dp->ioc_rdatacnt) { in smb_usr_t2request()
352 dp->ioc_rdatacnt = len; in smb_usr_t2request()
353 error = md_get_mem(mdp, dp->ioc_rdata, len, MB_MUSER); in smb_usr_t2request()
355 dp->ioc_rdatacnt = 0; in smb_usr_t2request()
357 if (t2p->t_name) in smb_usr_t2request()
358 smb_strfree(t2p->t_name); in smb_usr_t2request()