11
11
#include "php_hash.h"
12
12
#include "php_user_instrument.h"
13
13
#include "fw_drupal_common.h"
14
+ #include "nr_errors.h"
14
15
#include "nr_rum.h"
15
16
#include "util_logging.h"
16
17
#include "util_memory.h"
@@ -71,16 +72,17 @@ PHP_FUNCTION(newrelic_notice_error) {
71
72
const char * errclass = "NoticedError" ;
72
73
char * errormsgstr = NULL ;
73
74
nr_string_len_t errormsglen = 0 ;
74
- zend_long error_number = 0 ;
75
- char * error_file = NULL ;
76
- nr_string_len_t error_file_len = 0 ;
77
- zend_long error_line = 0 ;
75
+ char * user_error_message = NULL ;
76
+ nr_string_len_t user_error_message_len = 0 ;
77
+ zend_long user_error_number = 0 ;
78
+ char * user_error_file = NULL ;
79
+ nr_string_len_t user_error_file_len = 0 ;
80
+ zend_long user_error_line = 0 ;
78
81
zval * exc = NULL ;
79
- nr_string_len_t error_context_len = 0 ;
80
- char * error_context = NULL ;
82
+ nr_string_len_t user_error_context_len = 0 ;
83
+ char * user_error_context = NULL ;
81
84
int priority = 0 ;
82
- zval * ignore = NULL ;
83
- bool determine = false;
85
+ bool five_params = false;
84
86
85
87
NR_UNUSED_RETURN_VALUE ;
86
88
NR_UNUSED_RETURN_VALUE_PTR ;
@@ -134,11 +136,11 @@ PHP_FUNCTION(newrelic_notice_error) {
134
136
case 2 :
135
137
if (FAILURE
136
138
== zend_parse_parameters_ex (ZEND_PARSE_PARAMS_QUIET ,
137
- ZEND_NUM_ARGS () TSRMLS_CC , "zo! " , & ignore ,
139
+ ZEND_NUM_ARGS () TSRMLS_CC , "s!o! " , & user_error_message , & user_error_message_len ,
138
140
& exc )) {
139
141
nrl_debug (NRL_API ,
140
142
"newrelic_notice_error: invalid two arguments: expected "
141
- "exception as second argument" );
143
+ "string as first argument and exception as second argument" );
142
144
RETURN_NULL ();
143
145
}
144
146
break ;
@@ -147,13 +149,13 @@ PHP_FUNCTION(newrelic_notice_error) {
147
149
if (FAILURE
148
150
== zend_parse_parameters_ex (ZEND_PARSE_PARAMS_QUIET ,
149
151
ZEND_NUM_ARGS () TSRMLS_CC , "ls!s!ls!" ,
150
- & error_number , & errormsgstr , & errormsglen ,
151
- & error_file , & error_file_len , & error_line ,
152
- & error_context , & error_context_len )) {
152
+ & user_error_number , & user_error_message , & user_error_message_len ,
153
+ & user_error_file , & user_error_file_len , & user_error_line ,
154
+ & user_error_context , & user_error_context_len )) {
153
155
nrl_debug (NRL_API , "newrelic_notice_error: invalid five arguments" );
154
156
RETURN_NULL ();
155
157
}
156
- determine = true;
158
+ five_params = true;
157
159
break ;
158
160
159
161
default :
@@ -172,11 +174,14 @@ PHP_FUNCTION(newrelic_notice_error) {
172
174
}
173
175
}
174
176
175
- if (determine ) {
177
+ if (five_params ) {
178
+ nr_user_error_t * user_error = nr_user_error_create (
179
+ user_error_message , user_error_number , user_error_file , user_error_line ,
180
+ user_error_context );
176
181
char * stack_json = nr_php_backtrace_to_json (NULL TSRMLS_CC );
177
- nr_txn_record_error_with_additional_attributes (
178
- NRPRG ( txn ), priority , true, errormsgstr , errclass , error_file ,
179
- error_line , error_context , error_number , stack_json );
182
+ nr_txn_record_error_with_additional_attributes (NRPRG ( txn ), priority , true,
183
+ user_error_message , errclass ,
184
+ stack_json , user_error );
180
185
nr_free (stack_json );
181
186
RETURN_TRUE ;
182
187
}
0 commit comments