diff options
Diffstat (limited to 'src/assuan-handler.c')
-rw-r--r-- | src/assuan-handler.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/assuan-handler.c b/src/assuan-handler.c index 524a8cf..13f1f9d 100644 --- a/src/assuan-handler.c +++ b/src/assuan-handler.c @@ -107,6 +107,8 @@ std_handler_input (ASSUAN_CONTEXT ctx, char *line) if (rc) return rc; ctx->input_fd = fd; + if (ctx->input_notify_fnc) + ctx->input_notify_fnc (ctx, line); return 0; } @@ -120,6 +122,8 @@ std_handler_output (ASSUAN_CONTEXT ctx, char *line) if (rc) return rc; ctx->output_fd = fd; + if (ctx->output_notify_fnc) + ctx->output_notify_fnc (ctx, line); return 0; } @@ -253,6 +257,26 @@ assuan_register_cancel_notify (ASSUAN_CONTEXT ctx, void (*fnc)(ASSUAN_CONTEXT)) return 0; } +int +assuan_register_input_notify (ASSUAN_CONTEXT ctx, + void (*fnc)(ASSUAN_CONTEXT, const char *)) +{ + if (!ctx) + return ASSUAN_Invalid_Value; + ctx->input_notify_fnc = fnc; + return 0; +} + +int +assuan_register_output_notify (ASSUAN_CONTEXT ctx, + void (*fnc)(ASSUAN_CONTEXT, const char *)) +{ + if (!ctx) + return ASSUAN_Invalid_Value; + ctx->output_notify_fnc = fnc; + return 0; +} + /* Helper to register the standards commands */ int |