--- ../mqseries-0.14.2/mqseries.c 2015-07-28 21:31:07.000000000 +0200 +++ mqseries.c 2016-01-31 04:30:27.331632632 +0100 @@ -566,6 +566,7 @@ mqseries_descriptor *mqdesc; mqseries_obj *mqobj; zval *z_mqdesc, *z_mqobj, *z_msg_desc, *z_get_msg_opts, *z_comp_code, *z_reason, *z_data_length, *z_buffer; + zval *z_hdr; MQLONG comp_code; MQLONG reason; @@ -575,12 +576,13 @@ MQMD msg_desc = { MQMD_DEFAULT }; /* Message descriptor */ MQGMO get_msg_opts = { MQGMO_DEFAULT }; /* Options which control the MQGET call */ - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rraalzzzz", &z_mqdesc, &z_mqobj, &z_msg_desc, &z_get_msg_opts, &buf_len, &z_buffer, &z_data_length, &z_comp_code, &z_reason) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rraalzzzzz", &z_mqdesc, &z_mqobj, &z_msg_desc, &z_get_msg_opts, &buf_len, &z_buffer, &z_data_length, &z_comp_code, &z_reason, &z_hdr) == FAILURE) { return; } if (!_mqseries_is_called_by_ref(z_data_length, "dataLength")) return; if (!_mqseries_is_called_by_ref(z_buffer, "buffer")) return; + //if( !_mqseries_is_called_by_ref(z_hdr, "header" )) return; if (!_mqseries_is_compcode_reason_ref(z_comp_code, z_reason)) return; @@ -596,16 +598,23 @@ if (!strncmp(msg_desc.Format, MQFMT_RF_HEADER, sizeof(msg_desc.Format))) { MQRFH rfh = {MQRFH_DEFAULT}; memcpy(&rfh, buf, MQRFH_STRUC_LENGTH_FIXED); + zval_dtor( z_hdr ); + ZVAL_STRINGL( z_hdr, (char *)buf, rfh.StrucLength, 1); data = buf + rfh.StrucLength; buf_len -= rfh.StrucLength; } else if (!strncmp(msg_desc.Format, MQFMT_RF_HEADER_2, sizeof(msg_desc.Format))) { MQRFH2 rfh2 = {MQRFH2_DEFAULT}; memcpy(&rfh2, buf, MQRFH_STRUC_LENGTH_FIXED_2); + zval_dtor( z_hdr ); + ZVAL_STRINGL( z_hdr, (char *)buf, rfh2.StrucLength,1); + data = buf + rfh2.StrucLength; buf_len -= rfh2.StrucLength; } else if (!strncmp(msg_desc.Format, MQFMT_MD_EXTENSION, sizeof(msg_desc.Format))) { MQMDE rfhe = { MQMDE_DEFAULT }; memcpy(&rfhe, buf, MQMDE_LENGTH_2); + zval_dtor( z_hdr ); + ZVAL_STRINGL( z_hdr, (char *)buf, rfhe.StrucLength, 1); data = buf + rfhe.StrucLength; buf_len -= rfhe.StrucLength; }