Re: Dhcpd Bizarre!!!!!!!!!!!!!!!!

2006-07-17 Thread Nick Guenther

On 7/17/06, Rahul Sharma <[EMAIL PROTECTED]> wrote:


On 7/17/06, turcu septimiu <[EMAIL PROTECTED]> wrote:
>
>
> --- Rahul Sharma <[EMAIL PROTECTED]> wrote:
>
> > Hi Nick,
> > Thank for your replies.
> > But in that case I have to search the dhcpd enteries
> > and then parse the
> > /var/log/ daemon.
> > But  I Just want to create another file with the
> > format i like.
> > Plz anybody help!!!
> > Thanks in advance
> > Rahul
> >
> > On 7/14/06, Nick Guenther <[EMAIL PROTECTED]> wrote:
> > >
> > > On 7/13/06, Rahul Sharma
> > <[EMAIL PROTECTED]> wrote:
> > > > /*$OpenBSD: db.c,v 1.10 2004/09/16 18:35:42
> > deraadt Exp $*/
> > > >
> > > > /*
> > > >  * Persistent database management routines for
> > DHCPD.
> > > >  */
> > > >
> > > > /*
> > > >  * Copyright (c) 1995, 1996 The Internet
> > Software Consortium.
> > > >  * All rights reserved.
> > > >  *
> > > >  * Redistribution and use in source and binary
> > forms, with or without
> > > >  * modification, are permitted provided that the
> > following conditions
> > > >  * are met:
> > > >  *
> > > >  * 1. Redistributions of source code must retain
> > the above copyright
> > > >  *notice, this list of conditions and the
> > following disclaimer.
> > > >  * 2. Redistributions in binary form must
> > reproduce the above copyright
> > > >  *notice, this list of conditions and the
> > following disclaimer in
> > > the
> > > >  *documentation and/or other materials
> > provided with the
> > > distribution.
> > > >  * 3. Neither the name of The Internet Software
> > Consortium nor the names
> > > >  *of its contributors may be used to endorse
> > or promote products
> > > derived
> > > >  *from this software without specific prior
> > written permission.
> > > >  *
> > > >  * THIS SOFTWARE IS PROVIDED BY THE INTERNET
> > SOFTWARE CONSORTIUM AND
> > > >  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
> > IMPLIED WARRANTIES,
> > > >  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> > WARRANTIES OF
> > > >  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> > PURPOSE ARE
> > > >  * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET
> > SOFTWARE CONSORTIUM OR
> > > >  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
> > INDIRECT, INCIDENTAL,
> > > >  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> > (INCLUDING, BUT NOT
> > > >  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> > OR SERVICES; LOSS OF
> > > >  * USE, DATA, OR PROFITS; OR BUSINESS
> > INTERRUPTION) HOWEVER CAUSED AND
> > > >  * ON ANY THEORY OF LIABILITY, WHETHER IN
> > CONTRACT, STRICT LIABILITY,
> > > >  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> > ARISING IN ANY WAY OUT
> > > >  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> > OF THE POSSIBILITY OF
> > > >  * SUCH DAMAGE.
> > > >  *
> > > >  * This software has been written for the
> > Internet Software Consortium
> > > >  * by Ted Lemon <[EMAIL PROTECTED]> in
> > cooperation with Vixie
> > > >  * Enterprises.  To learn more about the
> > Internet Software Consortium,
> > > >  * see ``http://www.vix.com/isc''.  To learn
> > more about Vixie
> > > >  * Enterprises, see ``http://www.vix.com''.
> > > >  */
> > > >
> > > > #include "dhcpd.h"
> > > >
> > > > FILE *db_file;
> > > > FILE *abc;
> > > > static int counting = 0;
> > > > static int count = 0;
> > > > time_t write_time;
> > > >
> > > > /*
> > > >  * Write the specified lease to the current
> > lease database file.
> > > >  */
> > > > int
> > > > write_lease(struct lease *lease)
> > > > {
> > > > struct tm *t;
> > > > char tbuf[64];
> > > > int errors = 0;
> > > > int i;
> > > >
> > > > if (counting)
> > > > ++count;
> > > > errno = 0;
> > > > fprintf(db_file, "lease %s {\n",
> > piaddr(lease->ip_addr));
> > > > fprintf(abc,"%s\t",piaddr(lease->ip_addr));
> > > > if (errno)
> > > > ++errors;
> > > >
> > > > t = gmtime(&lease->starts);
> > > > snprintf(tbuf, sizeof(tbuf), "%d
> > %d/%02d/%02d %02d:%02d:%02d;",
> > > > t->tm_wday, t->tm_year + 1900, t->tm_mon
> > + 1, t->tm_mday,
> > > > t->tm_hour, t->tm_min, t->tm_sec);
> > > >
> > > > errno = 0;
> > > > fprintf(db_file, "\tstarts %s\n", tbuf);
> > > > fprintf(abc, "%s\t", tbuf);
> > > > if (errno)
> > > > ++errors;
> > > >
> > > > t = gmtime(&lease->ends);
> > > > snprintf(tbuf, sizeof(tbuf), "%d
> > %d/%02d/%02d %02d:%02d:%02d;",
> > > > t->tm_wday, t->tm_year + 1900, t->tm_mon
> > + 1, t->tm_mday,
> > > > t->tm_hour, t->tm_min, t->tm_sec);
> > > >
> > > > errno = 0;
> > > > fprintf(db_file, "\tends %s", tbuf);
> > > > fprintf(abc, "%s\t", tbuf);
> > > > if (errno)
> > > > ++errors;
> > > >
> > > > if (lease->hardware_addr.hlen) {
> > > > errno = 0;
> > > > fprintf(db_file, "\n\thardware %s %s;",
> > > >
> > hardware_types[lease->hardware_addr.htype],
> > > >
> > print_hw_addr(lease->hardware_addr.htype,
> > > > lease->hardware_addr.hlen,
> > > >  

Re: Dhcpd Bizarre!!!!!!!!!!!!!!!!

2006-07-17 Thread Rahul Sharma
Hi trucu,
ya that is the main problem. Now finally i got it what i want.
Thanks to all
Rahul

On 7/17/06, turcu septimiu <[EMAIL PROTECTED]> wrote:
>
> It seems to me that you don't flush the file, nor you
> close it.
> This might be causing loss of data.
>
>
> --- Rahul Sharma <[EMAIL PROTECTED]> wrote:
>
> > Hi Nick,
> > Thank for your replies.
> > But in that case I have to search the dhcpd enteries
> > and then parse the
> > /var/log/ daemon.
> > But  I Just want to create another file with the
> > format i like.
> > Plz anybody help!!!
> > Thanks in advance
> > Rahul
> >
> > On 7/14/06, Nick Guenther <[EMAIL PROTECTED]> wrote:
> > >
> > > On 7/13/06, Rahul Sharma
> > <[EMAIL PROTECTED]> wrote:
> > > > /*$OpenBSD: db.c,v 1.10 2004/09/16 18:35:42
> > deraadt Exp $*/
> > > >
> > > > /*
> > > >  * Persistent database management routines for
> > DHCPD.
> > > >  */
> > > >
> > > > /*
> > > >  * Copyright (c) 1995, 1996 The Internet
> > Software Consortium.
> > > >  * All rights reserved.
> > > >  *
> > > >  * Redistribution and use in source and binary
> > forms, with or without
> > > >  * modification, are permitted provided that the
> > following conditions
> > > >  * are met:
> > > >  *
> > > >  * 1. Redistributions of source code must retain
> > the above copyright
> > > >  *notice, this list of conditions and the
> > following disclaimer.
> > > >  * 2. Redistributions in binary form must
> > reproduce the above copyright
> > > >  *notice, this list of conditions and the
> > following disclaimer in
> > > the
> > > >  *documentation and/or other materials
> > provided with the
> > > distribution.
> > > >  * 3. Neither the name of The Internet Software
> > Consortium nor the names
> > > >  *of its contributors may be used to endorse
> > or promote products
> > > derived
> > > >  *from this software without specific prior
> > written permission.
> > > >  *
> > > >  * THIS SOFTWARE IS PROVIDED BY THE INTERNET
> > SOFTWARE CONSORTIUM AND
> > > >  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
> > IMPLIED WARRANTIES,
> > > >  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> > WARRANTIES OF
> > > >  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> > PURPOSE ARE
> > > >  * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET
> > SOFTWARE CONSORTIUM OR
> > > >  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
> > INDIRECT, INCIDENTAL,
> > > >  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> > (INCLUDING, BUT NOT
> > > >  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> > OR SERVICES; LOSS OF
> > > >  * USE, DATA, OR PROFITS; OR BUSINESS
> > INTERRUPTION) HOWEVER CAUSED AND
> > > >  * ON ANY THEORY OF LIABILITY, WHETHER IN
> > CONTRACT, STRICT LIABILITY,
> > > >  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> > ARISING IN ANY WAY OUT
> > > >  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> > OF THE POSSIBILITY OF
> > > >  * SUCH DAMAGE.
> > > >  *
> > > >  * This software has been written for the
> > Internet Software Consortium
> > > >  * by Ted Lemon <[EMAIL PROTECTED]> in
> > cooperation with Vixie
> > > >  * Enterprises.  To learn more about the
> > Internet Software Consortium,
> > > >  * see ``http://www.vix.com/isc''.  To learn
> > more about Vixie
> > > >  * Enterprises, see ``http://www.vix.com''.
> > > >  */
> > > >
> > > > #include "dhcpd.h"
> > > >
> > > > FILE *db_file;
> > > > FILE *abc;
> > > > static int counting = 0;
> > > > static int count = 0;
> > > > time_t write_time;
> > > >
> > > > /*
> > > >  * Write the specified lease to the current
> > lease database file.
> > > >  */
> > > > int
> > > > write_lease(struct lease *lease)
> > > > {
> > > > struct tm *t;
> > > > char tbuf[64];
> > > > int errors = 0;
> > > > int i;
> > > >
> > > > if (counting)
> > > > ++count;
> > > > errno = 0;
> > > > fprintf(db_file, "lease %s {\n",
> > piaddr(lease->ip_addr));
> > > > fprintf(abc,"%s\t",piaddr(lease->ip_addr));
> > > > if (errno)
> > > > ++errors;
> > > >
> > > > t = gmtime(&lease->starts);
> > > > snprintf(tbuf, sizeof(tbuf), "%d
> > %d/%02d/%02d %02d:%02d:%02d;",
> > > > t->tm_wday, t->tm_year + 1900, t->tm_mon
> > + 1, t->tm_mday,
> > > > t->tm_hour, t->tm_min, t->tm_sec);
> > > >
> > > > errno = 0;
> > > > fprintf(db_file, "\tstarts %s\n", tbuf);
> > > > fprintf(abc, "%s\t", tbuf);
> > > > if (errno)
> > > > ++errors;
> > > >
> > > > t = gmtime(&lease->ends);
> > > > snprintf(tbuf, sizeof(tbuf), "%d
> > %d/%02d/%02d %02d:%02d:%02d;",
> > > > t->tm_wday, t->tm_year + 1900, t->tm_mon
> > + 1, t->tm_mday,
> > > > t->tm_hour, t->tm_min, t->tm_sec);
> > > >
> > > > errno = 0;
> > > > fprintf(db_file, "\tends %s", tbuf);
> > > > fprintf(abc, "%s\t", tbuf);
> > > > if (errno)
> > > > ++errors;
> > > >
> > > > if (lease->hardware_addr.hlen) {
> > > > errno = 0;
> > > > fprintf(db_file, "\n\thardware %s %s;",
> > > >
> > hardwar

Re: Dhcpd Bizarre!!!!!!!!!!!!!!!!

2006-07-16 Thread Rahul Sharma
Hi Nick,
Thank for your replies.
But in that case I have to search the dhcpd enteries and then parse the
/var/log/ daemon.
But  I Just want to create another file with the format i like.
Plz anybody help!!!
Thanks in advance
Rahul

On 7/14/06, Nick Guenther <[EMAIL PROTECTED]> wrote:
>
> On 7/13/06, Rahul Sharma <[EMAIL PROTECTED]> wrote:
> > /*$OpenBSD: db.c,v 1.10 2004/09/16 18:35:42 deraadt Exp $*/
> >
> > /*
> >  * Persistent database management routines for DHCPD.
> >  */
> >
> > /*
> >  * Copyright (c) 1995, 1996 The Internet Software Consortium.
> >  * All rights reserved.
> >  *
> >  * Redistribution and use in source and binary forms, with or without
> >  * modification, are permitted provided that the following conditions
> >  * are met:
> >  *
> >  * 1. Redistributions of source code must retain the above copyright
> >  *notice, this list of conditions and the following disclaimer.
> >  * 2. Redistributions in binary form must reproduce the above copyright
> >  *notice, this list of conditions and the following disclaimer in
> the
> >  *documentation and/or other materials provided with the
> distribution.
> >  * 3. Neither the name of The Internet Software Consortium nor the names
> >  *of its contributors may be used to endorse or promote products
> derived
> >  *from this software without specific prior written permission.
> >  *
> >  * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
> >  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
> >  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
> >  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
> >  * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
> >  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> >  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> >  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> >  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> >  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> >  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> >  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> >  * SUCH DAMAGE.
> >  *
> >  * This software has been written for the Internet Software Consortium
> >  * by Ted Lemon <[EMAIL PROTECTED]> in cooperation with Vixie
> >  * Enterprises.  To learn more about the Internet Software Consortium,
> >  * see ``http://www.vix.com/isc''.  To learn more about Vixie
> >  * Enterprises, see ``http://www.vix.com''.
> >  */
> >
> > #include "dhcpd.h"
> >
> > FILE *db_file;
> > FILE *abc;
> > static int counting = 0;
> > static int count = 0;
> > time_t write_time;
> >
> > /*
> >  * Write the specified lease to the current lease database file.
> >  */
> > int
> > write_lease(struct lease *lease)
> > {
> > struct tm *t;
> > char tbuf[64];
> > int errors = 0;
> > int i;
> >
> > if (counting)
> > ++count;
> > errno = 0;
> > fprintf(db_file, "lease %s {\n", piaddr(lease->ip_addr));
> > fprintf(abc,"%s\t",piaddr(lease->ip_addr));
> > if (errno)
> > ++errors;
> >
> > t = gmtime(&lease->starts);
> > snprintf(tbuf, sizeof(tbuf), "%d %d/%02d/%02d %02d:%02d:%02d;",
> > t->tm_wday, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
> > t->tm_hour, t->tm_min, t->tm_sec);
> >
> > errno = 0;
> > fprintf(db_file, "\tstarts %s\n", tbuf);
> > fprintf(abc, "%s\t", tbuf);
> > if (errno)
> > ++errors;
> >
> > t = gmtime(&lease->ends);
> > snprintf(tbuf, sizeof(tbuf), "%d %d/%02d/%02d %02d:%02d:%02d;",
> > t->tm_wday, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
> > t->tm_hour, t->tm_min, t->tm_sec);
> >
> > errno = 0;
> > fprintf(db_file, "\tends %s", tbuf);
> > fprintf(abc, "%s\t", tbuf);
> > if (errno)
> > ++errors;
> >
> > if (lease->hardware_addr.hlen) {
> > errno = 0;
> > fprintf(db_file, "\n\thardware %s %s;",
> > hardware_types[lease->hardware_addr.htype],
> > print_hw_addr(lease->hardware_addr.htype,
> > lease->hardware_addr.hlen,
> > lease->hardware_addr.haddr));
> >
> > fprintf(abc,"%s\n",
> > print_hw_addr(lease->hardware_addr.htype,
> > lease->hardware_addr.hlen,
> > lease->hardware_addr.haddr));
> >
> >
> > if (errno)
> > ++errors;
> > }
> >
> > if (lease->uid_len) {
> > int j;
> >
> > errno = 0;
> > fprintf(db_file, "\n\tuid %2.2x", lease->uid[0]);
> > if (errno)
> > ++errors;
> >
> > for (j = 1; j < lease->uid_len; j++) {
> > errno = 0;
> > fprintf(db_file, ":%2.2x", lease->uid[j]);
> > if (errno)
> > ++errors;
> > }
> > putc(';', db_file);
> > }
> >
> > if (

Re: Dhcpd Bizarre!!!!!!!!!!!!!!!!

2006-07-13 Thread Nick Guenther

On 7/13/06, Rahul Sharma <[EMAIL PROTECTED]> wrote:

/*$OpenBSD: db.c,v 1.10 2004/09/16 18:35:42 deraadt Exp $*/

/*
 * Persistent database management routines for DHCPD.
 */

/*
 * Copyright (c) 1995, 1996 The Internet Software Consortium.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *notice, this list of conditions and the following disclaimer in the
 *documentation and/or other materials provided with the distribution.
 * 3. Neither the name of The Internet Software Consortium nor the names
 *of its contributors may be used to endorse or promote products derived
 *from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
 * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * This software has been written for the Internet Software Consortium
 * by Ted Lemon <[EMAIL PROTECTED]> in cooperation with Vixie
 * Enterprises.  To learn more about the Internet Software Consortium,
 * see ``http://www.vix.com/isc''.  To learn more about Vixie
 * Enterprises, see ``http://www.vix.com''.
 */

#include "dhcpd.h"

FILE *db_file;
FILE *abc;
static int counting = 0;
static int count = 0;
time_t write_time;

/*
 * Write the specified lease to the current lease database file.
 */
int
write_lease(struct lease *lease)
{
struct tm *t;
char tbuf[64];
int errors = 0;
int i;

if (counting)
++count;
errno = 0;
fprintf(db_file, "lease %s {\n", piaddr(lease->ip_addr));
fprintf(abc,"%s\t",piaddr(lease->ip_addr));
if (errno)
++errors;

t = gmtime(&lease->starts);
snprintf(tbuf, sizeof(tbuf), "%d %d/%02d/%02d %02d:%02d:%02d;",
t->tm_wday, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);

errno = 0;
fprintf(db_file, "\tstarts %s\n", tbuf);
fprintf(abc, "%s\t", tbuf);
if (errno)
++errors;

t = gmtime(&lease->ends);
snprintf(tbuf, sizeof(tbuf), "%d %d/%02d/%02d %02d:%02d:%02d;",
t->tm_wday, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);

errno = 0;
fprintf(db_file, "\tends %s", tbuf);
fprintf(abc, "%s\t", tbuf);
if (errno)
++errors;

if (lease->hardware_addr.hlen) {
errno = 0;
fprintf(db_file, "\n\thardware %s %s;",
hardware_types[lease->hardware_addr.htype],
print_hw_addr(lease->hardware_addr.htype,
lease->hardware_addr.hlen,
lease->hardware_addr.haddr));

fprintf(abc,"%s\n",
print_hw_addr(lease->hardware_addr.htype,
lease->hardware_addr.hlen,
lease->hardware_addr.haddr));


if (errno)
++errors;
}

if (lease->uid_len) {
int j;

errno = 0;
fprintf(db_file, "\n\tuid %2.2x", lease->uid[0]);
if (errno)
++errors;

for (j = 1; j < lease->uid_len; j++) {
errno = 0;
fprintf(db_file, ":%2.2x", lease->uid[j]);
if (errno)
++errors;
}
putc(';', db_file);
}

if (lease->flags & BOOTP_LEASE) {
errno = 0;
fprintf(db_file, "\n\tdynamic-bootp;");
if (errno)
++errors;
}

if (lease->flags & ABANDONED_LEASE) {
errno = 0;
fprintf(db_file, "\n\tabandoned;");
if (errno)
++errors;
}

if (lease->client_hostname) {
for (i = 0; lease->client_hostname[i]; i++)
if (lease->client_hostname[i] < 33 ||
lease->client_hostname[i] > 126)
goto bad_client_hostname;
errno = 0;
fprintf(db_file, "\n\tclient-hostname \"%s\";",
lease->client_hostname);
if (errno)
++errors;
}

bad_client_hostname:
if (lease->hostname) {
for (i = 0; lease->hostname[i]; i++)
if (l

Re: Dhcpd Bizarre!!!!!!!!!!!!!!!!

2006-07-13 Thread Rahul Sharma
/*$OpenBSD: db.c,v 1.10 2004/09/16 18:35:42 deraadt Exp $*/

/*
 * Persistent database management routines for DHCPD.
 */

/*
 * Copyright (c) 1995, 1996 The Internet Software Consortium.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *notice, this list of conditions and the following disclaimer in the
 *documentation and/or other materials provided with the distribution.
 * 3. Neither the name of The Internet Software Consortium nor the names
 *of its contributors may be used to endorse or promote products derived
 *from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
 * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * This software has been written for the Internet Software Consortium
 * by Ted Lemon <[EMAIL PROTECTED]> in cooperation with Vixie
 * Enterprises.  To learn more about the Internet Software Consortium,
 * see ``http://www.vix.com/isc''.  To learn more about Vixie
 * Enterprises, see ``http://www.vix.com''.
 */

#include "dhcpd.h"

FILE *db_file;
FILE *abc;
static int counting = 0;
static int count = 0;
time_t write_time;

/*
 * Write the specified lease to the current lease database file.
 */
int
write_lease(struct lease *lease)
{
struct tm *t;
char tbuf[64];
int errors = 0;
int i;

if (counting)
++count;
errno = 0;
fprintf(db_file, "lease %s {\n", piaddr(lease->ip_addr));
fprintf(abc,"%s\t",piaddr(lease->ip_addr));
if (errno)
++errors;

t = gmtime(&lease->starts);
snprintf(tbuf, sizeof(tbuf), "%d %d/%02d/%02d %02d:%02d:%02d;",
t->tm_wday, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);

errno = 0;
fprintf(db_file, "\tstarts %s\n", tbuf);
fprintf(abc, "%s\t", tbuf);
if (errno)
++errors;

t = gmtime(&lease->ends);
snprintf(tbuf, sizeof(tbuf), "%d %d/%02d/%02d %02d:%02d:%02d;",
t->tm_wday, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);

errno = 0;
fprintf(db_file, "\tends %s", tbuf);
fprintf(abc, "%s\t", tbuf);
if (errno)
++errors;

if (lease->hardware_addr.hlen) {
errno = 0;
fprintf(db_file, "\n\thardware %s %s;",
hardware_types[lease->hardware_addr.htype],
print_hw_addr(lease->hardware_addr.htype,
lease->hardware_addr.hlen,
lease->hardware_addr.haddr));

fprintf(abc,"%s\n",
print_hw_addr(lease->hardware_addr.htype,
lease->hardware_addr.hlen,
lease->hardware_addr.haddr));


if (errno)
++errors;
}

if (lease->uid_len) {
int j;

errno = 0;
fprintf(db_file, "\n\tuid %2.2x", lease->uid[0]);
if (errno)
++errors;

for (j = 1; j < lease->uid_len; j++) {
errno = 0;
fprintf(db_file, ":%2.2x", lease->uid[j]);
if (errno)
++errors;
}
putc(';', db_file);
}

if (lease->flags & BOOTP_LEASE) {
errno = 0;
fprintf(db_file, "\n\tdynamic-bootp;");
if (errno)
++errors;
}

if (lease->flags & ABANDONED_LEASE) {
errno = 0;
fprintf(db_file, "\n\tabandoned;");
if (errno)
++errors;
}

if (lease->client_hostname) {
for (i = 0; lease->client_hostname[i]; i++)
if (lease->client_hostname[i] < 33 ||
lease->client_hostname[i] > 126)
goto bad_client_hostname;
errno = 0;
fprintf(db_file, "\n\tclient-hostname \"%s\";",
lease->client_hostname);
if (errno)
++errors;
}

bad_client_hostname:
if (lease->hostname) {
for (i = 0; lease->hostname[i]; i++)
if (lease->hostname[i] < 33 ||
lease->hostn

Dhcpd Bizarre!!!!!!!!!!!!!!!!

2006-07-12 Thread Rahul Sharma
Hi all,
I am using dhcpd on openBSD.
I wanted to make a log file of my own from which enteries will never vanish.
Though I can use dhcpd.leases and parse it to get the values but i wanted to
it from the sourse itself.

What i have done so far ->

I have made changes in db.c
1. in function db_startup()
2.write_lease(struct lease *lease)

I am attaching db.c file with changes with it.
wherever u find "FILE *abc or  int pqr".i have added those lines
it is compiling allright but is not writing into the file.

Plz Help some one..
Rahul

[demime 1.01d removed an attachment of type text/x-csrc which had a name of 
db.c]