diff --git a/src/tcap.c b/src/tcap.c index 55d54b4..3b3f4c7 100644 --- a/src/tcap.c +++ b/src/tcap.c @@ -185,6 +185,10 @@ found_element: if (asn_INTEGER2long(element, out)) goto error; } + else if (!type->specifics) { + /* primitive integer */ + *((long *) out) = *((long *) element); + } out: return 0; diff --git a/tests/basic.c b/tests/basic.c index e3b14a3..68be8f7 100644 --- a/tests/basic.c +++ b/tests/basic.c @@ -95,6 +95,8 @@ int main() { i = inap_extract(tcap, tcap_len, "ConnectArg", NULL); printf("inap_extract ConnectArg: returned %i\n", i); + i = inap_extract(tcap, tcap_len, "ConnectArg.cutAndPaste", &l); + printf("inap_extract ConnectArg: returned %i, value %li\n", i, l); return 0; }