Philippe Teuwen
32bb627108
Fix typo in drivers blacklist, thanks Godfrey Chung
2017-03-07 10:49:25 +01:00
Philippe Teuwen
86ce8dff52
Test Travis builds
2017-03-03 18:41:13 +01:00
Philippe Teuwen
b65674a8e3
Some systems (e.g. glibc < 2.17) require librt to get clock_gettime -> CMAKE
2017-03-02 23:42:36 +01:00
Philippe Teuwen
2d2a664f6c
Some systems (e.g. glibc < 2.17) require librt to get clock_gettime
2017-03-02 22:03:22 +01:00
Philippe Teuwen
9ccfba2125
Update changelog & authors
2017-03-02 16:00:51 +01:00
Philippe Teuwen
b7ae7cb5fd
Merge remote-tracking branch 'adam/master'
...
* adam/master:
Tidier fix for incorrect block write/count as per @doegox
Fix number of blocks written. Fix number of written blocks reported.
2017-03-01 18:51:35 +01:00
Philippe Teuwen
c51caf424a
nfc-mfultralight: fix failed read reporting and add failed pages count
2017-02-27 17:22:42 +01:00
Philippe Teuwen
bf31594410
conf: close file
2017-02-18 22:20:15 +01:00
Philippe Teuwen
04ef5ca902
Reduce variables scopes
2017-02-18 22:20:15 +01:00
Philippe Teuwen
2033519b0c
Add asserts to tell static analyzer we know what we're doing...
...
nfc.c:1244:19: warning: Dereference of undefined pointer value
for (int i = 0; nmt[i]; i++) {
^~~~~~
nfc.c:1256:23: warning: Dereference of undefined pointer value
for (int j = 0; nbr[j]; j++) {
^~~~~~
2017-02-18 18:08:27 +01:00
Philippe Teuwen
f2c264d4ae
pn53x: avoid warning about uninitialized value (false positive)
...
pn53x.c:1746:15: warning: Function call argument is an uninitialized value
*cycles = __pn53x_get_timer(pnd, pbtTxRaw[szTx + 1]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2017-02-18 17:29:57 +01:00
Philippe Teuwen
05220537ea
i2c: fix struct initialization
...
pn532_i2c.c:125:57: warning: missing field 'tv_nsec' initializer [-Wmissing-field-initializers]
struct timespec transaction_start, bus_free_time = { 0 };
^
pn532_i2c.c:153:57: warning: missing field 'tv_nsec' initializer [-Wmissing-field-initializers]
struct timespec transaction_start, bus_free_time = { 0 };
2017-02-18 17:23:22 +01:00
Philippe Teuwen
c815c7a059
nfc-mfultralight: remove dead assignment
...
nfc-mfultralight.c:274:7: warning: Value stored to 'bFailure' is never read
bFailure = false;
^ ~~~~~
2017-02-18 17:17:53 +01:00
Philippe Teuwen
9a749e1a66
arygon: remove unused variable
...
arygon.c:94:22: warning: unused variable 'arygon_error_incomplete_command' [-Wunused-const-variable]
static const uint8_t arygon_error_incomplete_command[] = "FF0C0000\x0d\x0a";
^
2017-02-18 17:17:33 +01:00
Philippe Teuwen
e4df2f3334
astyle
2017-02-18 13:05:59 +01:00
Philippe Teuwen
f184407cc5
Makefile: fix option for recent astyle
2017-02-18 13:05:45 +01:00
Philippe Teuwen
e8d44f1ee8
typo
2017-02-18 13:05:02 +01:00
Philippe Teuwen
4e4438435d
Update README about pn533_usb
2017-02-18 01:59:27 +01:00
Philippe Teuwen
02c06c8e28
Update ChangeLog
2017-02-18 01:51:59 +01:00
Philippe Teuwen
ff37cdb2be
Replace deprecated readdir_r by readdir
...
This reverts 262555d5 , 7fb53873 and a0b859b2
2017-02-17 12:10:33 +01:00
Philippe Teuwen
c5e8adc169
mfclassic: avoid hardcoded offsets & sizes
2017-02-17 11:31:13 +01:00
Philippe Teuwen
646ab57ace
fix typo
2017-02-17 10:31:25 +01:00
Philippe Teuwen
db4433f116
CMake: set policy CMP0045
2017-02-17 10:28:53 +01:00
Philippe Teuwen
d808802b16
typos
2017-02-17 10:11:34 +01:00
Philippe Teuwen
b86b7efb10
Fix number of blocks written
...
A strange move changed the way written pages are bound in commit ed62b01a .
As a result the last 3 blocks weren't written anymore.
2017-02-17 09:56:35 +01:00
Philippe Teuwen
11bcf05a75
Fix typo. Fix issue #377
2017-02-16 23:12:38 +01:00
Philippe Teuwen
968f59a988
Remove unneeded test, fix issue #376
2017-02-16 23:05:02 +01:00
Philippe Teuwen
e50b18848f
Remove spurious mirror_uint8_ts declaration, fix issue #375
2017-02-16 23:00:37 +01:00
Philippe Teuwen
372bf37eec
Blacklist pn533_usb to fix issue #391
2017-02-16 22:32:16 +01:00
Philippe Teuwen
295c70911a
Restrict MFC Mini detection according to AN10833
2017-02-16 22:31:10 +01:00
Philippe Teuwen
49dde9c28c
Merge branch 'nfc_get_supported_baud_rate_proposal'
...
* nfc_get_supported_baud_rate_proposal:
nfc_get_supported_baud_rate() proposal to reverse API
2015-06-18 22:07:09 +02:00
Philippe Teuwen
04a51df796
nfc_get_supported_baud_rate() proposal to reverse API
...
cf issue #298
nfc_get_supported_baud_rate() would be the one for "initiator mode"
and we add nfc_get_supported_baud_rate_target_mode()
2015-06-08 11:34:16 +02:00
Philippe Teuwen
bb9babbeda
Fix out-of-bounds access in nfc-mfultralight unveiled by coverity scan:
...
*** CID 1090333: Out-of-bounds access (OVERRUN)
2014-04-14 23:29:18 +02:00
Philippe Teuwen
bd92f74a58
Update ChangeLog
2014-03-12 00:38:46 +01:00
Philippe Teuwen
9a254712b5
nfc_initiator_select_passive_target(): validate modulation and baud rate
2014-03-12 00:28:39 +01:00
Philippe Teuwen
e57dc8a746
Better list of supported modulations & baud rates
...
* Extend supported baud rates for TypeA
* Extend supported modulations B->BI,B2SR,B2CT
* Use InPSL only on TypeA
* Add mode to nfc_get_supported_baud_rate() (API change!)
* Fix supported baud rates for BI,B2SR,B2CT
* Remove supported modulations as target for ASK LoGO
Before:
$ nfc-scan-device -v
3 NFC device(s) found:
- ACS / ACR122U PICC Interface:
acr122_usb:002:024
chip: PN532 v1.4
initator mode modulations: ISO/IEC 14443A (106 kbps), FeliCa (424 kbps, 212 kbps), ISO/IEC 14443-4B (106 kbps), Innovision Jewel (106 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
target mode modulations: ISO/IEC 14443A (106 kbps), FeliCa (424 kbps, 212 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
- SCM Micro / SCL3711-NFC&RW:
pn53x_usb:002:028
chip: PN533 v2.7
initator mode modulations: ISO/IEC 14443A (106 kbps), FeliCa (424 kbps, 212 kbps), ISO/IEC 14443-4B (847 kbps, 424 kbps, 212 kbps, 106 kbps), Innovision Jewel (106 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
target mode modulations: ISO/IEC 14443A (106 kbps), FeliCa (424 kbps, 212 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
- ASK / LoGO:
pn53x_usb:002:023
chip: PN533 v2.7
initator mode modulations: ISO/IEC 14443A (106 kbps), FeliCa (424 kbps, 212 kbps), ISO/IEC 14443-4B (847 kbps, 424 kbps, 212 kbps, 106 kbps), Innovision Jewel (106 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
target mode modulations: ISO/IEC 14443A (106 kbps), FeliCa (424 kbps, 212 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
After:
$ nfc-scan-device -v
3 NFC device(s) found:
- ACS / ACR122U PICC Interface:
acr122_usb:002:024
chip: PN532 v1.4
initator mode modulations: ISO/IEC 14443A (424 kbps, 212 kbps, 106 kbps), FeliCa (424 kbps, 212 kbps), ISO/IEC 14443-4B (106 kbps), ISO/IEC 14443-4B' (106 kbps), ISO/IEC 14443-2B ST SRx (106 kbps), ISO/IEC 14443-2B ASK CTx (106 kbps), Innovision Jewel (106 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
target mode modulations: ISO/IEC 14443A (424 kbps, 212 kbps, 106 kbps), FeliCa (424 kbps, 212 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
- SCM Micro / SCL3711-NFC&RW:
pn53x_usb:002:025
chip: PN533 v2.7
initator mode modulations: ISO/IEC 14443A (847 kbps, 424 kbps, 212 kbps, 106 kbps), FeliCa (424 kbps, 212 kbps), ISO/IEC 14443-4B (847 kbps, 424 kbps, 212 kbps, 106 kbps), ISO/IEC 14443-4B' (106 kbps), ISO/IEC 14443-2B ST SRx (106 kbps), ISO/IEC 14443-2B ASK CTx (106 kbps), Innovision Jewel (106 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
target mode modulations: ISO/IEC 14443A (424 kbps, 212 kbps, 106 kbps), FeliCa (424 kbps, 212 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
- ASK / LoGO:
pn53x_usb:002:023
chip: PN533 v2.7
initator mode modulations: ISO/IEC 14443A (847 kbps, 424 kbps, 212 kbps, 106 kbps), FeliCa (424 kbps, 212 kbps), ISO/IEC 14443-4B (847 kbps, 424 kbps, 212 kbps, 106 kbps), ISO/IEC 14443-4B' (106 kbps), ISO/IEC 14443-2B ST SRx (106 kbps), ISO/IEC 14443-2B ASK CTx (106 kbps), Innovision Jewel (106 kbps), D.E.P. (424 kbps, 212 kbps, 106 kbps)
target mode modulations:
2014-03-12 00:00:08 +01:00
Philippe Teuwen
89fc6a723e
make style
2014-03-11 00:25:33 +01:00
Philippe Teuwen
ddde2dd8f2
initiator_select_passive_target(): now supports all speeds for ISO14443-4A tags
2014-03-11 00:13:26 +01:00
Philippe Teuwen
108de27c1b
Fix typo baud<>bauds thanks to Polluks
2014-03-05 17:48:55 +01:00
Philippe Teuwen
6b74323369
target_is_present(): remove unreachable code
2014-03-04 01:47:42 +01:00
Philippe Teuwen
6ab3c368b8
nfc-emulate-uid: remove unreachable code and add proper cleaning when interrupted
2014-03-04 01:41:01 +01:00
Philippe Teuwen
db4fae9c2c
Remove unreachable statements
...
As seen with clang -Wunreachable-code
2014-03-04 01:39:12 +01:00
Philippe Teuwen
7adad098c3
Document -Wunreachable-code in HACKING file
2014-03-04 01:38:44 +01:00
Philippe Teuwen
c0b9db6860
Update ChangeLog & AUTHORS
2014-02-18 15:40:22 +01:00
Philippe Teuwen
a7649da2b0
nfc-read-forum-tag3: add -q and document -o -
2014-02-18 00:22:24 +01:00
Philippe Teuwen
2aa4b99b7b
nfc-read-forum-tag3: full parsing of NDEF Attribute Block
2014-02-17 23:57:59 +01:00
Philippe Teuwen
491db20d54
nfc-jewel: remove extraneous parentheses to silence warning
2014-02-11 23:23:42 +01:00
Philippe Teuwen
415ad7cbac
nfc_initiator_select_passive_target() accepts NULL pbtInitData and provides default values
2014-02-10 01:09:07 +01:00
Philippe Teuwen
fd30e63b80
nfc_initiator_target_is_present(): Fixes issue #267 , second attempt
2014-02-10 00:01:34 +01:00
Philippe Teuwen
766ed55c79
nfc-jewel: fix out-of-bounds array access
...
Defect(s) Reported-by: Coverity Scan
** CID 1169884: Out-of-bounds read (OVERRUN)
/utils/nfc-jewel.c: 186 in write_card()
2014-02-07 23:09:40 +01:00
Philippe Teuwen
2d584baa9b
Update ChangeLog
2014-02-07 14:39:44 +01:00
Philippe Teuwen
85bef73734
nfc_initiator_target_is_present(): Fixes issue #267
...
Fixes some -4A cards removal on PN533
but fixes also same -4A cards on PN532
2014-02-07 14:00:57 +01:00
Philippe Teuwen
1f5e14f862
cppcheck on pn53x.c: Array 'apttTargetTypes' is filled incompletely
2014-02-07 01:29:42 +01:00
Philippe Teuwen
a38279793a
cppcheck on nfc-pool: Variable 'res' is assigned a value that is never used
2014-02-07 01:22:27 +01:00
Philippe Teuwen
1e4fe3bd27
nfc_initiator_target_is_present(): Support B2 ST SRx
2014-02-07 01:11:19 +01:00
Philippe Teuwen
9fd11d331b
nfc_initiator_target_is_present(): Support B2 ASK CT
2014-02-07 00:53:35 +01:00
Philippe Teuwen
a3a7111210
nfc_initiator_target_is_present(): Support B'
2014-02-07 00:31:31 +01:00
Philippe Teuwen
7254e1b2ea
nfc_initiator_target_is_present(): Support Jewel
2014-02-03 00:24:23 +01:00
Philippe Teuwen
827d9792dd
Save & restore NP_INFINITE_SELECT status when changing it internally
2014-02-01 02:45:17 +01:00
Philippe Teuwen
69c4d0768a
nfc_initiator_select_passive_target(): grant NP_INFINITE_SELECT also for ISO14443B*
2014-02-01 02:45:17 +01:00
Philippe Teuwen
510228b6e0
nfc_initiator_select_passive_target(): save current target info even if pnt=NULL
2014-02-01 02:45:16 +01:00
Philippe Teuwen
e11c5254af
nfc_initiator_select_passive_target(): save current target info also for ISO14443B*
2014-01-31 23:53:29 +01:00
Philippe Teuwen
81e1dd715d
nfc_initiator_target_is_present(): Fix error type in case no target is selected yet
2014-01-31 23:19:04 +01:00
Philippe Teuwen
71eda315c7
nfc_initiator_target_is_present(): Fix MFC support on PN532
2014-01-31 22:33:05 +01:00
Philippe Teuwen
7d41ed34a3
*_is_present(): more robust detection of tag gone
2014-01-30 18:30:45 +01:00
Philippe Teuwen
9a84bb0ba0
Split pn53x_initiator_target_is_present() for readability
2014-01-30 18:10:30 +01:00
Philippe Teuwen
62e78ab582
nfc_initiator_target_is_present(): support -4B on PN532
2014-01-30 12:55:51 +01:00
Philippe Teuwen
d6330a55d0
nfc_initiator_target_is_present(): better error handling
2014-01-30 11:37:37 +01:00
Philippe Teuwen
05579fde09
nfc_initiator_target_is_present(): better Felica support
2014-01-30 11:19:02 +01:00
Philippe Teuwen
d893e4398c
nfc_initiator_target_is_present(): fix ISO14443B-4 support
2014-01-30 00:32:21 +01:00
Philippe Teuwen
ade71ee8a6
nfc_initiator_target_is_present(): reuse iso14443_cascade_uid()
2014-01-30 00:24:06 +01:00
Philippe Teuwen
095f945224
nfc_initiator_target_is_present(): improve MFC support for 7-byte UID
2014-01-30 00:09:03 +01:00
Philippe Teuwen
9d63a93dd8
nfc_initiator_target_is_present(): improve MFC support
...
Increase timeout to support Tikitag & PN533
Fix support for MFC Mini on PN533
2014-01-29 23:30:50 +01:00
Philippe Teuwen
94f4e001f4
nfc_initiator_target_is_present(): support MFUL on PN532 too
2014-01-29 23:02:36 +01:00
Philippe Teuwen
1a3acdadc4
Prepare nfc_initiator_target_is_present() to support more cases
...
and return NFC_EDEVNOTSUPP for cases not yet supported, depending on the chipset.
Little helper to debug future additions to that function:
// LIBNFC_LOG_LEVEL=193 ./nfc-testing
int
main(void)
{
nfc_device *pnd;
nfc_modulation nm = { .nmt = NMT_ISO14443A, .nbr = NBR_106, };
nfc_context *context;
nfc_init(&context);
pnd = nfc_open(context, NULL);
nfc_initiator_init(pnd);
nfc_target nt;
nfc_initiator_select_passive_target(pnd, nm, NULL, 0, &nt);
while (nfc_initiator_target_is_present(pnd, NULL) == NFC_SUCCESS);
nfc_close(pnd);
nfc_exit(context);
}
2014-01-29 01:54:46 +01:00
Philippe Teuwen
744e052fbe
update ChangeLog
2014-01-28 13:20:03 +01:00
Philippe Teuwen
65ad186109
make style
2014-01-28 13:09:33 +01:00
Philippe Teuwen
7a30e35496
nfc-mfclassic: update help & man page
2014-01-28 00:22:33 +01:00
Philippe Teuwen
d47623319d
nfc_initiator_target_is_present() allows pnt==NULL
2014-01-27 16:07:24 +01:00
Philippe Teuwen
7b7f506142
make style
2013-12-08 19:51:01 +01:00
Philippe Teuwen
4817a6e5c9
make style
2013-12-02 22:55:10 +01:00
Philippe Teuwen
a1ef329962
Fix use after free
...
pn532_uart.c:293:5: warning: Use of memory after it is freed
log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "pn53x_check_communication error on %s", ndd.port);
^ ~~~~~~~~
2013-11-12 00:43:43 +01:00
Philippe Teuwen
b8e0eec91d
nfc-mfclassic: initialize always bFormatCard
2013-11-12 00:43:25 +01:00
Philippe Teuwen
7e5257dd44
Update Changelog
2013-10-01 14:29:51 +02:00
Philippe Teuwen
186cccfe6a
pn532_uart: make use of log level for pn53x_check_communication()
2013-10-01 14:14:00 +02:00
Philippe Teuwen
1d0d3c3b45
uart_flush_input() can now wait a bit
...
Calling ioctl flush too fast before actual garbage bytes arrive was useless.
It solves an issue e.g. when config asks for scanning for multiple incompatible serial devices:
One scan can mess up the reader and we've to wait & flush properly for the next driver to be able to scan correctly
2013-10-01 14:09:15 +02:00
Philippe Teuwen
de1ca46066
Add envvars LIBNFC_DEVICE (to force only one device, no matter the conf files) and LIBNFC_AUTO_SCAN
2013-10-01 14:08:57 +02:00
Philippe Teuwen
1596255506
driver Arygon: don't try to send commands if reset failed
2013-10-01 12:27:19 +02:00
Philippe Teuwen
252f590d5c
Revert "Check data from getenv("LIBNFC_LOG_LEVEL") and config file"
...
This reverts commit 846189b62c .
It didn't solve Coverity somplain and it broke bitfield support of log_level
2013-09-22 19:55:31 +02:00
Philippe Teuwen
846189b62c
Check data from getenv("LIBNFC_LOG_LEVEL") and config file
...
Problem reported by Coverity:
CID 1090344 (#1 of 1): Use of untrusted string value (TAINTED_STRING)
. tainted_string: Passing tainted string "res->log_level" to "log_init(nfc_context const *)", which cannot accept tainted data.[show details]
2013-09-22 19:32:37 +02:00
Philippe Teuwen
9bb568b799
driver acr122_usb: fix dead code issue
...
Redundant result check leading to dead code was probably indicative
of a missing return value check of acr122_usb_send_apdu()
Problem reported by Coverity:
at_least: At condition "res < 0", the value of "res" must be at least 12.
cannot_single: At condition "res < 0", the value of "res" cannot be equal to -6.
dead_error_condition: The condition "res < 0" cannot be true.
CID 1090327 (#1 of 1): Logically dead code (DEADCODE)
dead_error_begin: Execution cannot reach this statement "acr122_usb_ack(pnd);".
2013-09-22 19:08:26 +02:00
Philippe Teuwen
117b58f501
nfc-read-forum-tag3: avoid passing large struct as parameter
...
Problem reported by Coverity:
CID 1090334 (#1 of 1): Big parameter passed by value (PASS_BY_VALUE)
pass_by_value: Passing parameter nt of type nfc_target const (size 291 bytes) by value.
2013-09-22 18:32:47 +02:00
Philippe Teuwen
4a91859150
Fix unharmful warning
...
Commit 54729fb458 removed some dead code spotted by Coverity
but it had as effect to trigger a gcc warning, which prefers to see all enum in a switch rather than dead code:
pn53x.c: In function 'pn53x_InJumpForDEP':
pn53x.c:2552:5: warning: enumeration value 'NBR_UNDEFINED' not handled in switch [-Wswitch]
pn53x.c:2552:5: warning: enumeration value 'NBR_847' not handled in switch [-Wswitch]
So both switches were merged, which slightly optimizes the code for speed.
2013-09-22 12:02:31 +02:00
Philippe Teuwen
7cb8fd3833
verify return of pn53x_set_property_bool()
...
Problem reported by Coverity:
CID 1090321 (#1 of 1): Unchecked return value (CHECKED_RETURN)
unchecked_value: No check of the return value of "pn53x_set_property_bool(pnd, NP_INFINITE_SELECT, true)".
2013-09-22 03:36:45 +02:00
Philippe Teuwen
2e51318bcb
pn53x_usb driver: verify return of pn53x_build_frame()
...
Problem reported by Coverity:
CID 1090322 (#1 of 1): Unchecked return value (CHECKED_RETURN)
unchecked_value: No check of the return value of "pn53x_build_frame(abtFrame, &szFrame, pbtData, szData)".
2013-09-22 03:31:50 +02:00
Philippe Teuwen
90160d6507
Fix possible overflow
...
Note that this could happen e.g. if a fake PN533 sends malicious frames over USB
CID 1090329 (#1 of 1): Overflowed return value (INTEGER_OVERFLOW)
overflow_sink: Overflowed or truncated value (or a value computed from an overflowed or truncated value) "res" used as return value.
2013-09-22 03:26:33 +02:00
Philippe Teuwen
618ca1e92b
Remove dead code
...
Problem reported by Coverity:
at_most: At condition "io_res < 0", the value of "io_res" must be at most -1.
dead_error_condition: The condition "io_res < 0" must be true.
CID 1090328 (#1 of 1): Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this expression "0" inside statement "return (io_res < 0) ? io_re...".
2013-09-22 03:13:09 +02:00
Philippe Teuwen
54729fb458
Remove dead code
...
Problem reported by Coverity:
dead_error_condition: The switch value "nbr" cannot be "NBR_UNDEFINED".
CID 1090326 (#1 of 2): Logically dead code (DEADCODE)
dead_error_begin: Execution cannot reach this statement "case NBR_UNDEFINED:".
2013-09-22 03:09:08 +02:00
Philippe Teuwen
cedbefb880
nfc-relay-picc: sleep() expects unsigned int
...
This avoids Coverity being unhappy that only lower bound was defined, well I hope
lower_bounds: Checking lower bounds of signed scalar "waiting_time" by "waiting_time > 0".
CID 1090343 (#1 of 1): Untrusted value as argument (TAINTED_SCALAR)
tainted_data: Passing tainted variable "waiting_time" to a tainted sink.
sleep(waiting_time);
2013-09-22 03:00:58 +02:00
Philippe Teuwen
61884967ea
nfc-mfclassic: verify return of nfc_initiator_select_passive_target()
...
Problem reported by Coverity:
CID 1090323 (#1 of 1): Unchecked return value (CHECKED_RETURN)
unchecked_value: No check of the return value of "nfc_initiator_select_passive_target(pnd, nmMifare, nt.nti.nai.abtUid, nt.nti.nai.szUidLen, NULL)".
2013-09-22 02:45:23 +02:00