- char *payloadPtr;
-
- printf("[Payload: {");
- fflush(stdout);
-
- payloadPtr = (char *) (++dataHdrPtr);
- write(STDOUT_FILENO, payloadPtr,
- htons(chunkDescPtr->chunkLength)-1 -
- sizeof(struct sctpDataPart)-sizeof(struct sctpChunkDesc));
- printf("}] ");
- fflush(stdout);
+ const u_char *payloadPtr;
+
+ printf("[Payload");
+
+ if (!suppress_default_print) {
+ payloadPtr = (const u_char *) (++dataHdrPtr);
+ printf(":");
+ if (htons(chunkDescPtr->chunkLength) <
+ sizeof(struct sctpDataPart)+
+ sizeof(struct sctpChunkDesc)+1) {
+ printf("bogus chunk length %u]",
+ htons(chunkDescPtr->chunkLength));
+ return;
+ }
+ default_print(payloadPtr,
+ htons(chunkDescPtr->chunkLength) -
+ (sizeof(struct sctpDataPart)+
+ sizeof(struct sctpChunkDesc)+1));
+ } else
+ printf("]");