Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | merge with trunk |
---|---|
Timelines: | family | ancestors | descendants | both | wtf-8-experiment |
Files: | files | file ages | folders |
SHA1: |
ffedd9079574d5dd801c5e3e5b11f9fc |
User & Date: | chw 2019-11-08 09:36:06.037 |
Context
2019-11-09
| ||
04:59 | merge with trunk check-in: d0394d4ad4 user: chw tags: wtf-8-experiment | |
2019-11-08
| ||
09:36 | merge with trunk check-in: ffedd90795 user: chw tags: wtf-8-experiment | |
09:34 | more tcl upstream changes check-in: d330ab7f7d user: chw tags: trunk | |
2019-11-07
| ||
15:28 | merge with trunk check-in: 52620b1658 user: chw tags: wtf-8-experiment | |
Changes
Changes to jni/ffidl/configure.
︙ | ︙ | |||
17173 17174 17175 17176 17177 17178 17179 | fi ;; FreeBSD-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" | | | 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 | fi ;; FreeBSD-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" SHLIB_LD="${CC} -shared -Wl,-z,notext" TCL_SHLIB_LD_EXTRAS="-Wl,-soname=\$@" TK_SHLIB_LD_EXTRAS="-Wl,-soname,\$@" SHLIB_SUFFIX=".so" LDFLAGS="" if test $doRpath = yes; then CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' |
︙ | ︙ |
Changes to jni/ffidl/tclconfig/tcl.m4.
︙ | ︙ | |||
1662 1663 1664 1665 1666 1667 1668 | CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" ]) ;; FreeBSD-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" | | | 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 | CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" ]) ;; FreeBSD-*) # This configuration from FreeBSD Ports. SHLIB_CFLAGS="-fPIC" SHLIB_LD="${CC} -shared -Wl,-z,notext" TCL_SHLIB_LD_EXTRAS="-Wl,-soname=\$[@]" TK_SHLIB_LD_EXTRAS="-Wl,-soname,\$[@]" SHLIB_SUFFIX=".so" LDFLAGS="" AS_IF([test $doRpath = yes], [ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) |
︙ | ︙ |
Changes to jni/tcl/generic/tclScan.c.
︙ | ︙ | |||
581 582 583 584 585 586 587 | const char *string, *end, *baseString; char op = 0; int width, underflow = 0; Tcl_WideInt wideValue; Tcl_UniChar ch = 0, sch = 0; Tcl_Obj **objs = NULL, *objPtr = NULL; int flags; | < < < | 581 582 583 584 585 586 587 588 589 590 591 592 593 594 | const char *string, *end, *baseString; char op = 0; int width, underflow = 0; Tcl_WideInt wideValue; Tcl_UniChar ch = 0, sch = 0; Tcl_Obj **objs = NULL, *objPtr = NULL; int flags; if (objc < 3) { Tcl_WrongNumArgs(interp, 1, objv, "string format ?varName ...?"); return TCL_ERROR; } |
︙ | ︙ | |||
939 940 941 942 943 944 945 | if (Tcl_GetWideIntFromObj(NULL, objPtr, &wideValue) != TCL_OK) { wideValue = ~(Tcl_WideUInt)0 >> 1; /* WIDE_MAX */ if (TclGetString(objPtr)[0] == '-') { wideValue++; /* WIDE_MAX + 1 = WIDE_MIN */ } } if ((flags & SCAN_UNSIGNED) && (wideValue < 0)) { | | | | > > | | > > > | 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 | if (Tcl_GetWideIntFromObj(NULL, objPtr, &wideValue) != TCL_OK) { wideValue = ~(Tcl_WideUInt)0 >> 1; /* WIDE_MAX */ if (TclGetString(objPtr)[0] == '-') { wideValue++; /* WIDE_MAX + 1 = WIDE_MIN */ } } if ((flags & SCAN_UNSIGNED) && (wideValue < 0)) { mp_int big; TclBNInitBignumFromWideUInt(&big, (Tcl_WideUInt)wideValue); Tcl_SetBignumObj(objPtr, &big); } else { Tcl_SetWideIntObj(objPtr, wideValue); } } else if (!(flags & SCAN_BIG)) { if (TclGetLongFromObj(NULL, objPtr, &value) != TCL_OK) { if (TclGetString(objPtr)[0] == '-') { value = LONG_MIN; } else { value = LONG_MAX; } } if ((flags & SCAN_UNSIGNED) && (value < 0)) { #ifdef TCL_WIDE_INT_IS_LONG mp_int big; TclBNInitBignumFromWideUInt(&big, (unsigned long)value); Tcl_SetBignumObj(objPtr, &big); #else Tcl_SetWideIntObj(objPtr, (unsigned long)value); #endif } else { Tcl_SetLongObj(objPtr, value); } } objs[objIndex++] = objPtr; break; |
︙ | ︙ |
Changes to jni/tcl/libtommath/bn_mp_mul.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | { mp_err err; int min_len = MP_MIN(a->used, b->used), max_len = MP_MAX(a->used, b->used), digs = a->used + b->used + 1; mp_sign neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; | > > | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | { mp_err err; int min_len = MP_MIN(a->used, b->used), max_len = MP_MAX(a->used, b->used), digs = a->used + b->used + 1; mp_sign neg = (a->sign == b->sign) ? MP_ZPOS : MP_NEG; if (a == b) { return mp_sqr(a,c); } else if (MP_HAS(S_MP_BALANCE_MUL) && /* Check sizes. The smaller one needs to be larger than the Karatsuba cut-off. * The bigger one needs to be at least about one MP_KARATSUBA_MUL_CUTOFF bigger * to make some sense, but it depends on architecture, OS, position of the * stars... so YMMV. * Using it to cut the input into slices small enough for fast_s_mp_mul_digs * was actually slower on the author's machine, but YMMV. */ |
︙ | ︙ |
Changes to jni/tcl/macosx/tclMacOSXNotify.c.
︙ | ︙ | |||
567 568 569 570 571 572 573 574 575 576 577 578 579 580 | /* * Initialize trigger pipe. */ if (pipe(fds) != 0) { Tcl_Panic("Tcl_InitNotifier: could not create trigger pipe"); } status = fcntl(fds[0], F_GETFL); status |= O_NONBLOCK; if (fcntl(fds[0], F_SETFL, status) < 0) { Tcl_Panic("Tcl_InitNotifier: could not make receive pipe non " "blocking"); } | > > > > > > > > | 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 | /* * Initialize trigger pipe. */ if (pipe(fds) != 0) { Tcl_Panic("Tcl_InitNotifier: could not create trigger pipe"); } /* * Ticket [c6897e6e6a]. */ if (fds[0] >= FD_SETSIZE || fds[1] >= FD_SETSIZE) { Tcl_Panic("Tcl_InitNotifier: too many open files"); } status = fcntl(fds[0], F_GETFL); status |= O_NONBLOCK; if (fcntl(fds[0], F_SETFL, status) < 0) { Tcl_Panic("Tcl_InitNotifier: could not make receive pipe non " "blocking"); } |
︙ | ︙ |
Changes to jni/tcl/unix/tclUnixChan.c.
︙ | ︙ | |||
1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 | } #ifdef DJGPP SET_BITS(mode, O_BINARY); #endif fd = TclOSopen(native, mode, permissions); if (fd < 0) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "couldn't open \"%s\": %s", TclGetString(pathPtr), Tcl_PosixError(interp))); } | > > > > > > > > > > | 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 | } #ifdef DJGPP SET_BITS(mode, O_BINARY); #endif fd = TclOSopen(native, mode, permissions); /* * Ticket [c6897e6e6a]. */ if (fd >= FD_SETSIZE) { close(fd); fd = -1; errno = EMFILE; } if (fd < 0) { if (interp != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "couldn't open \"%s\": %s", TclGetString(pathPtr), Tcl_PosixError(interp))); } |
︙ | ︙ |
Changes to jni/tcl/unix/tclUnixFCmd.c.
︙ | ︙ | |||
2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 | fd = mkstemps(Tcl_DStringValue(&template), Tcl_DStringLength(&tmp)); Tcl_DStringFree(&tmp); } else #endif { fd = mkstemp(Tcl_DStringValue(&template)); } if (fd == -1) { Tcl_DStringFree(&template); return -1; } if (resultingNameObj) { | > > > > > > > > > > > | 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 | fd = mkstemps(Tcl_DStringValue(&template), Tcl_DStringLength(&tmp)); Tcl_DStringFree(&tmp); } else #endif { fd = mkstemp(Tcl_DStringValue(&template)); } /* * Ticket [c6897e6e6a]. */ if (fd >= FD_SETSIZE) { close(fd); fd = -1; unlink(Tcl_DStringValue(&template)); errno = EMFILE; } if (fd == -1) { Tcl_DStringFree(&template); return -1; } if (resultingNameObj) { |
︙ | ︙ |
Changes to jni/tcl/unix/tclUnixNotfy.c.
︙ | ︙ | |||
659 660 661 662 663 664 665 666 667 668 669 670 671 672 | { if (tclNotifierHooks.createFileHandlerProc) { tclNotifierHooks.createFileHandlerProc(fd, mask, proc, clientData); return; } else { ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); FileHandler *filePtr; for (filePtr = tsdPtr->firstFileHandlerPtr; filePtr != NULL; filePtr = filePtr->nextPtr) { if (filePtr->fd == fd) { break; } } | > > > > > > > > | 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 | { if (tclNotifierHooks.createFileHandlerProc) { tclNotifierHooks.createFileHandlerProc(fd, mask, proc, clientData); return; } else { ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); FileHandler *filePtr; /* * Ticket [c6897e6e6a]. */ if (fd >= FD_SETSIZE) { return; } for (filePtr = tsdPtr->firstFileHandlerPtr; filePtr != NULL; filePtr = filePtr->nextPtr) { if (filePtr->fd == fd) { break; } } |
︙ | ︙ | |||
1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 | long found; struct timeval poll = {0., 0.}, *timePtr; char buf[2]; if (pipe(fds) != 0) { Tcl_Panic("NotifierThreadProc: %s", "could not create trigger pipe"); } receivePipe = fds[0]; if (TclUnixSetBlockingMode(receivePipe, TCL_MODE_NONBLOCKING) < 0) { Tcl_Panic("NotifierThreadProc: %s", "could not make receive pipe non blocking"); } | > > > > > > > > | 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 | long found; struct timeval poll = {0., 0.}, *timePtr; char buf[2]; if (pipe(fds) != 0) { Tcl_Panic("NotifierThreadProc: %s", "could not create trigger pipe"); } /* * Ticket [c6897e6e6a]. */ if (fds[0] >= FD_SETSIZE || fds[1] >= FD_SETSIZE) { Tcl_Panic("NotifierThreadProc: %s", "too many open files"); } receivePipe = fds[0]; if (TclUnixSetBlockingMode(receivePipe, TCL_MODE_NONBLOCKING) < 0) { Tcl_Panic("NotifierThreadProc: %s", "could not make receive pipe non blocking"); } |
︙ | ︙ |
Changes to jni/tcl/unix/tclUnixPipe.c.
︙ | ︙ | |||
140 141 142 143 144 145 146 147 148 149 150 151 152 153 | int fd; const char *native; Tcl_DString ds; native = Tcl_UtfToExternalDString(NULL, fname, -1, &ds); fd = TclOSopen(native, mode, 0666); /* INTL: Native. */ Tcl_DStringFree(&ds); if (fd != -1) { fcntl(fd, F_SETFD, FD_CLOEXEC); /* * If the file is being opened for writing, seek to the end so we can * append to any data already in the file. */ | > > > > > > > > > > > | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | int fd; const char *native; Tcl_DString ds; native = Tcl_UtfToExternalDString(NULL, fname, -1, &ds); fd = TclOSopen(native, mode, 0666); /* INTL: Native. */ Tcl_DStringFree(&ds); /* * Ticket [c6897e6e6a]. */ if (fd >= FD_SETSIZE) { close(fd); fd = -1; errno = EMFILE; } if (fd != -1) { fcntl(fd, F_SETFD, FD_CLOEXEC); /* * If the file is being opened for writing, seek to the end so we can * append to any data already in the file. */ |
︙ | ︙ | |||
304 305 306 307 308 309 310 311 312 313 314 315 316 317 | * side of pipe. */ { int pipeIds[2]; if (pipe(pipeIds) != 0) { return 0; } fcntl(pipeIds[0], F_SETFD, FD_CLOEXEC); fcntl(pipeIds[1], F_SETFD, FD_CLOEXEC); *readPipe = MakeFile(pipeIds[0]); *writePipe = MakeFile(pipeIds[1]); return 1; | > > > > > > > > > > | 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 | * side of pipe. */ { int pipeIds[2]; if (pipe(pipeIds) != 0) { return 0; } /* * Ticket [c6897e6e6a]. */ if (pipeIds[0] >= FD_SETSIZE || pipeIds[1] >= FD_SETSIZE) { close(pipeIds[0]); close(pipeIds[1]); return 0; } fcntl(pipeIds[0], F_SETFD, FD_CLOEXEC); fcntl(pipeIds[1], F_SETFD, FD_CLOEXEC); *readPipe = MakeFile(pipeIds[0]); *writePipe = MakeFile(pipeIds[1]); return 1; |
︙ | ︙ | |||
808 809 810 811 812 813 814 | int Tcl_CreatePipe( Tcl_Interp *interp, /* Errors returned in result. */ Tcl_Channel *rchan, /* Returned read side. */ Tcl_Channel *wchan, /* Returned write side. */ int flags) /* Reserved for future use. */ { | | | > > > > > > > > > > > > > > | 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 | int Tcl_CreatePipe( Tcl_Interp *interp, /* Errors returned in result. */ Tcl_Channel *rchan, /* Returned read side. */ Tcl_Channel *wchan, /* Returned write side. */ int flags) /* Reserved for future use. */ { int ret, fileNums[2]; ret = pipe(fileNums); if (ret >= 0) { /* * Ticket [c6897e6e6a]. */ if (fileNums[0] >= FD_SETSIZE || fileNums[1] >= FD_SETSIZE) { close(fileNums[0]); close(fileNums[1]); errno = EMFILE; ret = -1; } } if (ret < 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf("pipe creation failed: %s", Tcl_PosixError(interp))); return TCL_ERROR; } fcntl(fileNums[0], F_SETFD, FD_CLOEXEC); fcntl(fileNums[1], F_SETFD, FD_CLOEXEC); |
︙ | ︙ |
Changes to jni/tcl/unix/tclUnixSock.c.
︙ | ︙ | |||
1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 | } statePtr->fds.fd = socket(statePtr->addr->ai_family, SOCK_STREAM, 0); if (statePtr->fds.fd < 0) { continue; } /* * Set the close-on-exec flag so that the socket will not get * inherited by child processes. */ fcntl(statePtr->fds.fd, F_SETFD, FD_CLOEXEC); | > > > > > > > > > > > | 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 | } statePtr->fds.fd = socket(statePtr->addr->ai_family, SOCK_STREAM, 0); if (statePtr->fds.fd < 0) { continue; } /* * Ticket [c6897e6e6a]. */ if (statePtr->fds.fd >= FD_SETSIZE) { close(statePtr->fds.fd); statePtr->fds.fd = -1; error = errno = EMFILE; continue; } /* * Set the close-on-exec flag so that the socket will not get * inherited by child processes. */ fcntl(statePtr->fds.fd, F_SETFD, FD_CLOEXEC); |
︙ | ︙ | |||
1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 | if (sock == -1) { if (howfar < SOCKET) { howfar = SOCKET; my_errno = errno; } continue; } /* * Set the close-on-exec flag so that the socket will not get * inherited by child processes. */ fcntl(sock, F_SETFD, FD_CLOEXEC); | > > > > > > > > > > > > > | 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 | if (sock == -1) { if (howfar < SOCKET) { howfar = SOCKET; my_errno = errno; } continue; } /* * Ticket [c6897e6e6a]. */ if (sock >= FD_SETSIZE) { close(sock); if (howfar < SOCKET) { howfar = SOCKET; my_errno = EMFILE; } continue; } /* * Set the close-on-exec flag so that the socket will not get * inherited by child processes. */ fcntl(sock, F_SETFD, FD_CLOEXEC); |
︙ | ︙ | |||
1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 | char host[NI_MAXHOST], port[NI_MAXSERV]; len = sizeof(addr); newsock = accept(fds->fd, &addr.sa, &len); if (newsock < 0) { return; } /* * Set close-on-exec flag to prevent the newly accepted socket from being * inherited by child processes. */ (void) fcntl(newsock, F_SETFD, FD_CLOEXEC); | > > > > > > > > > | 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 | char host[NI_MAXHOST], port[NI_MAXSERV]; len = sizeof(addr); newsock = accept(fds->fd, &addr.sa, &len); if (newsock < 0) { return; } /* * Ticket [c6897e6e6a]. */ if (newsock >= FD_SETSIZE) { close(newsock); return; } /* * Set close-on-exec flag to prevent the newly accepted socket from being * inherited by child processes. */ (void) fcntl(newsock, F_SETFD, FD_CLOEXEC); |
︙ | ︙ |
Changes to jni/topcua/open62541/chw.patch.
1 2 3 4 5 6 | The following patch relaxes type checking on attribute R/W functions. This simplifies the "opcua read ..." and "opcua write ..." logic. Another change allows the server's logger to be fully overriden. It changes the default timeout to 10 milliseconds and adds some functions to set the custom data type array on client and server. | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | The following patch relaxes type checking on attribute R/W functions. This simplifies the "opcua read ..." and "opcua write ..." logic. Another change allows the server's logger to be fully overriden. It changes the default timeout to 10 milliseconds and adds some functions to set the custom data type array on client and server. --- open62541.c.orig 2019-11-08 09:27:46.000000000 +0100 +++ open62541.c 2019-11-08 10:10:33.207053379 +0100 @@ -22437,7 +22437,7 @@ /* Main Server Loop */ /********************/ -#define UA_MAXTIMEOUT 50 /* Max timeout in ms between main-loop iterations */ +#define UA_MAXTIMEOUT 10 /* Max timeout in ms between main-loop iterations */ |
︙ | ︙ | |||
38 39 40 41 42 43 44 | res->value.data = NULL; + } else if(UA_Variant_isScalar(&res->value) && outDataType == &UA_TYPES[UA_TYPES_VARIANT]) { + memcpy(out, &res->value, sizeof(UA_Variant)); + UA_Variant_init(&res->value); } else { retval = UA_STATUSCODE_BADUNEXPECTEDERROR; } | | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | res->value.data = NULL; + } else if(UA_Variant_isScalar(&res->value) && outDataType == &UA_TYPES[UA_TYPES_VARIANT]) { + memcpy(out, &res->value, sizeof(UA_Variant)); + UA_Variant_init(&res->value); } else { retval = UA_STATUSCODE_BADUNEXPECTEDERROR; } @@ -51611,16 +51614,22 @@ static UA_StatusCode setDefaultConfig(UA_ServerConfig *conf) { + UA_Logger logger; + if (!conf) return UA_STATUSCODE_BADINVALIDARGUMENT; |
︙ | ︙ | |||
62 63 64 65 66 67 68 | /* --> Start setting the default static config <-- */ conf->nThreads = 1; - conf->logger = UA_Log_Stdout_; + conf->logger = logger; conf->shutdownDelay = 0.0; | | | | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | /* --> Start setting the default static config <-- */ conf->nThreads = 1; - conf->logger = UA_Log_Stdout_; + conf->logger = logger; conf->shutdownDelay = 0.0; @@ -56850,7 +56859,7 @@ time_t gmt, rawtime = time(NULL); struct tm ptm; - gmtime_s(&ptm, &rawtime); + ptm = *gmtime(&rawtime); // Request that mktime() looksup dst in timezone database ptm.tm_isdst = -1; gmt = mktime(&ptm); @@ -57935,3 +57944,17 @@ return connection; } + +UA_StatusCode +UA_Client_setCustomDataTypes(UA_Client *client, const UA_DataTypeArray *types) { + client->config.customDataTypes = types; + + return UA_STATUSCODE_GOOD; +} + +UA_StatusCode +UA_Server_setCustomDataTypes(UA_Server *server, const UA_DataTypeArray *types) { + server->config.customDataTypes = types; + + return UA_STATUSCODE_GOOD; +} --- open62541.h.orig 2019-11-08 09:27:46.000000000 +0100 +++ open62541.h 2019-11-08 10:09:12.150748976 +0100 @@ -95,7 +95,7 @@ * On Win32: Define ``UA_DYNAMIC_LINKING`` and ``UA_DYNAMIC_LINKING_EXPORT`` in * order to export symbols for a DLL. Define ``UA_DYNAMIC_LINKING`` only to * import symbols from a DLL.*/ -#define UA_DYNAMIC_LINKING +/* #undef UA_DYNAMIC_LINKING */ |
︙ | ︙ |
Changes to jni/topcua/open62541/open62541.c.
1 2 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software | | | 1 2 3 4 5 6 7 8 9 10 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software * Git-Revision: v1.0-29-g95b3deb6 */ /* * Copyright (C) 2014-2018 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the Mozilla Public |
︙ | ︙ | |||
905 906 907 908 909 910 911 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
3800 3801 3802 3803 3804 3805 3806 | UA_ReadEventDetails_decodeBinary(const UA_ByteString *src, size_t *offset, UA_ReadEventDetails *dst) { return UA_decodeBinary(src, offset, dst, &UA_TYPES[UA_TYPES_READEVENTDETAILS], NULL); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 | UA_ReadEventDetails_decodeBinary(const UA_ByteString *src, size_t *offset, UA_ReadEventDetails *dst) { return UA_decodeBinary(src, offset, dst, &UA_TYPES[UA_TYPES_READEVENTDETAILS], NULL); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
3974 3975 3976 3977 3978 3979 3980 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ _UA_BEGIN_DECLS #if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 6 # pragma GCC diagnostic push |
︙ | ︙ | |||
4376 4377 4378 4379 4380 4381 4382 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated_encoding_binary.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
10501 10502 10503 10504 10505 10506 10507 | UA_calcSizeBinary(const void *p, const UA_DataType *type) { return calcSizeBinaryJumpTable[type->typeKind](p, type); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 | UA_calcSizeBinary(const void *p, const UA_DataType *type) { return calcSizeBinaryJumpTable[type->typeKind](p, type); } /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ /* Boolean */ #define Boolean_members NULL /* SByte */ #define SByte_members NULL |
︙ | ︙ | |||
17912 17913 17914 17915 17916 17917 17918 | }, }; /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 | }, }; /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/transport_generated.c" ***********************************/ /* Generated from Opc.Ua.Types.bsd, Custom.Opc.Ua.Transport.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ /* SecureConversationMessageAbortBody */ static UA_DataTypeMember SecureConversationMessageAbortBody_members[2] = { { UA_TYPENAME("Error") /* .memberName */ UA_TYPES_UINT32, /* .memberTypeIndex */ |
︙ | ︙ | |||
43333 43334 43335 43336 43337 43338 43339 | 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; unsigned char * UA_unbase64(const unsigned char *src, size_t len, size_t *out_len) { | > | | 43333 43334 43335 43336 43337 43338 43339 43340 43341 43342 43343 43344 43345 43346 43347 43348 | 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 63, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}; unsigned char * UA_unbase64(const unsigned char *src, size_t len, size_t *out_len) { // we need a minimum length if(len <= 2) { *out_len = 0; return (unsigned char*)UA_EMPTY_ARRAY_SENTINEL; } const unsigned char *p = src; size_t pad1 = len % 4 || p[len - 1] == '='; size_t pad2 = pad1 && (len % 4 > 2 || p[len - 2] != '='); |
︙ | ︙ | |||
43357 43358 43359 43360 43361 43362 43363 43364 43365 43366 43367 43368 43369 43370 43371 43372 43373 | from_b64[p[i + 2]] << 6 | from_b64[p[i + 3]]; *pos++ = (unsigned char)(n >> 16); *pos++ = (unsigned char)(n >> 8 & 0xFF); *pos++ = (unsigned char)(n & 0xFF); } if(pad1) { uint32_t n = from_b64[p[last]] << 18 | from_b64[p[last + 1]] << 12; *pos++ = (unsigned char)(n >> 16); if(pad2) { n |= from_b64[p[last + 2]] << 6; *pos++ = (unsigned char)(n >> 8 & 0xFF); } } *out_len = (uintptr_t)(pos - str); return str; | > > > > > > > > > > | 43358 43359 43360 43361 43362 43363 43364 43365 43366 43367 43368 43369 43370 43371 43372 43373 43374 43375 43376 43377 43378 43379 43380 43381 43382 43383 43384 | from_b64[p[i + 2]] << 6 | from_b64[p[i + 3]]; *pos++ = (unsigned char)(n >> 16); *pos++ = (unsigned char)(n >> 8 & 0xFF); *pos++ = (unsigned char)(n & 0xFF); } if(pad1) { if (last + 1 >= len) { UA_free(str); *out_len = 0; return (unsigned char*)UA_EMPTY_ARRAY_SENTINEL; } uint32_t n = from_b64[p[last]] << 18 | from_b64[p[last + 1]] << 12; *pos++ = (unsigned char)(n >> 16); if(pad2) { if (last + 2 >= len) { UA_free(str); *out_len = 0; return (unsigned char*)UA_EMPTY_ARRAY_SENTINEL; } n |= from_b64[p[last + 2]] << 6; *pos++ = (unsigned char)(n >> 8 & 0xFF); } } *out_len = (uintptr_t)(pos - str); return str; |
︙ | ︙ |
Changes to jni/topcua/open62541/open62541.h.
1 2 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software | | | 1 2 3 4 5 6 7 8 9 10 | /* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software * Git-Revision: v1.0-29-g95b3deb6 */ /* * Copyright (C) 2014-2018 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the Mozilla Public |
︙ | ︙ | |||
27 28 29 30 31 32 33 | /** * open62541 Version * ----------------- */ #define UA_OPEN62541_VER_MAJOR 1 #define UA_OPEN62541_VER_MINOR 0 #define UA_OPEN62541_VER_PATCH 0 | | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | /** * open62541 Version * ----------------- */ #define UA_OPEN62541_VER_MAJOR 1 #define UA_OPEN62541_VER_MINOR 0 #define UA_OPEN62541_VER_PATCH 0 #define UA_OPEN62541_VER_LABEL "-29-g95b3deb6" /* Release candidate label, etc. */ #define UA_OPEN62541_VER_COMMIT "v1.0-29-g95b3deb6" /** * Feature Options * --------------- * Changing the feature options has no effect on a pre-compiled library. */ #define UA_LOGLEVEL 300 |
︙ | ︙ | |||
13829 13830 13831 13832 13833 13834 13835 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ #ifdef UA_ENABLE_AMALGAMATION #else #endif |
︙ | ︙ | |||
16492 16493 16494 16495 16496 16497 16498 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py | | | 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 | _UA_END_DECLS /*********************************** amalgamated original file "/home/travis/build/open62541/open62541/build/src_generated/open62541/types_generated_handling.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/travis/build/open62541/open62541/tools/generate_datatypes.py * on host travis-job-49e882ba-69aa-40f1-b88e-0acdafda6b10 by user travis at 2019-11-08 08:01:51 */ _UA_BEGIN_DECLS #if defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 6 # pragma GCC diagnostic push |
︙ | ︙ |
Changes to jni/topcua/open62541/open62541.pdf.
cannot compute difference between binary files