201 |
{ |
{ |
202 |
int ret; |
int ret; |
203 |
off_t pos; |
off_t pos; |
204 |
static const char zero; |
static const char zero = 0; |
205 |
|
|
206 |
/* Try the simple method first */ |
/* Try the simple method first */ |
207 |
if ((ret = ftruncate(fd, length)) != -1) |
if ((ret = ftruncate(fd, length)) != -1) |
209 |
return ret; |
return ret; |
210 |
} |
} |
211 |
|
|
212 |
/* |
/* |
213 |
* Some kind of error. Perhaps we were trying to grow. Retry |
* Some kind of error. Perhaps we were trying to grow. Retry |
214 |
* in a safe way. |
* in a safe way. |
215 |
*/ |
*/ |
325 |
fprintf(stderr, "share name %s truncated to %s\n", optarg, |
fprintf(stderr, "share name %s truncated to %s\n", optarg, |
326 |
g_rdpdr_device[*id].name); |
g_rdpdr_device[*id].name); |
327 |
|
|
328 |
g_rdpdr_device[*id].local_path = xmalloc(strlen(pos2) + 1); |
g_rdpdr_device[*id].local_path = (char *) xmalloc(strlen(pos2) + 1); |
329 |
strcpy(g_rdpdr_device[*id].local_path, pos2); |
strcpy(g_rdpdr_device[*id].local_path, pos2); |
330 |
g_rdpdr_device[*id].device_type = DEVICE_TYPE_DISK; |
g_rdpdr_device[*id].device_type = DEVICE_TYPE_DISK; |
331 |
count++; |
count++; |
960 |
if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) |
if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) |
961 |
continue; |
continue; |
962 |
p->num_entries++; |
p->num_entries++; |
963 |
fullname = xmalloc(strlen(pfinfo->path) + strlen(dp->d_name) + 2); |
fullname = (char *) xmalloc(strlen(pfinfo->path) + strlen(dp->d_name) + 2); |
964 |
sprintf(fullname, "%s/%s", pfinfo->path, dp->d_name); |
sprintf(fullname, "%s/%s", pfinfo->path, dp->d_name); |
965 |
|
|
966 |
if (!stat(fullname, &buf)) |
if (!stat(fullname, &buf)) |
997 |
|
|
998 |
while ((e = getmntent(fdfs))) |
while ((e = getmntent(fdfs))) |
999 |
{ |
{ |
1000 |
if (strncmp(fpath, e->mnt_dir, strlen(fpath)) == 0) |
if (str_startswith(e->mnt_dir, fpath)) |
1001 |
{ |
{ |
1002 |
strcpy(info.type, e->mnt_type); |
strcpy(info.type, e->mnt_type); |
1003 |
strcpy(info.name, e->mnt_fsname); |
strcpy(info.name, e->mnt_fsname); |
1016 |
info.serial = |
info.serial = |
1017 |
(buf[42] << 24) + (buf[41] << 16) + |
(buf[42] << 24) + (buf[41] << 16) + |
1018 |
(buf[40] << 8) + buf[39]; |
(buf[40] << 8) + buf[39]; |
1019 |
strncpy(info.label, buf + 43, 10); |
strncpy(info.label, (char*)buf + 43, 10); |
1020 |
info.label[10] = '\0'; |
info.label[10] = '\0'; |
1021 |
} |
} |
1022 |
else if (lseek(fd, 32767, SEEK_SET) >= 0) /* ISO9660 */ |
else if (lseek(fd, 32767, SEEK_SET) >= 0) /* ISO9660 */ |
1023 |
{ |
{ |
1024 |
read(fd, buf, sizeof(buf)); |
read(fd, buf, sizeof(buf)); |
1025 |
strncpy(info.label, buf + 41, 32); |
strncpy(info.label, (char*)buf + 41, 32); |
1026 |
info.label[32] = '\0'; |
info.label[32] = '\0'; |
1027 |
/* info.Serial = (buf[128]<<24)+(buf[127]<<16)+(buf[126]<<8)+buf[125]; */ |
/* info.Serial = (buf[128]<<24)+(buf[127]<<16)+(buf[126]<<8)+buf[125]; */ |
1028 |
} |
} |