Print this page
NEX-16824 SMB client connection setup rework
NEX-17232 SMB client reconnect failures
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
and: (improve debug)


  15  *    This product includes software developed by Boris Popov.
  16  * 4. Neither the name of the author nor the names of any co-contributors
  17  *    may be used to endorse or promote products derived from this software
  18  *    without specific prior written permission.
  19  *
  20  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30  * SUCH DAMAGE.
  31  *
  32  * $Id: smb_trantcp.h,v 1.8 2004/08/03 23:50:01 lindak Exp $
  33  */
  34 /*
  35  * Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
  36  */
  37 #ifndef _NETSMB_SMB_TRANTCP_H_
  38 #define _NETSMB_SMB_TRANTCP_H_
  39 
  40 enum nbstate {
  41         NBST_CLOSED,

  42         NBST_RQSENT,
  43         NBST_SESSION,
  44         NBST_RETARGET,
  45         NBST_REFUSED
  46 };
  47 
  48 
  49 /*
  50  * socket specific data
  51  */
  52 struct nbpcb {
  53         struct smb_vc   *nbp_vc;
  54         struct tiuser   *nbp_tiptr;     /* KTLI transport handle... */
  55         mblk_t          *nbp_frag;      /* left-over from last recv */
  56 
  57         struct sockaddr_nb *nbp_laddr;  /* local address */
  58         struct sockaddr_nb *nbp_paddr;  /* peer address */
  59         void            *nbp_selectid;
  60         cred_t          *nbp_cred;
  61 




  15  *    This product includes software developed by Boris Popov.
  16  * 4. Neither the name of the author nor the names of any co-contributors
  17  *    may be used to endorse or promote products derived from this software
  18  *    without specific prior written permission.
  19  *
  20  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30  * SUCH DAMAGE.
  31  *
  32  * $Id: smb_trantcp.h,v 1.8 2004/08/03 23:50:01 lindak Exp $
  33  */
  34 /*
  35  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  36  */
  37 #ifndef _NETSMB_SMB_TRANTCP_H_
  38 #define _NETSMB_SMB_TRANTCP_H_
  39 
  40 enum nbstate {
  41         NBST_CLOSED,
  42         NBST_IDLE,
  43         NBST_RQSENT,
  44         NBST_SESSION,
  45         NBST_RETARGET,
  46         NBST_REFUSED
  47 };
  48 
  49 
  50 /*
  51  * socket specific data
  52  */
  53 struct nbpcb {
  54         struct smb_vc   *nbp_vc;
  55         struct tiuser   *nbp_tiptr;     /* KTLI transport handle... */
  56         mblk_t          *nbp_frag;      /* left-over from last recv */
  57 
  58         struct sockaddr_nb *nbp_laddr;  /* local address */
  59         struct sockaddr_nb *nbp_paddr;  /* peer address */
  60         void            *nbp_selectid;
  61         cred_t          *nbp_cred;
  62