@@ -1270,6 +1270,7 @@ struct on_incoming_publish_user_data {
1270
1270
struct aws_allocator * allocator ;
1271
1271
1272
1272
struct aws_request_response_streaming_operation_binding * binding_ref ;
1273
+ struct aws_byte_buf topic ;
1273
1274
struct aws_byte_buf * payload ;
1274
1275
};
1275
1276
@@ -1280,6 +1281,8 @@ static void s_on_incoming_publish_user_data_destroy(struct on_incoming_publish_u
1280
1281
1281
1282
user_data -> binding_ref = s_aws_request_response_streaming_operation_binding_release (user_data -> binding_ref );
1282
1283
1284
+ aws_byte_buf_clean_up (& user_data -> topic );
1285
+
1283
1286
if (user_data -> payload != NULL ) {
1284
1287
aws_byte_buf_clean_up (user_data -> payload );
1285
1288
aws_mem_release (user_data -> allocator , user_data -> payload );
@@ -1290,12 +1293,17 @@ static void s_on_incoming_publish_user_data_destroy(struct on_incoming_publish_u
1290
1293
1291
1294
static struct on_incoming_publish_user_data * s_on_incoming_publish_user_data_new (
1292
1295
struct aws_request_response_streaming_operation_binding * binding ,
1296
+ struct aws_byte_cursor topic ,
1293
1297
struct aws_byte_cursor payload ) {
1294
1298
1295
1299
struct on_incoming_publish_user_data * user_data =
1296
1300
aws_mem_calloc (binding -> allocator , 1 , sizeof (struct on_incoming_publish_user_data ));
1297
1301
user_data -> allocator = binding -> allocator ;
1298
1302
1303
+ if (aws_byte_buf_init_copy_from_cursor (& user_data -> topic , binding -> allocator , topic )) {
1304
+ goto error ;
1305
+ }
1306
+
1299
1307
user_data -> payload = aws_mem_calloc (binding -> allocator , 1 , sizeof (struct aws_byte_buf ));
1300
1308
if (aws_byte_buf_init_copy_from_cursor (user_data -> payload , binding -> allocator , payload )) {
1301
1309
goto error ;
@@ -1325,6 +1333,11 @@ static int s_aws_create_napi_value_from_incoming_publish_event(
1325
1333
AWS_NAPI_CALL (
1326
1334
env , napi_create_object (env , & napi_event ), { return aws_raise_error (AWS_CRT_NODEJS_ERROR_NAPI_FAILURE ); });
1327
1335
1336
+ struct aws_byte_cursor topic_cursor = aws_byte_cursor_from_buf (& publish_event -> topic );
1337
+ if (aws_napi_attach_object_property_string (napi_event , env , AWS_NAPI_KEY_TOPIC , topic_cursor )) {
1338
+ return AWS_OP_ERR ;
1339
+ }
1340
+
1328
1341
if (aws_napi_attach_object_property_binary_as_finalizable_external (
1329
1342
napi_event , env , AWS_NAPI_KEY_PAYLOAD , publish_event -> payload )) {
1330
1343
return AWS_OP_ERR ;
@@ -1386,10 +1399,14 @@ static void s_napi_mqtt_streaming_operation_on_incoming_publish(
1386
1399
s_on_incoming_publish_user_data_destroy (publish_event );
1387
1400
}
1388
1401
1389
- static void s_mqtt_streaming_operation_on_incoming_publish (struct aws_byte_cursor payload , void * user_data ) {
1402
+ static void s_mqtt_streaming_operation_on_incoming_publish (
1403
+ struct aws_byte_cursor payload ,
1404
+ struct aws_byte_cursor topic ,
1405
+ void * user_data ) {
1390
1406
struct aws_request_response_streaming_operation_binding * binding = user_data ;
1391
1407
1392
- struct on_incoming_publish_user_data * incoming_publish_ud = s_on_incoming_publish_user_data_new (binding , payload );
1408
+ struct on_incoming_publish_user_data * incoming_publish_ud =
1409
+ s_on_incoming_publish_user_data_new (binding , topic , payload );
1393
1410
if (incoming_publish_ud == NULL ) {
1394
1411
return ;
1395
1412
}
0 commit comments