--- libaitio/src/aitio.c 2012/03/29 01:31:33 1.9 +++ libaitio/src/aitio.c 2012/04/02 09:10:30 1.9.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.c,v 1.9 2012/03/29 01:31:33 misho Exp $ +* $Id: aitio.c,v 1.9.2.1 2012/04/02 09:10:30 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -86,7 +86,7 @@ io_SetErr(int eno, char *estr, ...) /* - * ioPromptRead() Read data from input h[0] with prompt to output h[1] + * ioPromptRead() - Read data from input h[0] with prompt to output h[1] * * @h = file handles h[0] = input, h[1] = output, if NULL use stdin, stdout * @csPrompt = Prompt before input, may be NULL @@ -140,7 +140,7 @@ ioPromptRead(int *h, const char *csPrompt, char * __re } /* - * ioPromptPassword() Read password from input h[0] with prompt to output h[1] + * ioPromptPassword() - Read password from input h[0] with prompt to output h[1] * * @h = file handles h[0] = input, h[1] = output, if NULL use stdin, stdout * @csPrompt = Prompt before input, may be NULL @@ -227,7 +227,7 @@ next: } /* - * ioRegexVerify() Function for verify data match in regex expression + * ioRegexVerify() - Function for verify data match in regex expression * * @csRegex = Regulare expression pattern * @csData = Data for check and verify @@ -276,7 +276,7 @@ ioRegexVerify(const char *csRegex, const char *csData, } /* - * ioRegexGet() Function for get data match in regex expression + * ioRegexGet() - Function for get data match in regex expression * * @csRegex = Regulare expression pattern * @csData = Data from get @@ -307,7 +307,7 @@ ioRegexGet(const char *csRegex, const char *csData, ch } /* - * ioRegexReplace() Function for replace data match in regex expression with newdata + * ioRegexReplace() - Function for replace data match in regex expression with newdata * * @csRegex = Regulare expression pattern * @csData = Source data @@ -357,7 +357,7 @@ ioRegexReplace(const char *csRegex, const char *csData } /* - * ioStrAst() Function for evaluate string like asterisk variable "{text[:[-]#[:#]]}" + * ioStrAst() - Function for evaluate string like asterisk variable "{text[:[-]#[:#]]}" * * @csString = Input string * return: NULL error, !=NULL Allocated new string evaluated from input string, must be free() @@ -408,7 +408,7 @@ ioStrAst(const char *csString) /* - * ioMkDir() Function for racursive directory creation and validation + * ioMkDir() - Function for racursive directory creation and validation * * @csDir = Full directory path * @mode = Mode for directory creation if missing dir @@ -456,7 +456,7 @@ end: } /* - * ioWatchDirLoop() Function for watching changes in directory and fire callback + * ioWatchDirLoop() - Function for watching changes in directory and fire callback * * @csDir = Full directory path * @callback = Callback if raise event! nOp -1 delete, 0 change/move, 1 create @@ -568,7 +568,7 @@ ioWatchDirLoop(const char *csDir, int (*callback)(cons } /* - * ioCreatePIDFile() Create PID file + * ioCreatePIDFile() - Create PID file * * @csName = PID filename * @ifExists = !=0 if filename exists return error @@ -596,7 +596,7 @@ ioCreatePIDFile(const char *csName, int ifExists) /* - * ioSendFile() AITNET sendfile() userland implementation, not dependant from OS + * ioSendFile() - AITNET sendfile() userland implementation, not dependant from OS * * @s = socket * @csFile = file for send @@ -663,7 +663,7 @@ ioSendFile(int s, const char *csFile, size_t sendLen, } /* - * ioRecvFile() Receive file from socket, fastest (zero-copy) way + * ioRecvFile() - Receive file from socket, fastest (zero-copy) way * * @s = socket * @csFile = file for receive @@ -698,13 +698,7 @@ ioRecvFile(int s, const char *csFile, size_t recvLen, unlink(csFile); return 0; } - if (lseek(fd, recvLen - 1, SEEK_SET) == -1) { - LOGERR; - close(fd); - unlink(csFile); - return 0; - } - if (write(fd, "", 1) == -1) { + if (ftruncate(fd, recvLen) == -1) { LOGERR; close(fd); unlink(csFile);