summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am6
-rw-r--r--extras/ata_id/ata_id.c12
-rw-r--r--extras/scsi_id/scsi_id.c24
-rw-r--r--libudev/docs/libudev-docs.xml3
-rw-r--r--libudev/docs/libudev-sections.txt5
-rw-r--r--libudev/libudev-private.h5
-rw-r--r--libudev/libudev-util.c17
-rw-r--r--libudev/libudev.h10
-rw-r--r--udev/udev-builtin-usb_id.c28
-rw-r--r--udev/udev-event.c2
-rw-r--r--udev/udev-rules.c8
11 files changed, 69 insertions, 51 deletions
diff --git a/Makefile.am b/Makefile.am
index d15c6d01b2..d8b1889c22 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,9 +41,9 @@ dist_libexec_SCRIPTS =
# ------------------------------------------------------------------------------
# libudev
# ------------------------------------------------------------------------------
-LIBUDEV_CURRENT=12
-LIBUDEV_REVISION=2
-LIBUDEV_AGE=12
+LIBUDEV_CURRENT=13
+LIBUDEV_REVISION=0
+LIBUDEV_AGE=13
SUBDIRS += libudev/docs
diff --git a/extras/ata_id/ata_id.c b/extras/ata_id/ata_id.c
index cadadfc27f..e38a7d1aa5 100644
--- a/extras/ata_id/ata_id.c
+++ b/extras/ata_id/ata_id.c
@@ -547,12 +547,12 @@ int main(int argc, char *argv[])
memcpy (model, id.model, 40);
model[40] = '\0';
udev_util_encode_string(model, model_enc, sizeof(model_enc));
- udev_util_replace_whitespace((char *) id.model, model, 40);
- udev_util_replace_chars(model, NULL);
- udev_util_replace_whitespace((char *) id.serial_no, serial, 20);
- udev_util_replace_chars(serial, NULL);
- udev_util_replace_whitespace((char *) id.fw_rev, revision, 8);
- udev_util_replace_chars(revision, NULL);
+ util_replace_whitespace((char *) id.model, model, 40);
+ util_replace_chars(model, NULL);
+ util_replace_whitespace((char *) id.serial_no, serial, 20);
+ util_replace_chars(serial, NULL);
+ util_replace_whitespace((char *) id.fw_rev, revision, 8);
+ util_replace_chars(revision, NULL);
if (export) {
/* Set this to convey the disk speaks the ATA protocol */
diff --git a/extras/scsi_id/scsi_id.c b/extras/scsi_id/scsi_id.c
index c14d411841..26b92e3fcd 100644
--- a/extras/scsi_id/scsi_id.c
+++ b/extras/scsi_id/scsi_id.c
@@ -510,13 +510,13 @@ static int set_inq_values(struct udev *udev, struct scsi_id_device *dev_scsi, co
udev_util_encode_string(dev_scsi->vendor, vendor_enc_str, sizeof(vendor_enc_str));
udev_util_encode_string(dev_scsi->model, model_enc_str, sizeof(model_enc_str));
- udev_util_replace_whitespace(dev_scsi->vendor, vendor_str, sizeof(vendor_str));
- udev_util_replace_chars(vendor_str, NULL);
- udev_util_replace_whitespace(dev_scsi->model, model_str, sizeof(model_str));
- udev_util_replace_chars(model_str, NULL);
+ util_replace_whitespace(dev_scsi->vendor, vendor_str, sizeof(vendor_str));
+ util_replace_chars(vendor_str, NULL);
+ util_replace_whitespace(dev_scsi->model, model_str, sizeof(model_str));
+ util_replace_chars(model_str, NULL);
set_type(dev_scsi->type, type_str, sizeof(type_str));
- udev_util_replace_whitespace(dev_scsi->revision, revision_str, sizeof(revision_str));
- udev_util_replace_chars(revision_str, NULL);
+ util_replace_whitespace(dev_scsi->revision, revision_str, sizeof(revision_str));
+ util_replace_chars(revision_str, NULL);
return 0;
}
@@ -560,11 +560,11 @@ static int scsi_id(struct udev *udev, char *maj_min_dev)
printf("ID_REVISION=%s\n", revision_str);
printf("ID_TYPE=%s\n", type_str);
if (dev_scsi.serial[0] != '\0') {
- udev_util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
- udev_util_replace_chars(serial_str, NULL);
+ util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
+ util_replace_chars(serial_str, NULL);
printf("ID_SERIAL=%s\n", serial_str);
- udev_util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str));
- udev_util_replace_chars(serial_str, NULL);
+ util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str));
+ util_replace_chars(serial_str, NULL);
printf("ID_SERIAL_SHORT=%s\n", serial_str);
}
if (dev_scsi.wwn[0] != '\0') {
@@ -593,8 +593,8 @@ static int scsi_id(struct udev *udev, char *maj_min_dev)
if (reformat_serial) {
char serial_str[MAX_SERIAL_LEN];
- udev_util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
- udev_util_replace_chars(serial_str, NULL);
+ util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
+ util_replace_chars(serial_str, NULL);
printf("%s\n", serial_str);
goto out;
}
diff --git a/libudev/docs/libudev-docs.xml b/libudev/docs/libudev-docs.xml
index f470916700..b7feb45529 100644
--- a/libudev/docs/libudev-docs.xml
+++ b/libudev/docs/libudev-docs.xml
@@ -9,7 +9,7 @@
<title>libudev Reference Manual</title>
<releaseinfo>for libudev version &version;</releaseinfo>
<copyright>
- <year>2009-2010</year>
+ <year>2009-2011</year>
<holder>Kay Sievers &lt;kay.sievers@vrfy.org&gt;</holder>
</copyright>
</bookinfo>
@@ -22,6 +22,7 @@
<xi:include href="xml/libudev-monitor.xml"/>
<xi:include href="xml/libudev-enumerate.xml"/>
<xi:include href="xml/libudev-queue.xml"/>
+ <xi:include href="xml/libudev-util.xml"/>
</chapter>
<index id="api-index-full">
diff --git a/libudev/docs/libudev-sections.txt b/libudev/docs/libudev-sections.txt
index a686c4558e..15c3e934b5 100644
--- a/libudev/docs/libudev-sections.txt
+++ b/libudev/docs/libudev-sections.txt
@@ -120,3 +120,8 @@ udev_queue_get_kernel_seqnum
udev_queue_get_udev_seqnum
</SECTION>
+<SECTION>
+<FILE>libudev-util</FILE>
+<TITLE>udev_util</TITLE>
+udev_util_encode_string
+</SECTION>
diff --git a/libudev/libudev-private.h b/libudev/libudev-private.h
index 1bcd2e3236..ffc82cbc6d 100644
--- a/libudev/libudev-private.h
+++ b/libudev/libudev-private.h
@@ -181,9 +181,8 @@ size_t util_strpcpy(char **dest, size_t size, const char *src);
size_t util_strpcpyl(char **dest, size_t size, const char *src, ...) __attribute__((sentinel));
size_t util_strscpy(char *dest, size_t size, const char *src);
size_t util_strscpyl(char *dest, size_t size, const char *src, ...) __attribute__((sentinel));
-int udev_util_replace_whitespace(const char *str, char *to, size_t len);
-int udev_util_replace_chars(char *str, const char *white);
-int udev_util_encode_string(const char *str, char *str_enc, size_t len);
+int util_replace_whitespace(const char *str, char *to, size_t len);
+int util_replace_chars(char *str, const char *white);
unsigned int util_string_hash32(const char *key);
uint64_t util_string_bloom64(const char *str);
diff --git a/libudev/libudev-util.c b/libudev/libudev-util.c
index a600b0a881..e08349e0fa 100644
--- a/libudev/libudev-util.c
+++ b/libudev/libudev-util.c
@@ -1,7 +1,7 @@
/*
* libudev - interface to udev device information
*
- * Copyright (C) 2008-2009 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -24,6 +24,11 @@
#include "libudev.h"
#include "libudev-private.h"
+/**
+ * SECTION:libudev-util
+ * @short_description: utils
+ */
+
ssize_t util_get_sys_core_link_value(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size)
{
char path[UTIL_PATH_SIZE];
@@ -342,7 +347,7 @@ static int utf8_encoded_valid_unichar(const char *str)
return len;
}
-int udev_util_replace_whitespace(const char *str, char *to, size_t len)
+int util_replace_whitespace(const char *str, char *to, size_t len)
{
size_t i, j;
@@ -382,7 +387,7 @@ static int is_whitelisted(char c, const char *white)
}
/* allow chars in whitelist, plain ascii, hex-escaping and valid utf8 */
-int udev_util_replace_chars(char *str, const char *white)
+int util_replace_chars(char *str, const char *white)
{
size_t i = 0;
int replaced = 0;
@@ -425,18 +430,18 @@ int udev_util_replace_chars(char *str, const char *white)
}
/**
- * util_encode_string:
+ * udev_util_encode_string:
* @str: input string to be encoded
* @str_enc: output string to store the encoded input string
* @len: maximum size of the output string, which may be
* four times as long as the input string
*
* Encode all potentially unsafe characters of a string to the
- * corresponding hex value prefixed by '\x'.
+ * corresponding 2 char hex value prefixed by '\x'.
*
* Returns: 0 if the entire string was copied, non-zero otherwise.
**/
-int udev_util_encode_string(const char *str, char *str_enc, size_t len)
+UDEV_EXPORT int udev_util_encode_string(const char *str, char *str_enc, size_t len)
{
size_t i, j;
diff --git a/libudev/libudev.h b/libudev/libudev.h
index 47b56bb17a..497f752fca 100644
--- a/libudev/libudev.h
+++ b/libudev/libudev.h
@@ -1,7 +1,7 @@
/*
* libudev - interface to udev device information
*
- * Copyright (C) 2008-2010 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -174,6 +174,14 @@ int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queue,
unsigned long long int start, unsigned long long int end);
struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
+/*
+ * udev_util
+ *
+ * udev specific utilities
+ */
+int udev_util_encode_string(const char *str, char *str_enc, size_t len);
+
+
#ifdef __cplusplus
} /* extern "C" */
#endif
diff --git a/udev/udev-builtin-usb_id.c b/udev/udev-builtin-usb_id.c
index 1585b107a0..587c21667b 100644
--- a/udev/udev-builtin-usb_id.c
+++ b/udev/udev-builtin-usb_id.c
@@ -350,8 +350,8 @@ static int builtin_usb_id(struct udev_device *dev, bool test)
goto fallback;
}
udev_util_encode_string(scsi_vendor, vendor_str_enc, sizeof(vendor_str_enc));
- udev_util_replace_whitespace(scsi_vendor, vendor_str, sizeof(vendor_str)-1);
- udev_util_replace_chars(vendor_str, NULL);
+ util_replace_whitespace(scsi_vendor, vendor_str, sizeof(vendor_str)-1);
+ util_replace_chars(vendor_str, NULL);
scsi_model = udev_device_get_sysattr_value(dev_scsi, "model");
if (!scsi_model) {
@@ -360,8 +360,8 @@ static int builtin_usb_id(struct udev_device *dev, bool test)
goto fallback;
}
udev_util_encode_string(scsi_model, model_str_enc, sizeof(model_str_enc));
- udev_util_replace_whitespace(scsi_model, model_str, sizeof(model_str)-1);
- udev_util_replace_chars(model_str, NULL);
+ util_replace_whitespace(scsi_model, model_str, sizeof(model_str)-1);
+ util_replace_chars(model_str, NULL);
scsi_type = udev_device_get_sysattr_value(dev_scsi, "type");
if (!scsi_type) {
@@ -377,8 +377,8 @@ static int builtin_usb_id(struct udev_device *dev, bool test)
udev_device_get_sysname(dev_scsi));
goto fallback;
}
- udev_util_replace_whitespace(scsi_rev, revision_str, sizeof(revision_str)-1);
- udev_util_replace_chars(revision_str, NULL);
+ util_replace_whitespace(scsi_rev, revision_str, sizeof(revision_str)-1);
+ util_replace_chars(revision_str, NULL);
/*
* some broken devices have the same identifiers
@@ -403,8 +403,8 @@ fallback:
return EXIT_FAILURE;
}
udev_util_encode_string(usb_vendor, vendor_str_enc, sizeof(vendor_str_enc));
- udev_util_replace_whitespace(usb_vendor, vendor_str, sizeof(vendor_str)-1);
- udev_util_replace_chars(vendor_str, NULL);
+ util_replace_whitespace(usb_vendor, vendor_str, sizeof(vendor_str)-1);
+ util_replace_chars(vendor_str, NULL);
}
if (model_str[0] == '\0') {
@@ -418,8 +418,8 @@ fallback:
return EXIT_FAILURE;
}
udev_util_encode_string(usb_model, model_str_enc, sizeof(model_str_enc));
- udev_util_replace_whitespace(usb_model, model_str, sizeof(model_str)-1);
- udev_util_replace_chars(model_str, NULL);
+ util_replace_whitespace(usb_model, model_str, sizeof(model_str)-1);
+ util_replace_chars(model_str, NULL);
}
if (revision_str[0] == '\0') {
@@ -427,8 +427,8 @@ fallback:
usb_rev = udev_device_get_sysattr_value(dev_usb, "bcdDevice");
if (usb_rev) {
- udev_util_replace_whitespace(usb_rev, revision_str, sizeof(revision_str)-1);
- udev_util_replace_chars(revision_str, NULL);
+ util_replace_whitespace(usb_rev, revision_str, sizeof(revision_str)-1);
+ util_replace_chars(revision_str, NULL);
}
}
@@ -437,8 +437,8 @@ fallback:
usb_serial = udev_device_get_sysattr_value(dev_usb, "serial");
if (usb_serial) {
- udev_util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1);
- udev_util_replace_chars(serial_str, NULL);
+ util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1);
+ util_replace_chars(serial_str, NULL);
}
}
diff --git a/udev/udev-event.c b/udev/udev-event.c
index 3c1a3e7aa7..7db7513247 100644
--- a/udev/udev-event.c
+++ b/udev/udev-event.c
@@ -318,7 +318,7 @@ subst:
len = strlen(vbuf);
while (len > 0 && isspace(vbuf[--len]))
vbuf[len] = '\0';
- count = udev_util_replace_chars(vbuf, UDEV_ALLOWED_CHARS_INPUT);
+ count = util_replace_chars(vbuf, UDEV_ALLOWED_CHARS_INPUT);
if (count > 0)
info(event->udev, "%i character(s) replaced\n" , count);
l = util_strpcpy(&s, l, vbuf);
diff --git a/udev/udev-rules.c b/udev/udev-rules.c
index 84033243c2..75636d9bd6 100644
--- a/udev/udev-rules.c
+++ b/udev/udev-rules.c
@@ -2271,7 +2271,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
util_remove_trailing_chars(result, '\n');
if (esc == ESCAPE_UNSET || esc == ESCAPE_REPLACE) {
- count = udev_util_replace_chars(result, UDEV_ALLOWED_CHARS_INPUT);
+ count = util_replace_chars(result, UDEV_ALLOWED_CHARS_INPUT);
if (count > 0)
info(event->udev, "%i character(s) replaced\n" , count);
}
@@ -2562,7 +2562,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
event->name_final = true;
udev_event_apply_format(event, name, name_str, sizeof(name_str));
if (esc == ESCAPE_UNSET || esc == ESCAPE_REPLACE) {
- count = udev_util_replace_chars(name_str, "/");
+ count = util_replace_chars(name_str, "/");
if (count > 0)
info(event->udev, "%i character(s) replaced\n", count);
}
@@ -2592,9 +2592,9 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
/* allow multiple symlinks separated by spaces */
udev_event_apply_format(event, &rules->buf[cur->key.value_off], temp, sizeof(temp));
if (esc == ESCAPE_UNSET)
- count = udev_util_replace_chars(temp, "/ ");
+ count = util_replace_chars(temp, "/ ");
else if (esc == ESCAPE_REPLACE)
- count = udev_util_replace_chars(temp, "/");
+ count = util_replace_chars(temp, "/");
if (count > 0)
info(event->udev, "%i character(s) replaced\n" , count);
dbg(event->udev, "rule applied, added symlink(s) '%s'\n", temp);