f80935e66086e97d29426bb9053c10eae078385b kent Sun Feb 2 16:22:01 2014 -0800 Moving a check on commands against message size to library since in fact it was already implemented twice, and I needed it a third time. diff --git src/parasol/inc/paraMessage.h src/parasol/inc/paraMessage.h index 5307e17..c31fd76 100644 --- src/parasol/inc/paraMessage.h +++ src/parasol/inc/paraMessage.h @@ -34,49 +34,53 @@ /* Initialize message with ascii ip address. */ struct paraMessage *pmNew(rudpHost ipAddress, bits16 port); /* Create new message in memory. ipAddress is in host order. */ struct paraMessage *pmNewFromName(char *hostName, bits16 port); /* Create new message in memory */ void pmFree(struct paraMessage **pPm); /* Free up message. */ void pmClear(struct paraMessage *pm); /* Clear out data buffer. */ void pmSet(struct paraMessage *pm, char *message); -/* Set message in data buffer. */ +/* Set message in data buffer. Aborts if message too long (rudpMaxSize or more). */ void pmPrintf(struct paraMessage *pm, char *format, ...) /* Print message into end of data buffer. Warn if it goes * past limit. */ #if defined(__GNUC__) __attribute__((format(printf, 2, 3))) #endif ; boolean pmSend(struct paraMessage *pm, struct rudp *ru); /* Send out message. Print warning message and return FALSE if * there is a problem. */ boolean pmSendString(struct paraMessage *pm, struct rudp *ru, char *string); /* Send out given message strng. Print warning message and return FALSE if * there is a problem. */ +void pmCheckCommandSize(char *string, int len); +/* Check that string of given len is not too long to fit into paraMessage. + * If it is, abort with good error message assuming it was a command string */ + boolean pmReceive(struct paraMessage *pm, struct rudp *ru); /* Receive message. Print warning message and return FALSE if * there is a problem. */ boolean pmReceiveTimeOut(struct paraMessage *pm, struct rudp *ru, int timeOut); /* Wait up to timeOut microseconds for message. To wait forever * set timeOut to zero. */ void pmmInit(struct paraMultiMessage *pmm, struct paraMessage *pm, struct in_addr sin_addr); /* Initialize structure for multi-message response */ boolean pmmReceiveTimeOut(struct paraMultiMessage *pmm, struct rudp *ru, int timeOut); /* Multi-message receive * Wait up to timeOut microseconds for message. To wait forever * set timeOut to zero. For multi-message response