gpg_error_t assuan_send_data (assuan_context_t ctx, const void *buffer, size_t length) { if (!ctx) return _assuan_error (ctx, GPG_ERR_ASS_INV_VALUE); if (!buffer && length > 1) return _assuan_error (ctx, GPG_ERR_ASS_INV_VALUE); if (!buffer) { /* flush what we have */ _assuan_cookie_write_flush (ctx); if (ctx->outbound.data.error) return ctx->outbound.data.error; if (!ctx->is_server) return assuan_write_line (ctx, length == 1? "CAN":"END"); } else { _assuan_cookie_write_data (ctx, buffer, length); if (ctx->outbound.data.error) return ctx->outbound.data.error; } return 0; }
assuan_error_t assuan_send_data (assuan_context_t ctx, const void *buffer, size_t length) { if (!ctx) return ASSUAN_Invalid_Value; if (!buffer && length) return ASSUAN_Invalid_Value; if (!buffer) { /* flush what we have */ _assuan_cookie_write_flush (ctx); if (ctx->outbound.data.error) return ctx->outbound.data.error; if (!ctx->is_server) return assuan_write_line (ctx, "END"); } else { _assuan_cookie_write_data (ctx, buffer, length); if (ctx->outbound.data.error) return ctx->outbound.data.error; } return 0; }