Print this page
XXXX adding PID information to netstat output

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip/ipclassifier.c
          +++ new/usr/src/uts/common/inet/ip/ipclassifier.c
↓ open down ↓ 2714 lines elided ↑ open up ↑
2715 2715          last++;
2716 2716          if (last == CONN_TRACE_MAX)
2717 2717                  last = 0;
2718 2718  
2719 2719          ctb = &connp->conn_trace_buf[last];
2720 2720          ctb->ctb_depth = getpcstack(ctb->ctb_stack, CONN_STACK_DEPTH);
2721 2721          connp->conn_trace_last = last;
2722 2722          return (1);
2723 2723  }
2724 2724  #endif
     2725 +
     2726 +mblk_t *
     2727 +conn_get_pid_mblk(conn_t *connp)
     2728 +{
     2729 +        mblk_t *mblk;
     2730 +        conn_pid_info_t *cpi;
     2731 +
     2732 +        if (connp->conn_upper_handle != NULL) {
     2733 +                return (*connp->conn_upcalls->su_get_sock_pid_mblk)
     2734 +                    (connp->conn_upper_handle);
     2735 +        } else if (!IPCL_IS_NONSTR(connp) && connp->conn_rq != NULL &&
     2736 +            connp->conn_rq->q_stream != NULL) {
     2737 +                return (sh_get_pid_mblk(connp->conn_rq->q_stream));
     2738 +        }
     2739 +
     2740 +        /* return an empty mblk */
     2741 +        if ((mblk = allocb(sizeof (conn_pid_info_t), BPRI_HI)) == NULL)
     2742 +                return (NULL);
     2743 +        mblk->b_wptr += sizeof (conn_pid_info_t);
     2744 +        cpi = (conn_pid_info_t *)mblk->b_datap->db_base;
     2745 +        cpi->cpi_magic = CONN_PID_INFO_MGC;
     2746 +        cpi->cpi_contents = CONN_PID_INFO_NON;
     2747 +        cpi->cpi_pids_cnt = 0;
     2748 +        cpi->cpi_tot_size = sizeof (conn_pid_info_t);
     2749 +        cpi->cpi_pids[0] = 0;
     2750 +        return (mblk);
     2751 +}
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX