static int smb_rap_rqparam(struct smb_rap *rap, char ptype, char plen, long value) { char *p = rap->r_npbuf; int len; switch (ptype) { case 'L': case 'W': setwle(p, 0, value); len = 2; break; case 'D': setdle(p, 0, value); len = 4; break; case 'b': memset(p, value, plen); len = plen; default: return EINVAL; } rap->r_npbuf += len; rap->r_plen += len; return 0; }
int mb_put_uint32le(struct mbdata *mbp, u_int32_t x) { MB_PUT(u_int32_t); setdle(p, 0, x); return 0; }
/* * Make a signature for the current packet and add it at the end of the * packet. */ static int ncp_sign_packet(struct ncp_conn *conn, struct ncp_rq *rqp, int *size) { u_char data[64]; int error; bzero(data, sizeof(data)); bcopy(conn->sign_root, data, 8); setdle(data, 8, *size); m_copydata(rqp->rq.mb_top, sizeof(struct ncp_rqhdr) - 1, min((*size) - sizeof(struct ncp_rqhdr)+1, 52), data + 12); ncp_sign(conn->sign_state, data, conn->sign_state); error = mb_put_mem(&rqp->rq, (caddr_t)conn->sign_state, 8, MB_MSYSTEM); if (error) return error; (*size) += 8; return 0; }
void ncp_add_dword_lh(struct ncp_buf *conn, u_int32_t x) { setdle(conn->packet, conn->rqsize, x); conn->rqsize += 4; return; }