⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test-tirdwr.c

📁 This a separate release of the OpenSS7 X/Open XTI/TLI library, TLI modules (timod, tirdwr) and the I
💻 C
📖 第 1 页 / 共 5 页
字号:
			}			ret = __TEST_DATA_IND;			break;		case T_EXDATA_IND:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_EXDATA_IND------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_EXDATA_IND;			break;		case T_INFO_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_INFO_ACK--------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_INFO_ACK;			break;		case T_BIND_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_BIND_ACK--------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_BIND_ACK;			break;		case T_ERROR_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_ERROR_ACK-------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_ERROR_ACK;			break;		case T_OK_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_OK_ACK----------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_OK_ACK;			break;		case T_UNITDATA_IND:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_UNITDATA_REQ----|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_UNITDATA_IND;			break;		case T_UDERROR_IND:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_UDERROR_IND-----|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_UDERROR_IND;			break;		case T_OPTMGMT_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_OPTMGMT_ACK-----|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_OPTMGMT_ACK;			break;		case T_ORDREL_IND:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_ORDREL_IND------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_ORDREL_IND;			break;		case T_OPTDATA_IND:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_OPTDATA_IND-----|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			if (p->optdata_ind.DATA_flag & T_ODF_EX)				ret = __TEST_EXP_OPTDATA_IND;			else				ret = __TEST_NRM_OPTDATA_IND;			break;		case T_ADDR_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_ADDR_ACK--------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_ADDR_ACK;			break;		case T_CAPABILITY_ACK:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_CPABILITY_ACK---|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_CAPABILITY_ACK;			break;		default:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "<-T_????_???--------|  |                               |                    [%d]\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = DECODEERROR;			break;		}		if (data && data->len >= 0)			if (do_decode_data(fd, data) != __TEST_DATA)				return (FAILURE);		return (ret);	}	if (fd == bot_fd) {		switch (p->type) {		case T_CONN_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_CONN_REQ------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_CONN_REQ;			break;		case T_CONN_RES:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_CONN_RES------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_CONN_RES;			break;		case T_DISCON_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_DISCON_REQ----> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_DISCON_REQ;			break;		case T_DATA_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_DATA_REQ------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_DATA_REQ;			break;		case T_EXDATA_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_EXDATA_REQ----> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_EXDATA_REQ;			break;		case T_INFO_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_INFO_REQ------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_INFO_REQ;			break;		case T_BIND_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_BIND_REQ------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_BIND_REQ;			break;		case T_UNBIND_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_UNBIND_REQ----> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_UNBIND_REQ;			break;		case T_UNITDATA_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_UNITDATA_REQ--> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_UNITDATA_REQ;			break;		case T_OPTMGMT_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_OPTMGMT_REQ---> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_OPTMGMT_REQ;			break;		case T_ORDREL_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_ORDREL_REQ----> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_ORDREL_REQ;			break;		case T_OPTDATA_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_OPTDATA_REQ---> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_OPTDATA_REQ;			break;		case T_ADDR_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_ADDR_REQ------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_ADDR_REQ;			break;		case T_CAPABILITY_REQ:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_CAPABILITY_REQ> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = __TEST_CAPABILITY_REQ;			break;		default:			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "                    |  |- - - - - - - - - - - - - - - >|--T_????_???------> (%d)\n", state);				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}			ret = DECODEERROR;			break;		}		if (data && data->len >= 0)			if (do_decode_data(fd, data) != __TEST_DATA)				return (FAILURE);		return (ret);	}	return (DECODEERROR);}static inttop_decode_data(struct strbuf *data){	return do_decode_data(top_fd, data);}static inttop_decode_ctrl(struct strbuf *ctrl, struct strbuf *data){	return do_decode_ctrl(top_fd, ctrl, data);}static intbot_decode_data(struct strbuf *data){	return do_decode_data(bot_fd, data);}static intbot_decode_ctrl(struct strbuf *ctrl, struct strbuf *data){	return do_decode_ctrl(bot_fd, ctrl, data);}#define IUT 0x00000001UL#define PT  0x00000002UL#define ANY 0x00000003ULstatic inttop_get_data(int action){	int ret;	switch (action) {	case __TEST_READ:	{		char buf[BUFSIZE];		if (verbose) {			lockf(fileno(stdout), F_LOCK, 0);			fprintf(stdout, "<-read(2)-----------|  |                               |                    [%d]\n", state);			fflush(stdout);			lockf(fileno(stdout), F_ULOCK, 0);		}		if ((ret = read(top_fd, buf, BUFSIZE)) < 0) {			last_errno = errno;			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "***************ERROR: read failed\n");				fprintf(stdout, "                    : %s; %s\n", __FUNCTION__, strerror(last_errno));				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}		}		break;	}	case __TEST_READV:	{		char buf[BUFSIZE];		static const size_t count = 4;		struct iovec vector[] = {			{buf, (BUFSIZE >> 2)},			{buf + (BUFSIZE >> 2), (BUFSIZE >> 2)},			{buf + (BUFSIZE >> 2) + (BUFSIZE >> 2), (BUFSIZE >> 2)},			{buf + (BUFSIZE >> 2) + (BUFSIZE >> 2) + (BUFSIZE >> 2), (BUFSIZE >> 2)}		};		if (verbose) {			lockf(fileno(stdout), F_LOCK, 0);			fprintf(stdout, "<-readv(2)----------|  |                               |                    [%d]\n", state);			fflush(stdout);			lockf(fileno(stdout), F_ULOCK, 0);		}		if ((ret = readv(top_fd, vector, count)) < 0) {			last_errno = errno;			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "***************ERROR: readv failed\n");				fprintf(stdout, "                    : %s; %s\n", __FUNCTION__, strerror(last_errno));				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}		}		break;	}	case __TEST_GETMSG:	{		char buf[BUFSIZE];		struct strbuf data = { BUFSIZE, 0, buf };		int flag = 0;		if (verbose) {			lockf(fileno(stdout), F_LOCK, 0);			fprintf(stdout, "<-getmsg(2)---------|  |                               |                    [%d]\n", state);			fflush(stdout);			lockf(fileno(stdout), F_ULOCK, 0);		}		if ((ret = getmsg(top_fd, NULL, &data, &flag)) < 0) {			last_errno = errno;			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "***************ERROR: getmsg failed\n");				fprintf(stdout, "                    : %s; %s\n", __FUNCTION__, strerror(last_errno));				fflush(stdout);				lockf(fileno(stdout), F_ULOCK, 0);			}		} else			ret = data.len;		break;	}	case __TEST_GETPMSG:	{		char buf[BUFSIZE];		struct strbuf data = { BUFSIZE, 0, buf };		int band = 0;		int flag = 0;		if (verbose) {			lockf(fileno(stdout), F_LOCK, 0);			fprintf(stdout, "<-getpmsg(2)--------|  |                               |                    [%d]\n", state);			fflush(stdout);			lockf(fileno(stdout), F_ULOCK, 0);		}		if ((ret = getpmsg(top_fd, NULL, &data, &band, &flag)) < 0) {			last_errno = errno;			if (verbose) {				lockf(fileno(stdout), F_LOCK, 0);				fprintf(stdout, "***************ERROR: ge

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -