add hotplug events
[oweals/mountd.git] / mount.c
diff --git a/mount.c b/mount.c
index 0370eb992ee038546445fdceb2c2642d28666381..0133f172007f629791c77a578cca6d3048b64cc4 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -59,6 +59,7 @@ char *fs_names[] = {
        "",
        "NTFS",
        "",
+       "EXFAT",
        "EXT4"
 };
 
@@ -160,6 +161,7 @@ static void mount_add_list(char *name, char *dev, char *serial,
                snprintf(tmp2, 64, "/tmp/run/mountd/%s", dev);
                symlink(tmp2, tmp);
                mount_new("/tmp/run/mountd/", dev);
+               system_printf("ACTION=add DEVICE=%s NAME=%s /sbin/hotplug-call mount", dev, name);
        }
 }
 
@@ -227,6 +229,11 @@ int mount_new(char *path, char *dev)
        pid = autofs_safe_fork();
        if(!pid)
        {
+               if(mount->fs == EXFAT)
+               {
+                       log_printf("mount -t exfat -o rw,uid=1000,gid=1000 /dev/%s %s", mount->dev, tmp);
+                       ret = system_printf("mount -t exfat -o rw,uid=1000,gid=1000 /dev/%s %s", mount->dev, tmp);
+               }
                if(mount->fs == FAT)
                {
                        log_printf("mount -t vfat -o rw,uid=1000,gid=1000 /dev/%s %s", mount->dev, tmp);
@@ -709,7 +716,7 @@ static void mount_enum_drives(void)
                        log_printf("removing %s\n", q->dev);
                        snprintf(tmp, 64, "%s%s", uci_path, q->name);
                        unlink(tmp);
-                       system_printf("/etc/mountd/event remove %s %s", q->dev, q->name);
+                       system_printf("ACTION=remove DEVICE=%s NAME=%s /sbin/hotplug-call mount", q->dev, q->name);
                        free(q);
                        mount_dump_uci_state();
                        system_printf("/etc/fonstated/ReloadSamba");