| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,6 +16,9 @@ | |||
| 16 | 16 | /* Defined for build with symbol hiding. */ | |
| 17 | 17 | /* #undef CARES_SYMBOL_HIDING */ | |
| 18 | 18 | ||
| 19 | + /* the signed version of size_t */ | ||
| 20 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 21 | + | ||
| 19 | 22 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 23 | /* #undef CARES_SYMBOL_SCOPE_EXTERN */ | |
| 21 | 24 | ||
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,6 +19,9 @@ | |||
| 19 | 19 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 20 | #define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default"))) | |
| 21 | 21 | ||
| 22 | + /* the signed version of size_t */ | ||
| 23 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 24 | + | ||
| 22 | 25 | /* Use resolver library to configure cares */ | |
| 23 | 26 | /* #undef CARES_USE_LIBRESOLV */ | |
| 24 | 27 | ||
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -22,6 +22,9 @@ | |||
| 22 | 22 | /* Definition to make a library symbol externally visible. */ | |
| 23 | 23 | #define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((visibility ("default"))) | |
| 24 | 24 | ||
| 25 | + /* the signed version of size_t */ | ||
| 26 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 27 | + | ||
| 25 | 28 | /* if a /etc/inet dir is being used */ | |
| 26 | 29 | /* #undef ETC_INET */ | |
| 27 | 30 | ||
@@ -364,7 +367,7 @@ | |||
| 364 | 367 | #define PACKAGE_NAME "c-ares" | |
| 365 | 368 | ||
| 366 | 369 | /* Define to the full name and version of this package. */ | |
| 367 | - #define PACKAGE_STRING "c-ares 1.7.1" | ||
| 370 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 368 | 371 | ||
| 369 | 372 | /* Define to the one symbol short name of this package. */ | |
| 370 | 373 | #define PACKAGE_TARNAME "c-ares" | |
@@ -373,7 +376,7 @@ | |||
| 373 | 376 | #define PACKAGE_URL "" | |
| 374 | 377 | ||
| 375 | 378 | /* Define to the version of this package. */ | |
| 376 | - #define PACKAGE_VERSION "1.7.1" | ||
| 379 | + #define PACKAGE_VERSION "1.13.0" | ||
| 377 | 380 | ||
| 378 | 381 | /* a suitable file/device to read random data from */ | |
| 379 | 382 | #define RANDOM_FILE "/dev/urandom" | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,6 +19,9 @@ | |||
| 19 | 19 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 20 | #define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default"))) | |
| 21 | 21 | ||
| 22 | + /* the signed version of size_t */ | ||
| 23 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 24 | + | ||
| 22 | 25 | /* Use resolver library to configure cares */ | |
| 23 | 26 | /* #undef CARES_USE_LIBRESOLV */ | |
| 24 | 27 | ||
@@ -351,7 +354,7 @@ | |||
| 351 | 354 | /* #undef NEED_THREAD_SAFE */ | |
| 352 | 355 | ||
| 353 | 356 | /* cpu-machine-OS */ | |
| 354 | - #define OS "x86_64-apple-darwin14.5.0" | ||
| 357 | + #define OS "x86_64-apple-darwin16.7.0" | ||
| 355 | 358 | ||
| 356 | 359 | /* Name of package */ | |
| 357 | 360 | #define PACKAGE "c-ares" | |
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
@@ -497,6 +500,3 @@ | |||
| 497 | 500 | ||
| 498 | 501 | /* Define to `unsigned int' if <sys/types.h> does not define. */ | |
| 499 | 502 | /* #undef size_t */ | |
| 500 | - | ||
| 501 | - /* the signed version of size_t */ | ||
| 502 | - /* #undef ssize_t */ | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,6 +19,9 @@ | |||
| 19 | 19 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 20 | #define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default"))) | |
| 21 | 21 | ||
| 22 | + /* the signed version of size_t */ | ||
| 23 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 24 | + | ||
| 22 | 25 | /* Use resolver library to configure cares */ | |
| 23 | 26 | /* #undef CARES_USE_LIBRESOLV */ | |
| 24 | 27 | ||
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,6 +19,9 @@ | |||
| 19 | 19 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 20 | #define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default"))) | |
| 21 | 21 | ||
| 22 | + /* the signed version of size_t */ | ||
| 23 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 24 | + | ||
| 22 | 25 | /* Use resolver library to configure cares */ | |
| 23 | 26 | /* #undef CARES_USE_LIBRESOLV */ | |
| 24 | 27 | ||
@@ -351,7 +354,7 @@ | |||
| 351 | 354 | /* #undef NEED_THREAD_SAFE */ | |
| 352 | 355 | ||
| 353 | 356 | /* cpu-machine-OS */ | |
| 354 | - #define OS "i686-pc-linux-gnu" | ||
| 357 | + #define OS "x86_64-pc-linux-gnu" | ||
| 355 | 358 | ||
| 356 | 359 | /* Name of package */ | |
| 357 | 360 | #define PACKAGE "c-ares" | |
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
@@ -497,6 +500,3 @@ | |||
| 497 | 500 | ||
| 498 | 501 | /* Define to `unsigned int' if <sys/types.h> does not define. */ | |
| 499 | 502 | /* #undef size_t */ | |
| 500 | - | ||
| 501 | - /* the signed version of size_t */ | ||
| 502 | - /* #undef ssize_t */ | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,6 +16,9 @@ | |||
| 16 | 16 | /* Defined for build with symbol hiding. */ | |
| 17 | 17 | /* #undef CARES_SYMBOL_HIDING */ | |
| 18 | 18 | ||
| 19 | + /* the signed version of size_t */ | ||
| 20 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 21 | + | ||
| 19 | 22 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 23 | /* #undef CARES_SYMBOL_SCOPE_EXTERN */ | |
| 21 | 24 | ||
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,6 +16,9 @@ | |||
| 16 | 16 | /* Defined for build with symbol hiding. */ | |
| 17 | 17 | /* #undef CARES_SYMBOL_HIDING */ | |
| 18 | 18 | ||
| 19 | + /* the signed version of size_t */ | ||
| 20 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 21 | + | ||
| 19 | 22 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 23 | /* #undef CARES_SYMBOL_SCOPE_EXTERN */ | |
| 21 | 24 | ||
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,6 +19,9 @@ | |||
| 19 | 19 | /* Definition to make a library symbol externally visible. */ | |
| 20 | 20 | #define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default"))) | |
| 21 | 21 | ||
| 22 | + /* the signed version of size_t */ | ||
| 23 | + #define CARES_TYPEOF_ARES_SSIZE_T ssize_t | ||
| 24 | + | ||
| 22 | 25 | /* Use resolver library to configure cares */ | |
| 23 | 26 | /* #undef CARES_USE_LIBRESOLV */ | |
| 24 | 27 | ||
@@ -363,7 +366,7 @@ | |||
| 363 | 366 | #define PACKAGE_NAME "c-ares" | |
| 364 | 367 | ||
| 365 | 368 | /* Define to the full name and version of this package. */ | |
| 366 | - #define PACKAGE_STRING "c-ares 1.12.0" | ||
| 369 | + #define PACKAGE_STRING "c-ares 1.13.0" | ||
| 367 | 370 | ||
| 368 | 371 | /* Define to the one symbol short name of this package. */ | |
| 369 | 372 | #define PACKAGE_TARNAME "c-ares" | |
@@ -372,7 +375,7 @@ | |||
| 372 | 375 | #define PACKAGE_URL "" | |
| 373 | 376 | ||
| 374 | 377 | /* Define to the version of this package. */ | |
| 375 | - #define PACKAGE_VERSION "1.12.0" | ||
| 378 | + #define PACKAGE_VERSION "1.13.0" | ||
| 376 | 379 | ||
| 377 | 380 | /* a suitable file/device to read random data from */ | |
| 378 | 381 | #define RANDOM_FILE "/dev/urandom" | |
@@ -456,7 +459,7 @@ | |||
| 456 | 459 | /* #undef USE_BLOCKING_SOCKETS */ | |
| 457 | 460 | ||
| 458 | 461 | /* Version number of package */ | |
| 459 | - #define VERSION "1.12.0" | ||
| 462 | + #define VERSION "1.13.0" | ||
| 460 | 463 | ||
| 461 | 464 | /* Define to avoid automatic inclusion of winsock.h */ | |
| 462 | 465 | /* #undef WIN32_LEAN_AND_MEAN */ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -38,7 +38,8 @@ | |||
| 38 | 38 | require it! */ | |
| 39 | 39 | #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ | |
| 40 | 40 | defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ | |
| 41 | - defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) | ||
| 41 | + defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ | ||
| 42 | + defined(__QNXNTO__) | ||
| 42 | 43 | #include <sys/select.h> | |
| 43 | 44 | #endif | |
| 44 | 45 | #if (defined(NETWARE) && !defined(__NOVELL_LIBC__)) | |
@@ -356,6 +357,27 @@ CARES_EXTERN void ares_set_socket_configure_callback(ares_channel channel, | |||
| 356 | 357 | CARES_EXTERN int ares_set_sortlist(ares_channel channel, | |
| 357 | 358 | const char *sortstr); | |
| 358 | 359 | ||
| 360 | + /* | ||
| 361 | + * Virtual function set to have user-managed socket IO. | ||
| 362 | + * Note that all functions need to be defined, and when | ||
| 363 | + * set, the library will not do any bind nor set any | ||
| 364 | + * socket options, assuming the client handles these | ||
| 365 | + * through either socket creation or the | ||
| 366 | + * ares_sock_config_callback call. | ||
| 367 | + */ | ||
| 368 | + struct iovec; | ||
| 369 | + struct ares_socket_functions { | ||
| 370 | + ares_socket_t(*asocket)(int, int, int, void *); | ||
| 371 | + int(*aclose)(ares_socket_t, void *); | ||
| 372 | + int(*aconnect)(ares_socket_t, const struct sockaddr *, ares_socklen_t, void *); | ||
| 373 | + ares_ssize_t(*arecvfrom)(ares_socket_t, void *, size_t, int, struct sockaddr *, ares_socklen_t *, void *); | ||
| 374 | + ares_ssize_t(*asendv)(ares_socket_t, const struct iovec *, int, void *); | ||
| 375 | + }; | ||
| 376 | + | ||
| 377 | + CARES_EXTERN void ares_set_socket_functions(ares_channel channel, | ||
| 378 | + const struct ares_socket_functions * funcs, | ||
| 379 | + void *user_data); | ||
| 380 | + | ||
| 359 | 381 | CARES_EXTERN void ares_send(ares_channel channel, | |
| 360 | 382 | const unsigned char *qbuf, | |
| 361 | 383 | int qlen, | |
| Back | FazBrowse Home | New Git URL |
0 commit comments