/*
 * VL_CARD.pgc - vl 모듈 서비스 VL_CARD (one service = one file).
 * 기능: 카드번호 Luhn 검증 (RC 1=체크섬 불일치).
 * 기존 인라인 vl_svr.pgc에서 분리; caller의 XA 브랜치에서 실행(EXEC SQL CONNECT 없음).
 * vl_svr가 tpsvrinit에서 이 서비스를 tpadvertise 한다.
 */
#include "VL_CARD.h"

void VL_CARD(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    char pan[32];
    long rc;
    gets_(b, T_STR1, pan, sizeof(pan));
    if (pan[0] == 0) { setl(b, T_RC, 2); OK(b); }   /* 2=번호 없음 */
    rc = acq_luhn_ok(pan) ? 0 : 1;
    setl(b, T_RC, rc);
    OK(b);
}
