Browse Source

Add and use snprintfcat.

r604
master
Matt Kraai 22 years ago
parent
commit
43f26c7705
  1. 14
      netcfg-dhcp.c
  2. 19
      netcfg-static.c
  3. 3
      netcfg.c
  4. 16
      utils.c
  5. 1
      utils.h

14
netcfg-dhcp.c

@ -105,32 +105,28 @@ netcfg_activate_dhcp ()
char buf[128];
char *ptr;
execlog ("/sbin/ifconfig lo 127.0.0.1");
ptr = buf;
switch (dhcp_client)
{
case PUMP:
ptr += snprintf (buf, sizeof (buf), "/sbin/pump -i %s", interface);
snprintf (buf, sizeof (buf), "/sbin/pump -i %s", interface);
if (dhcp_hostname)
ptr += snprintf (ptr, sizeof (buf) - (ptr - buf), " -h %s",
dhcp_hostname);
snprintfcat (buf, sizeof (buf), " -h %s", dhcp_hostname);
break;
case DHCLIENT:
ptr += snprintf (buf, sizeof (buf), "/sbin/dhclient %s", interface);
snprintf (buf, sizeof (buf), "/sbin/dhclient %s", interface);
break;
case UDHCPC:
ptr += snprintf (buf, sizeof (buf), "/sbin/udhcpc -i %s -n", interface);
snprintf (buf, sizeof (buf), "/sbin/udhcpc -i %s -n", interface);
if (dhcp_hostname)
ptr += snprintf (ptr, sizeof (buf) - (ptr - buf), " -H %s",
dhcp_hostname);
snprintfcat (buf, sizeof (buf), " -H %s", dhcp_hostname);
break;
}
if (execlog (buf))
netcfg_die (client);
}
int

19
netcfg-static.c

@ -134,22 +134,17 @@ static int
netcfg_activate_static ()
{
int rv = 0;
char *ptr;
char buf[128];
#ifdef __GNU__
/* I had to do something like this ? */
/* execlog ("settrans /servers/socket/2 -fg"); */
execlog ("settrans /servers/socket/2 --goaway");
ptr = buf;
ptr +=
snprintf (buf, sizeof (buf),
"settrans -fg /servers/socket/2 /hurd/pfinet --interface=%s --address=%s --netmask=%s",
interface, num2dot (ipaddress), num2dot (netmask));
snprintf (buf, sizeof (buf),
"settrans -fg /servers/socket/2 /hurd/pfinet --interface=%s --address=%s --netmask=%s",
interface, num2dot (ipaddress), num2dot (netmask));
if (gateway)
ptr +=
snprintf (ptr, sizeof (buf) - (ptr - buf), " --gateway=%s",
num2dot (gateway));
snprintf (buf, sizeof (buf), " --gateway=%s", num2dot (gateway));
rv |= execlog (buf);
@ -164,10 +159,8 @@ netcfg_activate_static ()
if (gateway)
{
ptr = buf;
ptr +=
snprintf (buf, sizeof (buf), "/sbin/route add default gateway %s",
num2dot (gateway));
snprintf (buf, sizeof (buf), "/sbin/route add default gateway %s",
num2dot (gateway));
rv |= execlog (buf);
}
#endif

3
netcfg.c

@ -306,8 +306,7 @@ netcfg_get_interface (struct debconfclient *client, char **interface)
len += newchars + 128;
}
snprintf (ptr + strlen (ptr), len - strlen (ptr), "%s: %s, ", inter,
get_ifdsc (inter));
snprintfcat (ptr, len, "%s: %s, ", inter, get_ifdsc (inter));
num_interfaces++;
}
getif_end ();

16
utils.c

@ -23,6 +23,7 @@
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
@ -67,3 +68,18 @@ check_dir (const char *dirname)
else
return S_ISDIR (check.st_mode);
}
int
snprintfcat (char *str, size_t size, const char *format, ...)
{
va_list ap;
int retval;
size_t len = strlen (str);
va_start (ap, format);
retval = vsnprintf (str + len, size - len, format, ap);
va_end (ap);
return retval;
}

1
utils.h

@ -3,5 +3,6 @@
int execlog (char *);
int check_dir (char *);
int snprintfcat (char *str, size_t size, const char *format, ...);
#endif /* __UTILS_H__ */

Loading…
Cancel
Save