DLPI Programmer's Guide
146 Appendix A
Sample Programs
Connection Mode
err_ack->dl_unix_errno);
exit(1);
} else {
/*
didn't get an ERROR_ACK either; print whatever
primitive we did get
*/
printf(”error: expected primitive 0x%02x, ”,
ex_prim);
printf(”got primitive 0x%02x\n”,
err_ack->dl_primitive);
exit(1);
}
} else {
/* no control; did we get data? */
if(data_buf.len) {
/* tell user we only got data */
printf(”error: check_ctrl found only data\n”);
exit(1);
} else {
/*
no message???; well, it was probably an
interrupted system call
*/
printf(”error: check_ctrl found no message\n”);
exit(1);
}
}
}
}
/**************************************************************************
put a message consisting of only a data part on a stream
**************************************************************************/
void
put_data(fd, length)
int fd; /* file descriptor */
int length; /* length of data message */
{
/* set the len field in the strbuf structure */
data_buf.len = length;
/* call putmsg and check for an error */
if(putmsg(fd, 0, &data_buf, 0) < 0) {
printf(”error: put_data putmsg failed, errno = %d\n”, errno);
exit(1);
}
}