11#define META_FILE_NAME "AGuard.c"
17#define META_CONTEXT_S mqctx
22#if defined(MQ_BUILD_EXAMPLE)
23 #define IDENT "AGuard"
32#define AGuardT ((typeof(MqContextC_T)) AGuardTT)
43#define check_MqError(E) if (MkErrorCheckI(E))
50#define myctx ((struct AGuardCtxS*)META_CONTEXT_S)
78#define MqReadDump_E(mqctx,dumpP) if (MkErrorCheckI(MqReadDump( MK_RT_CALL mqctx,dumpP))) goto error
126 mqctx->link.protect.bits.LIdLck =
true;
144 if (mqctx->link.protect.transSId != 0) {
197 if (mqctx->link.protect.transSId != 0) {
253 MQ_LTR rmtTransLIdOrig = mqctx->link.protect.rmtTransLId;
255 MkDLogV(mqctx,6,
"work on 'transLId=" MK_FORMAT_T
"'\n", rmtTransLIdOrig);
257 if (rmtTransLIdOrig < 0) {
262 }
else if (rmtTransLIdOrig > 0) {
316#define GuardReturn(PROC) \
318 case MK_OK: return MK_OK; \
319 case MK_CONTINUE: goto done; \
320 default: return MkErrorStack_1X (META_CONTEXT_S); \
366 mqctx->link.protect.bits.LIdLck =
true;
389 if (mqctx->link.protect.transSId > 0) {
443 if (mqctx->link.protect.transSId > 0) {
494 MQ_LTR rmtTransLIdOrig = mqctx->link.protect.rmtTransLId;
496 MkDLogV(mqctx,6,
"work on 'transLId=" MK_FORMAT_T
"'\n", rmtTransLIdOrig);
498 if (rmtTransLIdOrig < 0) {
503 }
else if (rmtTransLIdOrig > 0) {
512 mqctx->link.protect.rmtTransLId = otherLId;
537#if defined(MQ_BUILD_EXAMPLE)
538static void __attribute__ ((noreturn))
542 fprintf(stderr,
"usage: %s [OPTION]... [ARGUMENT]...\n", base);
544 fputs(
" This tool is the data protection filter of NHI1.\n", stderr);
546 fprintf(stderr,
" %s [ARGUMENT]... syntax:\n", base);
547 fprintf(stderr,
" aclient... %c %s ... [tunnel] ... %c %s ... %c aserver\n",
MK_ALFA, base,
MK_ALFA, base,
MK_ALFA);
549 fputs(
MqHelp (NULL), stderr);
551 fprintf(stderr,
" %s [OPTION]:\n", base);
552 fputs(
" -h, --help print this help\n", stderr);
594#if defined(USE_BG_ERROR)
601 MQ_CTX errctx = MkErrorGetContextI(mqctx);
617 if (mqctx->link.bits.onCreateEnd == 1) {
650#if defined(USE_BG_ERROR)
657#if defined(MQ_BUILD_EXAMPLE)
static enum MkErrorE MqReadDump(MK_RT_ARGS MQ_CTX const mqctx, struct MqDumpS **dumpP)
#define GuardReturn(PROC)
static enum MkErrorE FilterSetup(MQ_SERVICE_CALL_ARGS)
static enum MkErrorE FilterFactory(MQ_CALLBACK_FACTORY_CTOR_ARGS)
static enum MkErrorE PkgToGrp(MQ_SERVICE_CALL_ARGS)
static enum MkErrorE GrpToPkg(MQ_SERVICE_CALL_ARGS)
int main(const int argc, MK_STRN argv[])
static enum MkErrorE GrxToPkgError(MK_RT_ARGS MQ_CTX const mqctx)
static enum MkErrorE sProxySubCall(MK_RT_ARGS MQ_CTX const targetCtx, MK_PTR const data)
static enum MkErrorE FilterCleanup(MQ_SERVICE_CALL_ARGS)
static enum MkErrorE TrtToGrt(MQ_SERVICE_CALL_ARGS)
static enum MkErrorE GrtToTrt(MQ_SERVICE_CALL_ARGS)
static enum MkErrorE PkgToGrx2(MK_RT_ARGS MQ_CTX const mqctx, MQ_TOK const token, MQ_CTX const otherCtx, MQ_LTR otherLId)
static enum MkErrorE GrxToPkg2(MK_RT_ARGS MQ_CTX const mqctx, MQ_TOK const intoken, MQ_CTX const otherCtx, MQ_LTR otherLId)
static enum MkErrorE FilterArgs(MK_RT_ARGS MQ_CTX mqctx, MK_BFL args)
static void FilterHelp(const char *base)
static void guard_crypt(register MK_BINN data, MK_SIZE size, bool const flag)
#define MkBufferListCreateVC(...)
#define MkBufferListDelete(x)
#define MkErrorGetCode_0E()
#define MkErrorStack_1X(...)
#define MkErrorPrintln_1M(err)
#define MkErrorSetV_1XS(printfmt,...)
#define MkErrorSetC_1XS(message)
#define MkErrorIsEXIT_0E()
#define MkDLogV(x, _debug, printfmt,...)
struct MqContextS * MQ_CTX
#define MQ_SERVICE_CALL_ARGS
void MqEnvRestore(MQ_CTX ctx)
#define MqEnvProtect(...)
#define MqContextErrorCopy(...)
#define MqLinkCreate_E(...)
#define MqProcessEvent_E(...)
#define MqProxyPackage_E(...)
#define MqProxyPackage(...)
#define MqSendSetHandShake_E(...)
#define MqSendEND_AND_TRANSACTION(...)
#define MqSendSTART_E(...)
#define MqSendEND_AND_SUB(...)
#define MqSendEND_AND_WAIT(...)
#define MqSendRETURN_SUB(...)
#define MqSendRETURN(...)
MQ_TOK MqServiceTokenGet(MQ_CTX const ctx)
#define MqServiceCreate(...)
#define MqSlaveGetProxy_e(...)
#define MqSlaveGetProxy(...)
#define MqSlaveGetFilter_e(...)
#define MqStorageIncrRef(...)
#define MqStorageResolve(...)
#define MqStorageDelete(...)
#define MqContextCreate(...)
void MqDumpRmtTransLIdSet(MQ_DMP const dump, MQ_LTR rmtTransLId)
void MqDumpTransLIdSet(MQ_DMP const dump, MQ_LTR transLId)
MK_STRN MqDumpTokenGet(MQ_DMPN const dump)
#define MqDumpExport_E(...)
MkBinaryR MqDumpBinGet(MQ_DMPN const dump)
#define MQ_CALLBACK_FACTORY_CTOR_ARGS
#define MqFactoryNew_E(...)
#define MqFactoryAdd(...)
MK_STRN MqTransTypeE_ToString(enum MqTransTypeE value)
MK_STR MqHelp(MK_STRN tool)
enum MqHandShakeE handShake
struct MqCallbackS ServerCleanup
struct MqCallbackS BgError
struct MqCallbackS ServerSetup