chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ata_id: open volume O_NONBLOCK
[elogind.git]
/
extras
/
ata_id
/
ata_id.c
diff --git
a/extras/ata_id/ata_id.c
b/extras/ata_id/ata_id.c
index 34b1ccdff1203be22f444626ef9ad63879fab7a4..ba40555a0b1040c3b41209ea8be484b81569a9b8 100644
(file)
--- a/
extras/ata_id/ata_id.c
+++ b/
extras/ata_id/ata_id.c
@@
-62,14
+62,13
@@
void log_message(int priority, const char *format, ...)
}
#endif
}
#endif
-static void set_str(char *to, const
unsigned char *from, in
t count)
+static void set_str(char *to, const
char *from, size_
t count)
{
{
- int i, j;
- int len;
+ size_t i, j, len;
/* strip trailing whitespace */
len = strnlen(from, count);
/* strip trailing whitespace */
len = strnlen(from, count);
- while (isspace(from[len-1]))
+ while (
len &&
isspace(from[len-1]))
len--;
/* strip leading whitespace */
len--;
/* strip leading whitespace */
@@
-107,6
+106,8
@@
int main(int argc, char *argv[])
int fd;
int rc = 0;
int fd;
int rc = 0;
+ logging_init("ata_id");
+
for (i = 1 ; i < argc; i++) {
char *arg = argv[i];
for (i = 1 ; i < argc; i++) {
char *arg = argv[i];
@@
-121,10
+122,7
@@
int main(int argc, char *argv[])
goto exit;
}
goto exit;
}
- fd = open(node, O_RDONLY);
- if (fd < 0)
- if (errno == ENOMEDIUM)
- fd = open(node, O_RDONLY|O_NONBLOCK);
+ fd = open(node, O_RDONLY|O_NONBLOCK);
if (fd < 0) {
err("unable to open '%s'", node);
rc = 1;
if (fd < 0) {
err("unable to open '%s'", node);
rc = 1;
@@
-137,9
+135,9
@@
int main(int argc, char *argv[])
goto close;
}
goto close;
}
- set_str(model, id.model, 40);
- set_str(serial, id.serial_no, 20);
- set_str(revision, id.fw_rev, 8);
+ set_str(model,
(char *)
id.model, 40);
+ set_str(serial,
(char *)
id.serial_no, 20);
+ set_str(revision,
(char *)
id.fw_rev, 8);
if (export) {
if ((id.config >> 8) & 0x80) {
if (export) {
if ((id.config >> 8) & 0x80) {
@@
-167,8
+165,13
@@
int main(int argc, char *argv[])
printf("ID_MODEL=%s\n", model);
printf("ID_SERIAL=%s\n", serial);
printf("ID_REVISION=%s\n", revision);
printf("ID_MODEL=%s\n", model);
printf("ID_SERIAL=%s\n", serial);
printf("ID_REVISION=%s\n", revision);
- } else
- printf("%s_%s\n", model, serial);
+ printf("ID_BUS=ata\n");
+ } else {
+ if (serial[0] != '\0')
+ printf("%s_%s\n", model, serial);
+ else
+ printf("%s\n", model);
+ }
close:
close(fd);
close:
close(fd);