X-Git-Url: http://git.tdb.fi/?p=pmount-gui.git;a=blobdiff_plain;f=main.c;h=609db229f90787cd076fa1d245b6c6d864ceb99b;hp=2609341f6c870eef728bd6e08f966958fa460baa;hb=03333fb47e0bc27da1f74313618d4acf8ee10847;hpb=1121a543689042e89206fb27a52d2d8f6d97a8bb diff --git a/main.c b/main.c index 2609341..609db22 100644 --- a/main.c +++ b/main.c @@ -313,12 +313,15 @@ int can_mount(Property *props, char **allowed) static char *removable_buses[] = { "usb", "firewire", 0 }; char *devname; char *devpath; - int i; + char *bus; devname = get_property_value(props, "DEVNAME"); if(is_in_array(allowed, devname)) return 1; + if(match_property_value(props, "ID_TYPE", "cd") && match_property_value(props, "ID_CDROM_MEDIA", "1")) + return 1; + if(!match_property_value(props, "DEVTYPE", "partition")) return 0; @@ -326,9 +329,9 @@ int can_mount(Property *props, char **allowed) if(is_removable(devpath)) return 1; - for(i=0; removable_buses[i]; ++i) - if(match_property_value(props, "ID_BUS", removable_buses[i])) - return 1; + bus = get_property_value(props, "ID_BUS"); + if(is_in_array(removable_buses, bus)) + return 1; return check_buses(devpath, removable_buses); }