Skip to content

Commit cc6ef26

Browse files
authored
Add support for more WASM_EXPORT overrides in the Null VM (proxy-wasm#31)
Signed-off-by: John Plevyak <[email protected]>
1 parent b6c4b81 commit cc6ef26

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

include/proxy-wasm/null_plugin.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ namespace proxy_wasm {
3838
* Registry for Plugin implementation.
3939
*/
4040
struct NullPluginRegistry {
41+
void (*proxy_abi_version_0_1_0_)() = nullptr;
42+
void (*proxy_on_log_)(uint32_t context_id) = nullptr;
4143
uint32_t (*proxy_validate_configuration_)(uint32_t root_context_id,
4244
uint32_t plugin_configuration_size) = nullptr;
4345
void (*proxy_on_context_create_)(uint32_t context_id, uint32_t parent_context_id) = nullptr;
@@ -127,14 +129,21 @@ class NullPlugin : public NullVmPlugin {
127129
extern NullPluginRegistry *context_registry_; \
128130
struct RegisterContextFactory { \
129131
explicit RegisterContextFactory(null_plugin::ContextFactory context_factory, \
130-
null_plugin::RootFactory root_factory = nullptr, \
132+
null_plugin::RootFactory root_factory, \
131133
StringView root_id = "") { \
132134
if (!context_registry_) { \
133135
context_registry_ = new NullPluginRegistry; \
134136
} \
135137
context_registry_->context_factories[std::string(root_id)] = context_factory; \
136138
context_registry_->root_factories[std::string(root_id)] = root_factory; \
137139
} \
140+
explicit RegisterContextFactory(null_plugin::ContextFactory context_factory, \
141+
StringView root_id = "") { \
142+
if (!context_registry_) { \
143+
context_registry_ = new NullPluginRegistry; \
144+
} \
145+
context_registry_->context_factories[std::string(root_id)] = context_factory; \
146+
} \
138147
explicit RegisterContextFactory(null_plugin::RootFactory root_factory, \
139148
StringView root_id = "") { \
140149
if (!context_registry_) { \

src/null/null_plugin.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,13 @@ void NullPlugin::onForeignFunction(uint64_t context_id, uint64_t foreign_functio
468468
getContextBase(context_id)->onForeignFunction(foreign_function_id, data_size);
469469
}
470470

471-
void NullPlugin::onLog(uint64_t context_id) { getContext(context_id)->onLog(); }
471+
void NullPlugin::onLog(uint64_t context_id) {
472+
if (registry_->proxy_on_log_) {
473+
registry_->proxy_on_log_(context_id);
474+
return;
475+
}
476+
getContext(context_id)->onLog();
477+
}
472478

473479
uint64_t NullPlugin::onDone(uint64_t context_id) {
474480
if (registry_->proxy_on_done_) {

0 commit comments

Comments
 (0)