chiark / gitweb /
remove udevsend
authorKay Sievers <kay.sievers@suse.de>
Sat, 27 May 2006 10:20:51 +0000 (12:20 +0200)
committerKay Sievers <kay.sievers@suse.de>
Sat, 27 May 2006 10:20:51 +0000 (12:20 +0200)
Makefile
TODO
udevd.c
udevd.h
udevsend.8 [deleted file]
udevsend.c [deleted file]
udevsend.xml [deleted file]

index ce84c52f65468b2c72531de7b340f8bc26aa520c..e39ebfebf453096df844e2226e11d826637f5b09 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -51,7 +51,6 @@ PROGRAMS = \
        udevd                           \
        udevtrigger                     \
        udevsettle                      \
        udevd                           \
        udevtrigger                     \
        udevsettle                      \
-       udevsend                        \
        udevcontrol                     \
        udevmonitor                     \
        udevinfo                        \
        udevcontrol                     \
        udevmonitor                     \
        udevinfo                        \
@@ -87,7 +86,6 @@ MAN_PAGES = \
        udevd.8                         \
        udevtrigger.8                   \
        udevsettle.8                    \
        udevd.8                         \
        udevtrigger.8                   \
        udevsettle.8                    \
-       udevsend.8                      \
        udevtest.8                      \
        udevinfo.8                      \
        udevstart.8
        udevtest.8                      \
        udevinfo.8                      \
        udevstart.8
diff --git a/TODO b/TODO
index 1ef9c71f077a33b1c339a14fe8a3293a7ca2c62d..719f345a0ee20c7914171af6975ac27e590be405 100644 (file)
--- a/TODO
+++ b/TODO
@@ -13,7 +13,7 @@ udev version:
   o remove MODALIAS + $modalias
     (ENV{MODALIAS}, $env{MODALIAS}, $sysfs{modalias} will do it)
 
   o remove MODALIAS + $modalias
     (ENV{MODALIAS}, $env{MODALIAS}, $sysfs{modalias} will do it)
 
-  o remove udevsend, udevstart and their man pages
+  o remove udevstart
     (we rely on the kernel "uevent" triggers of kernel 2.6.15 and no longer
      want to guess event properties from sysfs like udevstart is doing it)
 
     (we rely on the kernel "uevent" triggers of kernel 2.6.15 and no longer
      want to guess event properties from sysfs like udevstart is doing it)
 
diff --git a/udevd.c b/udevd.c
index 705e2a97800c1f2164df5b8d9149794258ef0b9c..02c4887f541d304ff091ff4f6341570b042ac27b 100644 (file)
--- a/udevd.c
+++ b/udevd.c
@@ -559,19 +559,17 @@ static struct uevent_msg *get_msg_from_envbuf(const char *buf, int buf_size)
 /* receive the udevd message from userspace */
 static struct uevent_msg *get_udevd_msg(void)
 {
 /* receive the udevd message from userspace */
 static struct uevent_msg *get_udevd_msg(void)
 {
-       static struct udevd_msg usend_msg;
-       struct uevent_msg *msg;
+       static struct udevd_msg ctrl_msg;
        ssize_t size;
        struct msghdr smsg;
        struct cmsghdr *cmsg;
        struct iovec iov;
        struct ucred *cred;
        char cred_msg[CMSG_SPACE(sizeof(struct ucred))];
        ssize_t size;
        struct msghdr smsg;
        struct cmsghdr *cmsg;
        struct iovec iov;
        struct ucred *cred;
        char cred_msg[CMSG_SPACE(sizeof(struct ucred))];
-       int envbuf_size;
        int *intval;
 
        int *intval;
 
-       memset(&usend_msg, 0x00, sizeof(struct udevd_msg));
-       iov.iov_base = &usend_msg;
+       memset(&ctrl_msg, 0x00, sizeof(struct udevd_msg));
+       iov.iov_base = &ctrl_msg;
        iov.iov_len = sizeof(struct udevd_msg);
 
        memset(&smsg, 0x00, sizeof(struct msghdr));
        iov.iov_len = sizeof(struct udevd_msg);
 
        memset(&smsg, 0x00, sizeof(struct msghdr));
@@ -599,21 +597,12 @@ static struct uevent_msg *get_udevd_msg(void)
                return NULL;
        }
 
                return NULL;
        }
 
-       if (strncmp(usend_msg.magic, UDEV_MAGIC, sizeof(UDEV_MAGIC)) != 0 ) {
-               err("message magic '%s' doesn't match, ignore it", usend_msg.magic);
+       if (strncmp(ctrl_msg.magic, UDEV_MAGIC, sizeof(UDEV_MAGIC)) != 0 ) {
+               err("message magic '%s' doesn't match, ignore it", ctrl_msg.magic);
                return NULL;
        }
 
                return NULL;
        }
 
-       switch (usend_msg.type) {
-       case UDEVD_UEVENT_UDEVSEND:
-               info("udevd event message received");
-               envbuf_size = size - offsetof(struct udevd_msg, envbuf);
-               dbg("envbuf_size=%i", envbuf_size);
-               msg = get_msg_from_envbuf(usend_msg.envbuf, envbuf_size);
-               if (msg == NULL)
-                       return NULL;
-               msg->type = usend_msg.type;
-               return msg;
+       switch (ctrl_msg.type) {
        case UDEVD_STOP_EXEC_QUEUE:
                info("udevd message (STOP_EXEC_QUEUE) received");
                stop_exec_q = 1;
        case UDEVD_STOP_EXEC_QUEUE:
                info("udevd message (STOP_EXEC_QUEUE) received");
                stop_exec_q = 1;
@@ -624,14 +613,14 @@ static struct uevent_msg *get_udevd_msg(void)
                msg_queue_manager();
                break;
        case UDEVD_SET_LOG_LEVEL:
                msg_queue_manager();
                break;
        case UDEVD_SET_LOG_LEVEL:
-               intval = (int *) usend_msg.envbuf;
+               intval = (int *) ctrl_msg.envbuf;
                info("udevd message (SET_LOG_PRIORITY) received, udev_log_priority=%i", *intval);
                udev_log_priority = *intval;
                sprintf(udev_log, "UDEV_LOG=%i", udev_log_priority);
                putenv(udev_log);
                break;
        case UDEVD_SET_MAX_CHILDS:
                info("udevd message (SET_LOG_PRIORITY) received, udev_log_priority=%i", *intval);
                udev_log_priority = *intval;
                sprintf(udev_log, "UDEV_LOG=%i", udev_log_priority);
                putenv(udev_log);
                break;
        case UDEVD_SET_MAX_CHILDS:
-               intval = (int *) usend_msg.envbuf;
+               intval = (int *) ctrl_msg.envbuf;
                info("udevd message (UDEVD_SET_MAX_CHILDS) received, max_childs=%i", *intval);
                max_childs = *intval;
                break;
                info("udevd message (UDEVD_SET_MAX_CHILDS) received, max_childs=%i", *intval);
                max_childs = *intval;
                break;
diff --git a/udevd.h b/udevd.h
index e6ed58d622d1786b6bad858722240bc58f32e189..1e9c70289637fd7fea02108ca7e328d6d038fa44 100644 (file)
--- a/udevd.h
+++ b/udevd.h
@@ -23,8 +23,6 @@
 
 #define UDEV_MAGIC                     "udevd_" UDEV_VERSION
 #define UDEVD_SOCK_PATH                        "/org/kernel/udev/udevd"
 
 #define UDEV_MAGIC                     "udevd_" UDEV_VERSION
 #define UDEVD_SOCK_PATH                        "/org/kernel/udev/udevd"
-#define UDEVSEND_WAIT_MAX_SECONDS      3
-#define UDEVSEND_WAIT_LOOP_PER_SECOND  10
 
 #define UDEVD_PRIORITY                 -4
 #define UDEV_PRIORITY                  -2
 
 #define UDEVD_PRIORITY                 -4
 #define UDEV_PRIORITY                  -2
@@ -44,7 +42,6 @@
 
 enum udevd_msg_type {
        UDEVD_UNKNOWN,
 
 enum udevd_msg_type {
        UDEVD_UNKNOWN,
-       UDEVD_UEVENT_UDEVSEND,
        UDEVD_UEVENT_NETLINK,
        UDEVD_STOP_EXEC_QUEUE,
        UDEVD_START_EXEC_QUEUE,
        UDEVD_UEVENT_NETLINK,
        UDEVD_STOP_EXEC_QUEUE,
        UDEVD_START_EXEC_QUEUE,
diff --git a/udevsend.8 b/udevsend.8
deleted file mode 100644 (file)
index b5028ad..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-.\" ** You probably do not want to edit this file directly **
-.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
-.\" Instead of manually editing it, you probably should edit the DocBook XML
-.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "UDEVSEND" "8" "August 2005" "udev" "udevsend"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevsend \- send the current environment to the udev daemon
-.SH "SYNOPSIS"
-.HP 9
-\fBudevsend\fR
-.SH "DESCRIPTION"
-.PP
-Usually the udev daemon listens directly to the kernel uevents. udevsend may be used to pass events for already existing devices from a userspace application to the daemon.
-.SH "ENVIRONMENT"
-.TP
-\fBACTION\fR
-\fIadd\fR
-or
-\fIremove\fR
-signifies the addition or the removal of a device.
-.TP
-\fBDEVPATH\fR
-The sysfs devpath without the mountpoint but a leading slash.
-.TP
-\fBSUBSYSTEM\fR
-The kernel subsystem the device belongs to.
-.SH "AUTHOR"
-.PP
-Written by Kay Sievers
-<kay.sievers@vrfy.org>.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7),
-\fBudevd\fR(8)
diff --git a/udevsend.c b/udevsend.c
deleted file mode 100644 (file)
index 9f5059a..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * udevsend.c
- *
- * Copyright (C) 2004 Ling, Xiaofeng <xiaofeng.ling@intel.com>
- * Copyright (C) 2004 Kay Sievers <kay.sievers@vrfy.org>
- *
- *     This program is free software; you can redistribute it and/or modify it
- *     under the terms of the GNU General Public License as published by the
- *     Free Software Foundation version 2 of the License.
- * 
- *     This program is distributed in the hope that it will be useful, but
- *     WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *     General Public License for more details.
- * 
- *     You should have received a copy of the GNU General Public License along
- *     with this program; if not, write to the Free Software Foundation, Inc.,
- *     675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <unistd.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-
-#include "udev.h"
-#include "udevd.h"
-
-/* global variables */
-static int sock = -1;
-
-#ifdef USE_LOG
-void log_message (int priority, const char *format, ...)
-{
-       va_list args;
-
-       if (priority > udev_log_priority)
-               return;
-
-       va_start(args, format);
-       vsyslog(priority, format, args);
-       va_end(args);
-}
-#endif
-
-int main(int argc, char *argv[], char *envp[])
-{
-       static struct udevd_msg usend_msg;
-       int usend_msg_len;
-       int i;
-       struct sockaddr_un saddr;
-       socklen_t addrlen;
-       int bufpos = 0;
-       int retval = 0;
-       const char *subsystem = NULL;
-
-       logging_init("udevsend");
-#ifdef USE_LOG
-       udev_config_init();
-#endif
-       dbg("version %s", UDEV_VERSION);
-
-       sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
-       if (sock < 0) {
-               err("error getting socket: %s", strerror(errno));
-               retval = 1;
-               goto exit;
-       }
-
-       memset(&saddr, 0x00, sizeof(struct sockaddr_un));
-       saddr.sun_family = AF_LOCAL;
-       /* use abstract namespace for socket path */
-       strcpy(&saddr.sun_path[1], UDEVD_SOCK_PATH);
-       addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;
-
-       memset(&usend_msg, 0x00, sizeof(struct udevd_msg));
-       strcpy(usend_msg.magic, UDEV_MAGIC);
-       usend_msg.type = UDEVD_UEVENT_UDEVSEND;
-
-       /* copy all keys to send buffer */
-       for (i = 0; envp[i]; i++) {
-               const char *key;
-               int keylen;
-
-               key = envp[i];
-               keylen = strlen(key);
-
-               /* ignore events which are already sent on the netlink socket */
-               if (strncmp(key, "SEQNUM=", 7) == 0) {
-                       dbg("ignoring event with SEQNUM set");
-                       retval = 0;
-                       goto exit;
-               }
-
-               /* prevent loops in the scripts we execute */
-               if (strncmp(key, "UDEVD_EVENT=", 12) == 0) {
-                       err("event loop, already passed through the daemon, exit");
-                       retval = 2;
-                       goto exit;
-               }
-
-               if (bufpos + keylen >= UEVENT_BUFFER_SIZE-1) {
-                       err("environment buffer too small, probably not called by the kernel");
-                       continue;
-               }
-
-               /* remember the SUBSYSTEM */
-               if (strncmp(key, "SUBSYSTEM=", 10) == 0)
-                       subsystem = &key[10];
-
-               dbg("add '%s' to env[%i] buffer", key, i);
-               strcpy(&usend_msg.envbuf[bufpos], key);
-               bufpos += keylen + 1;
-       }
-
-       usend_msg_len = offsetof(struct udevd_msg, envbuf) + bufpos;
-       dbg("usend_msg_len=%i", usend_msg_len);
-
-       if (sendto(sock, &usend_msg, usend_msg_len, 0, (struct sockaddr *)&saddr, addrlen) < 0) {
-               retval = 3;
-               err("error sending message: %s", strerror(errno));
-       }
-
-exit:
-       if (sock != -1)
-               close(sock);
-
-       logging_close();
-       return retval;
-}
diff --git a/udevsend.xml b/udevsend.xml
deleted file mode 100644 (file)
index 9e94ce1..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <articleinfo>
-    <title>xmlto</title>
-    <author>
-      <firstname>Kay</firstname>
-      <surname>Sievers</surname>
-      <email>kay.sievers@vrfy.org</email>
-    </author>
-    <copyright>
-      <year>2005</year>
-      <holder>Kay Sievers</holder>
-    </copyright>
-  </articleinfo>
-
-  <section>
-    <title>udevsend</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevsend</title>
-        <date>August 2005</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevsend</refentrytitle>
-        <manvolnum>8</manvolnum>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevsend</refname>
-        <refpurpose>send the current environment to the udev daemon</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevsend</command>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>Usually the udev daemon listens directly to the kernel uevents.
-        udevsend may be used to pass events for already existing devices from
-        a userspace application to the daemon.</para>
-      </refsect1>
-
-      <refsect1><title>ENVIRONMENT</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>ACTION</option></term>
-            <listitem>
-              <para><replaceable>add</replaceable> or <replaceable>remove</replaceable> signifies
-              the addition or the removal of a device.</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term><option>DEVPATH</option></term>
-            <listitem>
-              <para>The sysfs devpath without the mountpoint but a leading slash.</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term><option>SUBSYSTEM</option></term>
-            <listitem>
-              <para>The kernel subsystem the device belongs to.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-     </refsect1>
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-          </citerefentry>, 
-          <citerefentry>
-            <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
-          </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>