|
Line
Link Here
|
| 0 |
-- src/manager.c |
0 |
++ src/manager.c |
|
Lines 1417-1422
Link Here
|
| 1417 |
MOUNT_UID = (1 << 14), |
1417 |
MOUNT_UID = (1 << 14), |
| 1418 |
MOUNT_UMASK = (1 << 15), |
1418 |
MOUNT_UMASK = (1 << 15), |
| 1419 |
MOUNT_UTF8 = (1 << 16), |
1419 |
MOUNT_UTF8 = (1 << 16), |
|
|
1420 |
MOUNT_FMASK = (1 << 17), |
| 1420 |
}; |
1421 |
}; |
| 1421 |
|
1422 |
|
| 1422 |
static struct { |
1423 |
static struct { |
|
Lines 1426-1432
Link Here
|
| 1426 |
{ "codepage=", MOUNT_CODEPAGE }, /* vfat */ |
1427 |
{ "codepage=", MOUNT_CODEPAGE }, /* vfat */ |
| 1427 |
{ "data=", MOUNT_DATA }, /* ext3 */ |
1428 |
{ "data=", MOUNT_DATA }, /* ext3 */ |
| 1428 |
{ "dirsync", MOUNT_DIRSYNC }, |
1429 |
{ "dirsync", MOUNT_DIRSYNC }, |
| 1429 |
{ "dmask=", MOUNT_DMASK }, /* ntfs */ |
1430 |
{ "dmask=", MOUNT_DMASK }, /* vfat, ntfs */ |
| 1430 |
{ "flush", MOUNT_FLUSH }, /* vfat */ |
1431 |
{ "flush", MOUNT_FLUSH }, /* vfat */ |
| 1431 |
{ "iocharset=", MOUNT_IOCHARSET }, /* vfat, iso9660 */ |
1432 |
{ "iocharset=", MOUNT_IOCHARSET }, /* vfat, iso9660 */ |
| 1432 |
{ "mode=", MOUNT_MODE }, /* iso9660 */ |
1433 |
{ "mode=", MOUNT_MODE }, /* iso9660 */ |
|
Lines 1440-1445
Link Here
|
| 1440 |
{ "uid=", MOUNT_UID }, /* vfat, ntfs, udf, iso9660 */ |
1441 |
{ "uid=", MOUNT_UID }, /* vfat, ntfs, udf, iso9660 */ |
| 1441 |
{ "umask=", MOUNT_UMASK }, /* vfat, ntfs, udf */ |
1442 |
{ "umask=", MOUNT_UMASK }, /* vfat, ntfs, udf */ |
| 1442 |
{ "utf8", MOUNT_UTF8 }, /* vfat, iso9660 */ |
1443 |
{ "utf8", MOUNT_UTF8 }, /* vfat, iso9660 */ |
|
|
1444 |
{ "fmask=", MOUNT_FMASK }, /* vfat, ntfs */ |
| 1443 |
}; |
1445 |
}; |
| 1444 |
|
1446 |
|
| 1445 |
|
1447 |
|
|
Lines 1640-1646
Link Here
|
| 1640 |
guint32 opts = 0; |
1642 |
guint32 opts = 0; |
| 1641 |
char uid[32]; |
1643 |
char uid[32]; |
| 1642 |
size_t i, j; |
1644 |
size_t i, j; |
| 1643 |
|
1645 |
|
| 1644 |
if ((moptions = libhal_device_get_property_strlist (hal_ctx, udi, "volume.mount.valid_options", NULL))) { |
1646 |
if ((moptions = libhal_device_get_property_strlist (hal_ctx, udi, "volume.mount.valid_options", NULL))) { |
| 1645 |
for (i = 0; moptions[i]; i++) { |
1647 |
for (i = 0; moptions[i]; i++) { |
| 1646 |
for (j = 0; j < G_N_ELEMENTS (mount_options); j++) { |
1648 |
for (j = 0; j < G_N_ELEMENTS (mount_options); j++) { |
|
Lines 1669-1676
Link Here
|
| 1669 |
g_ptr_array_add (options, "sync"); |
1671 |
g_ptr_array_add (options, "sync"); |
| 1670 |
} |
1672 |
} |
| 1671 |
|
1673 |
|
| 1672 |
if (opts & MOUNT_SHORTNAME) |
1674 |
if (opts & MOUNT_FMASK) { |
| 1673 |
g_ptr_array_add (options, "shortname=winnt"); |
1675 |
mode_t mask = umask (0); |
|
|
1676 |
umask (mask); |
| 1677 |
char mask_str[12]; |
| 1678 |
sprintf (mask_str, "fmask=%#o", mask | 0111); |
| 1679 |
g_ptr_array_add (options, mask_str); |
| 1680 |
} |
| 1674 |
} else if (!strcmp (fstype, "iso9660")) { |
1681 |
} else if (!strcmp (fstype, "iso9660")) { |
| 1675 |
/* only care about uid= and iocharset= */ |
1682 |
/* only care about uid= and iocharset= */ |
| 1676 |
} else if (!strcmp (fstype, "udf")) { |
1683 |
} else if (!strcmp (fstype, "udf")) { |