From: Joe MacDonald <Joe.MacDonald@windriver.com>
To: <openembedded-devel@lists.openembedded.org>
Subject: Re: [meta-oe][PATCH V2 09/25] atftp: Upgrade to latest from git
Date: Mon, 7 Jan 2013 10:36:02 -0500 [thread overview]
Message-ID: <20130107153602.GD6154@windriver.com> (raw)
In-Reply-To: <CAMKF1sqXMaKrkpicDJLgZuWBzwTo3gyw_N3emL858GZfSZnwHw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 18773 bytes --]
Hi Khem,
[Re: [oe] [meta-oe][PATCH V2 09/25] atftp: Upgrade to latest from git] On 13.01.06 (Sun 17:23) Khem Raj wrote:
> On Sun, Jan 6, 2013 at 1:36 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> > On Sun, Jan 06, 2013 at 01:12:32AM -0800, Khem Raj wrote:
> >> Add patches to let atftp serve huge ramdisks >500M in size
> >
> > I don't see this patch
> > http://patchwork.openembedded.org/patch/41955/
> > in V2, can you update status on patchwork to indicate which patches are
> > superseeded by V2 and which are still valid?
> >
>
> I would suggest to actually drop all V1 patches since I have
> reshuffled them quite a bit and take all V2 fresh
> I have also pushed this latest series into contrib repo
>
> http://git.openembedded.org/meta-openembedded-contrib/log/?h=kraj/updates
I'm looking at that now. The only comment / request I have right now is
about atftp. It was on my list of stuff to update and move into
meta-networking. If there's no objection it that, would you mind moving
it there at the same time? I'd been planning to have it in
meta-networking/recipes-daemons.
Thanks,
-J.
>
>
> > Thanks
> >
> >>
> >> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> >> ---
> >> .../atftp/{atftp_0.7.bb => atftp_git.bb} | 18 +--
> >> ...tpd-0.7_circumvent_tftp_size_restrictions.patch | 158 ++++++++++++++++++++
> >> .../atftpd-0.7_unprotected_assignments_crash.patch | 145 ++++++++++++++++++
> >> 3 files changed, 311 insertions(+), 10 deletions(-)
> >> rename meta-oe/recipes-extended/atftp/{atftp_0.7.bb => atftp_git.bb} (59%)
> >> create mode 100644 meta-oe/recipes-extended/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch
> >> create mode 100644 meta-oe/recipes-extended/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch
> >>
> >> diff --git a/meta-oe/recipes-extended/atftp/atftp_0.7.bb b/meta-oe/recipes-extended/atftp/atftp_git.bb
> >> similarity index 59%
> >> rename from meta-oe/recipes-extended/atftp/atftp_0.7.bb
> >> rename to meta-oe/recipes-extended/atftp/atftp_git.bb
> >> index ff1e11d..774dd68 100644
> >> --- a/meta-oe/recipes-extended/atftp/atftp_0.7.bb
> >> +++ b/meta-oe/recipes-extended/atftp/atftp_git.bb
> >> @@ -3,13 +3,16 @@ SECTION = "network"
> >> HOMEPAGE = "http://packages.debian.org/atftp"
> >> LICENSE = "GPLv2"
> >> LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f"
> >> -PR = "r4"
> >> +PV = "0.7.1+git${SRCPV}"
> >>
> >> -SRC_URI = "${DEBIAN_MIRROR}/main/a/atftp/atftp_${PV}.dfsg.orig.tar.gz;name=archive \
> >> - ${DEBIAN_MIRROR}/main/a/atftp/atftp_${PV}.dfsg-11.diff.gz;name=patch \
> >> - file://atftpd.init"
> >> +SRCREV = "be3291a18c069ae23a124ffdc56d64a5ff0bbec7"
> >>
> >> -S = "${WORKDIR}/atftp-${PV}.dfsg"
> >> +SRC_URI = "git://atftp.git.sourceforge.net/gitroot/atftp/atftp;protocol=git \
> >> + file://atftpd-0.7_circumvent_tftp_size_restrictions.patch \
> >> + file://atftpd-0.7_unprotected_assignments_crash.patch \
> >> + file://atftpd.init \
> >> + "
> >> +S = "${WORKDIR}/git"
> >>
> >> inherit autotools update-rc.d useradd
> >>
> >> @@ -35,8 +38,3 @@ PACKAGES =+ "atftpd"
> >> FILES_${PN} = "${bindir}/*"
> >>
> >> FILES_${PN}d = "${sbindir}/* ${sysconfdir}/init.d/* /srv/tftp"
> >> -
> >> -SRC_URI[archive.md5sum] = "aa269044a6f992eca78fee2f6119643c"
> >> -SRC_URI[archive.sha256sum] = "18815f5b67290fac087c6b9da28dfa5e0feb722096f5c5de52e59b46026da559"
> >> -SRC_URI[patch.md5sum] = "1636f199bf32c754a7bf34a5c647d138"
> >> -SRC_URI[patch.sha256sum] = "0df33f6c09c2b2de58a84d7bb757844fc9538cd4d6c8d9c463da5270ebc2e41d"
> >> diff --git a/meta-oe/recipes-extended/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch b/meta-oe/recipes-extended/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch
> >> new file mode 100644
> >> index 0000000..9aeb351
> >> --- /dev/null
> >> +++ b/meta-oe/recipes-extended/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch
> >> @@ -0,0 +1,158 @@
> >> +Fate #303031: Circumvent TFTP size restrictions in atftpd
> >> +The size of a single image file that can be transferred with TFTP is limited to
> >> +2^(2*8) *BLOCKSIZE (as per RFC 1350 there are only two bytes for the block
> >> +counter). This is problematic for one of our customers who needs to transfer
> >> +100+ MB Windows images using a TFTP client (NT bootloader) which has a
> >> +hardwared BLOCKSIZE setting of 1432).
> >> +
> >> +block rollover
> >> +http://www.compuphase.com/tftp.htm
> >> +
> >> +Index: git/tftp_def.h
> >> +===================================================================
> >> +--- git.orig/tftp_def.h 2012-11-19 16:28:50.221027144 -0800
> >> ++++ git/tftp_def.h 2012-11-20 17:40:54.391206979 -0800
> >> +@@ -32,6 +32,7 @@
> >> + #define TIMEOUT 5 /* Client timeout */
> >> + #define S_TIMEOUT 5 /* Server timout. */
> >> + #define NB_OF_RETRY 5
> >> ++#define MAXBLOCKS 1000000 /* maximum number of blocks in a download */
> >> +
> >> + /* definition to use tftp_options structure */
> >> + #define OPT_FILENAME 0
> >> +Index: git/tftp_file.c
> >> +===================================================================
> >> +--- git.orig/tftp_file.c 2012-11-19 16:28:50.221027144 -0800
> >> ++++ git/tftp_file.c 2012-11-19 16:28:51.201027167 -0800
> >> +@@ -622,8 +622,8 @@
> >> + int state = S_SEND_REQ; /* current state in the state machine */
> >> + int timeout_state = state; /* what state should we go on when timeout */
> >> + int result;
> >> +- int block_number = 0;
> >> +- int last_block = -1;
> >> ++ long block_number = 0;
> >> ++ long last_block = -1;
> >> + int data_size; /* size of data received */
> >> + int sockfd = data->sockfd; /* just to simplify calls */
> >> + struct sockaddr_storage sa; /* a copy of data.sa_peer */
> >> +@@ -637,8 +637,8 @@
> >> + int convert = 0; /* if true, do netascii convertion */
> >> + char string[MAXLEN];
> >> +
> >> +- int prev_block_number = 0; /* needed to support netascii convertion */
> >> +- int prev_file_pos = 0;
> >> ++ long prev_block_number = 0; /* needed to support netascii convertion */
> >> ++ long prev_file_pos = 0;
> >> + int temp = 0;
> >> +
> >> + data->file_size = 0;
> >> +@@ -745,7 +745,7 @@
> >> + data_size, data->data_buffer);
> >> + data->file_size += data_size;
> >> + if (data->trace)
> >> +- fprintf(stderr, "sent DATA <block: %d, size: %d>\n",
> >> ++ fprintf(stderr, "sent DATA <block: %ld, size: %d>\n",
> >> + block_number + 1, data_size - 4);
> >> + state = S_WAIT_PACKET;
> >> + break;
> >> +@@ -785,7 +785,7 @@
> >> + }
> >> + block_number = ntohs(tftphdr->th_block);
> >> + if (data->trace)
> >> +- fprintf(stderr, "received ACK <block: %d>\n",
> >> ++ fprintf(stderr, "received ACK <block: %ld>\n",
> >> + block_number);
> >> + if ((last_block != -1) && (block_number > last_block))
> >> + {
> >> +Index: git/tftp_io.c
> >> +===================================================================
> >> +--- git.orig/tftp_io.c 2012-11-19 16:28:50.221027144 -0800
> >> ++++ git/tftp_io.c 2012-11-19 16:28:51.201027167 -0800
> >> +@@ -350,8 +350,8 @@
> >> + /*
> >> + * Read from file and do netascii conversion if needed
> >> + */
> >> +-int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, int block_number,
> >> +- int convert, int *prev_block_number, int *prev_file_pos, int *temp)
> >> ++int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, long block_number,
> >> ++ int convert, long *prev_block_number, long *prev_file_pos, int *temp)
> >> + {
> >> + int i;
> >> + int c;
> >> +Index: git/tftp_io.h
> >> +===================================================================
> >> +--- git.orig/tftp_io.h 2012-11-19 16:28:50.221027144 -0800
> >> ++++ git/tftp_io.h 2012-11-19 16:28:51.201027167 -0800
> >> +@@ -52,8 +52,8 @@
> >> + int tftp_get_packet(int sock1, int sock2, int *sock, struct sockaddr_storage *sa,
> >> + struct sockaddr_storage *from, struct sockaddr_storage *to,
> >> + int timeout, int *size, char *data);
> >> +-int tftp_file_read(FILE *fp, char *buffer, int buffer_size, int block_number, int convert,
> >> +- int *prev_block_number, int *prev_file_pos, int *temp);
> >> ++int tftp_file_read(FILE *fp, char *buffer, int buffer_size, long block_number, int convert,
> >> ++ long *prev_block_number, long *prev_file_pos, int *temp);
> >> + int tftp_file_write(FILE *fp, char *data_buffer, int data_buffer_size, int block_number,
> >> + int data_size, int convert, int *prev_block_number, int *temp);
> >> + #endif
> >> +Index: git/tftpd_file.c
> >> +===================================================================
> >> +--- git.orig/tftpd_file.c 2012-11-19 16:28:50.225027144 -0800
> >> ++++ git/tftpd_file.c 2012-11-19 16:28:51.201027167 -0800
> >> +@@ -407,8 +407,9 @@
> >> + int state = S_BEGIN;
> >> + int timeout_state = state;
> >> + int result;
> >> +- int block_number = 0;
> >> +- int last_block = -1;
> >> ++ long block_number = 0;
> >> ++ long last_block = -1;
> >> ++ int block_loops = 0;
> >> + int data_size;
> >> + struct sockaddr_storage *sa = &data->client_info->client;
> >> + struct sockaddr_storage from;
> >> +@@ -431,8 +432,8 @@
> >> + struct client_info *client_old = NULL;
> >> + struct tftp_opt options[OPT_NUMBER];
> >> +
> >> +- int prev_block_number = 0; /* needed to support netascii convertion */
> >> +- int prev_file_pos = 0;
> >> ++ long prev_block_number = 0; /* needed to support netascii convertion */
> >> ++ long prev_file_pos = 0;
> >> + int temp = 0;
> >> +
> >> + /* look for mode option */
> >> +@@ -565,11 +566,12 @@
> >> + logger(LOG_INFO, "blksize option -> %d", result);
> >> + }
> >> +
> >> +- /* Verify that the file can be sent in 2^16 block of BLKSIZE octets */
> >> +- if ((file_stat.st_size / (data->data_buffer_size - 4)) > 65535)
> >> ++ /* Verify that the file can be sent in MAXBLOCKS blocks of BLKSIZE octets */
> >> ++ if ((file_stat.st_size / (data->data_buffer_size - 4)) > MAXBLOCKS)
> >> + {
> >> + tftp_send_error(sockfd, sa, EUNDEF, data->data_buffer, data->data_buffer_size);
> >> +- logger(LOG_NOTICE, "Requested file to big, increase BLKSIZE");
> >> ++ logger(LOG_NOTICE, "Requested file too big, increase BLKSIZE");
> >> ++ logger(LOG_NOTICE, "Only %d blocks of %d bytes can be served.", MAXBLOCKS, data->data_buffer_size);
> >> + if (data->trace)
> >> + logger(LOG_DEBUG, "sent ERROR <code: %d, msg: %s>", EUNDEF,
> >> + tftp_errmsg[EUNDEF]);
> >> +@@ -880,10 +882,15 @@
> >> + }
> >> + /* The ACK is from the current client */
> >> + number_of_timeout = 0;
> >> +- block_number = ntohs(tftphdr->th_block);
> >> ++ block_number = (block_loops * 65536) + ntohs(tftphdr->th_block);
> >> + if (data->trace)
> >> +- logger(LOG_DEBUG, "received ACK <block: %d>",
> >> +- block_number);
> >> ++ {
> >> ++ logger(LOG_DEBUG, "received ACK <block: %d>", block_number);
> >> ++ }
> >> ++ if (ntohs(tftphdr->th_block) == 65535)
> >> ++ {
> >> ++ block_loops++;
> >> ++ };
> >> + if ((last_block != -1) && (block_number > last_block))
> >> + {
> >> + state = S_END;
> >> diff --git a/meta-oe/recipes-extended/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch b/meta-oe/recipes-extended/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch
> >> new file mode 100644
> >> index 0000000..6faf5f9
> >> --- /dev/null
> >> +++ b/meta-oe/recipes-extended/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch
> >> @@ -0,0 +1,145 @@
> >> +Index: git/tftpd_list.c
> >> +===================================================================
> >> +--- git.orig/tftpd_list.c 2012-10-24 21:48:47.000000000 -0700
> >> ++++ git/tftpd_list.c 2012-10-24 21:52:04.266205076 -0700
> >> +@@ -49,11 +49,11 @@
> >> + */
> >> + int tftpd_list_add(struct thread_data *new)
> >> + {
> >> +- struct thread_data *current = thread_data;
> >> ++ struct thread_data *current;
> >> + int ret;
> >> +
> >> + pthread_mutex_lock(&thread_list_mutex);
> >> +-
> >> ++ current = thread_data;
> >> + number_of_thread++;
> >> +
> >> + ret = number_of_thread;
> >> +@@ -81,11 +81,13 @@
> >> + */
> >> + int tftpd_list_remove(struct thread_data *old)
> >> + {
> >> +- struct thread_data *current = thread_data;
> >> ++ struct thread_data *current;
> >> + int ret;
> >> +
> >> + pthread_mutex_lock(&thread_list_mutex);
> >> +
> >> ++ current = thread_data;
> >> ++
> >> + number_of_thread--;
> >> + ret = number_of_thread;
> >> +
> >> +@@ -137,23 +139,26 @@
> >> + struct thread_data *data,
> >> + struct client_info *client)
> >> + {
> >> +- struct thread_data *current = thread_data; /* head of the list */
> >> +- struct tftp_opt *tftp_options = data->tftp_options;
> >> ++ struct thread_data *current; /* head of the list */
> >> ++ struct tftp_opt *tftp_options;
> >> + struct client_info *tmp;
> >> + char options[MAXLEN];
> >> + char string[MAXLEN];
> >> + char *index;
> >> + int len;
> >> +
> >> ++ /* lock the whole list before walking it */
> >> ++ pthread_mutex_lock(&thread_list_mutex);
> >> ++
> >> + *thread = NULL;
> >> +
> >> ++ current = thread_data;
> >> ++ tftp_options = data->tftp_options;
> >> ++
> >> + opt_request_to_string(tftp_options, options, MAXLEN);
> >> + index = strstr(options, "multicast");
> >> + len = (int)index - (int)options;
> >> +
> >> +- /* lock the whole list before walking it */
> >> +- pthread_mutex_lock(&thread_list_mutex);
> >> +-
> >> + while (current)
> >> + {
> >> + if (current != data)
> >> +@@ -214,9 +219,10 @@
> >> + void tftpd_clientlist_remove(struct thread_data *thread,
> >> + struct client_info *client)
> >> + {
> >> +- struct client_info *tmp = thread->client_info;
> >> ++ struct client_info *tmp;
> >> +
> >> + pthread_mutex_lock(&thread->client_mutex);
> >> ++ tmp = thread->client_info;
> >> + while ((tmp->next != client) && (tmp->next != NULL))
> >> + tmp = tmp->next;
> >> + if (tmp->next == NULL)
> >> +@@ -231,9 +237,11 @@
> >> + void tftpd_clientlist_free(struct thread_data *thread)
> >> + {
> >> + struct client_info *tmp;
> >> +- struct client_info *head = thread->client_info;
> >> ++ struct client_info *head;
> >> +
> >> + pthread_mutex_lock(&thread->client_mutex);
> >> ++ head = thread->client_info;
> >> ++
> >> + while (head)
> >> + {
> >> + tmp = head;
> >> +@@ -250,9 +258,10 @@
> >> + struct client_info *client,
> >> + struct sockaddr_storage *sock)
> >> + {
> >> +- struct client_info *head = thread->client_info;
> >> ++ struct client_info *head;
> >> +
> >> + pthread_mutex_lock(&thread->client_mutex);
> >> ++ head = thread->client_info;
> >> +
> >> + if (client)
> >> + {
> >> +@@ -334,10 +343,10 @@
> >> +
> >> + void tftpd_list_kill_threads(void)
> >> + {
> >> +- struct thread_data *current = thread_data; /* head of list */
> >> ++ struct thread_data *current; /* head of list */
> >> +
> >> + pthread_mutex_lock(&thread_list_mutex);
> >> +-
> >> ++ current = thread_data;
> >> +
> >> + while (current != NULL)
> >> + {
> >> +Index: git/tftpd_mcast.c
> >> +===================================================================
> >> +--- git.orig/tftpd_mcast.c 2012-10-24 21:48:47.000000000 -0700
> >> ++++ git/tftpd_mcast.c 2012-10-24 21:49:11.570201582 -0700
> >> +@@ -51,9 +51,11 @@
> >> + */
> >> + int tftpd_mcast_get_tid(char **addr, short *port)
> >> + {
> >> +- struct tid *current = tid_list;
> >> ++ struct tid *current;
> >> +
> >> + pthread_mutex_lock(&mcast_tid_list);
> >> ++ current = tid_list;
> >> ++
> >> + /* walk the list for a free tid */
> >> + while (current != NULL)
> >> + {
> >> +@@ -74,9 +76,11 @@
> >> +
> >> + int tftpd_mcast_free_tid(char *addr, short port)
> >> + {
> >> +- struct tid *current = tid_list;
> >> ++ struct tid *current;
> >> +
> >> + pthread_mutex_lock(&mcast_tid_list);
> >> ++ current = tid_list;
> >> ++
> >> + while (current != NULL)
> >> + {
> >> + if ((current->used == 1) && (current->port == port) &&
> >> --
> >> 1.7.9.5
> >>
> >>
> >> _______________________________________________
> >> Openembedded-devel mailing list
> >> Openembedded-devel@lists.openembedded.org
> >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> >
> > --
> > Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
> >
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> >
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
-Joe MacDonald.
:wq
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next prev parent reply other threads:[~2013-01-07 15:51 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-06 9:12 [meta-networking][PATCH V2 01/25] arptables: Import recipe from OE-Classic and update to latest Khem Raj
2013-01-06 9:12 ` [meta-networking][PATCH V2 02/25] ebtables: Fix segfault by linking with no-as-needed Khem Raj
2013-01-06 9:12 ` [meta-networking][PATCH V2 03/25] autofs: Add recipes for 5.0.7 Khem Raj
2013-01-07 15:58 ` Joe MacDonald
2013-01-07 22:48 ` Khem Raj
2013-01-08 17:33 ` Khem Raj
2013-01-08 19:03 ` Joe MacDonald
2013-01-08 22:19 ` Martin Jansa
2013-01-08 22:22 ` Joe MacDonald
2013-01-06 9:12 ` [meta-networking][PATCH V2 04/25] nis: Import recipes from OE classic Khem Raj
2013-01-06 9:12 ` [meta-networking][PATCH V2 05/25] ndisc6: Forward port recipe " Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 06/25] net-snmp: Use ${PN} instead of hardcoding net-snmp Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 07/25] jansson_2.3.1.bb: Fix multilib use BPN in SRC_URI instead of PN Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 08/25] liblockfile: Upgrade 1.06 -> 1.09 Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 09/25] atftp: Upgrade to latest from git Khem Raj
2013-01-06 9:36 ` Martin Jansa
2013-01-07 1:23 ` Khem Raj
2013-01-07 15:36 ` Joe MacDonald [this message]
2013-01-07 16:01 ` Khem Raj
2013-01-07 16:04 ` Joe MacDonald
2013-01-06 9:12 ` [meta-oe][PATCH V2 10/25] tcpdump: Upgrade from 4.1.1 -> 4.3.0 Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 11/25] cppunit: Upgrade recipes from 1.12.1 -> 1.13.1 Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 12/25] luajit: Add recipes Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 13/25] concurrencykit: Add recipe for latest from git Khem Raj
2013-01-07 18:15 ` Martin Jansa
2013-01-07 21:58 ` Khem Raj
2013-01-08 17:33 ` Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 14/25] tcsh: Add recipes for package Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 15/25] dmidecode: Forward port from OE-Classic Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 16/25] libuio: Add recipe for version 0.2.1 Khem Raj
2013-01-06 9:12 ` [meta-oe][PATCH V2 17/25] uml-utilities: Forward port recipe from OE classic Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 18/25] systemd: Fix build when base_libdir is not /lib Khem Raj
2013-01-09 10:18 ` Martin Jansa
2013-01-06 9:12 ` [meta-systemd][PATCH V2 19/25] systemd.bbclass: Fixes for living along with multilib Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 20/25] at: Add systemd unit file Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 21/25] dhcp: Add systemd unit file for dhclient Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 22/25] nis: Add support for systemd launch of NIS services Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 23/25] rpcbind: Add systemd service unit file Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 24/25] dhclient.service: Rearrange the cmdline for dhclient Khem Raj
2013-01-06 9:12 ` [meta-systemd][PATCH V2 25/25] meta-systemd/atftpd: Adjust bbappend to match to recipe upgrade Khem Raj
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130107153602.GD6154@windriver.com \
--to=joe.macdonald@windriver.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.