mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
[PATCH] remove now works!
This commit is contained in:
parent
3f4967a1fb
commit
8b16416dce
5
test
5
test
@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
export ACTION=add
|
||||
export DEVPATH=/devices/pci0/00:09.0/usb1/1-1/1-1.2/ttyUSB7
|
||||
#export ACTION=add
|
||||
export ACTION=remove
|
||||
export DEVPATH=/devices/pci0/00:09.0/usb1/1-1/1-1.1/ttyUSB7
|
||||
|
||||
./udev tty
|
||||
|
37
udev.c
37
udev.c
@ -183,7 +183,21 @@ static int create_node(char *name, char type, int major, int minor, int mode)
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int add_node(char *device, char type)
|
||||
/*
|
||||
* We also want to clean up any symlinks that were created in create_node()
|
||||
*/
|
||||
static int delete_node(char *name)
|
||||
{
|
||||
char filename[255];
|
||||
|
||||
strncpy(filename, UDEV_ROOT, sizeof(filename));
|
||||
strncat(filename, name, sizeof(filename));
|
||||
|
||||
dbg("unlinking %s", filename);
|
||||
return unlink(filename);
|
||||
}
|
||||
|
||||
static int add_device(char *device, char type)
|
||||
{
|
||||
char *name;
|
||||
int major;
|
||||
@ -217,9 +231,22 @@ exit:
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int remove_node(char *device)
|
||||
static int remove_device(char *device)
|
||||
{
|
||||
return 0;
|
||||
char *name;
|
||||
int retval = 0;
|
||||
|
||||
name = get_name(device, 0, 0);
|
||||
if (name == NULL) {
|
||||
dbg ("get_name failed");
|
||||
retval = -ENODEV;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
return delete_node(name);
|
||||
|
||||
exit:
|
||||
return retval;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
@ -256,10 +283,10 @@ int main(int argc, char *argv[])
|
||||
dbg("looking at %s", device);
|
||||
|
||||
if (strcmp(action, "add") == 0)
|
||||
return add_node(device, type);
|
||||
return add_device(device, type);
|
||||
|
||||
if (strcmp(action, "remove") == 0)
|
||||
return remove_node(device);
|
||||
return remove_device(device);
|
||||
|
||||
dbg("Unknown action: %s", action);
|
||||
return -EINVAL;
|
||||
|
Loading…
Reference in New Issue
Block a user