|
|
| version 1.15, 2013/05/30 09:10:13 | version 1.15.2.3, 2013/06/04 12:44:16 |
|---|---|
| Line 547 ioRecvFile(int s, const char *csFile, size_t recvLen, | Line 547 ioRecvFile(int s, const char *csFile, size_t recvLen, |
| munmap(addr, recvLen); | munmap(addr, recvLen); |
| return len; | return len; |
| } | } |
| /* | |
| * ioRealFileName() - Get real file name | |
| * | |
| * @fname = filename | |
| * return: =NULL error or !=NULL real filename, should be free with e_free() | |
| */ | |
| char * | |
| ioRealFileName(const char *fname) | |
| { | |
| char *str = NULL; | |
| struct stat sb; | |
| if (!fname) | |
| return NULL; | |
| str = e_malloc(MAXPATHLEN); | |
| if (!str) { | |
| io_SetErr(elwix_GetErrno(), "%s", elwix_GetError()); | |
| return NULL; | |
| } else | |
| memset(str, 0, MAXPATHLEN); | |
| if (readlink(fname, str, MAXPATHLEN) == -1) { | |
| if (stat(fname, &sb) == -1) { | |
| LOGERR; | |
| e_free(str); | |
| return NULL; | |
| } else | |
| strlcpy(str, fname, MAXPATHLEN); | |
| } | |
| return str; | |
| } |