Re: diff: dhcp-options(5) vs. dhcpd/tables.c

2013-01-02 Thread Jason McIntyre
On Sun, Dec 16, 2012 at 07:24:53PM +0100, MERIGHI Marcus wrote:
 Hello,  
 
 playing with option-252 I found it already has a name. Found that as
 well: http://marc.info/?l=openbsd-miscm=126573542214773
 
 Wrote a little script to find undocumented options, see end of message.
 
 I moved some existing blocks when I found them to be in the wrong place.
 Added a new section: DHCP Extensions.
 Kept ordering as used in the RFCs. 
 BTW, format X is undocumented in src/usr.sbin/dhcpd/tables.c
 
 took some time and research, please review:
 
 Index: dhcp-options.5
 ===

fixed now by krw.
jmc



[PATCH] mbuf.9 update

2013-01-02 Thread r...@ozmun.us
--- mbuf.9  17 Nov 2012 10:55:21 -  1.58
+++ mbuf.9  2 Jan 2013 21:04:56 -
@@ -25,7 +25,7 @@
 .\ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\
-.Dd $Mdocdate: November 17 2012 $
+.Dd $Mdocdate: January 2 2013 $
 .Dt MBUF 9
 .Os
 .Sh NAME
@@ -110,31 +110,38 @@
 };

 struct pkthdr {
-struct  ifnet *rcvif;
-SLIST_HEAD(packet_tags, m_tag) tags;
-int len;
-u_int16_t csum_flags;
-u_int16_t ether_vtag;
+   struct  ifnet *rcvif;
+   SLIST_HEAD(packet_tags, m_tag) tags;
+   int len;
+   u_int16_t tagsset;
+   u_int16_t pad;
+   u_int16_t csum_flags;
+   u_int16_t ether_vtag;
+   u_int   rdomain;
struct  pkthdr_pf pf;
 };

 struct pkthdr_pf {
void *hdr;
-   u_int rtableid;
+   void *statekey;
u_int32_t qid;
u_int16_t tag;
u_int8_t  flags;
u_int8_t  routed;
+   u_int8_t  prio;
+   u_int8_t  pad[3];
 };

-struct m_ext {
-caddr_t ext_buf;
-void(*ext_free)(caddr_t, u_int, void *);
-void*ext_arg;
-u_int   ext_size;
-int ext_type;
-struct mbuf *ext_nextref;
-struct mbuf *ext_prevref;
+struct mbuf_ext {
+   caddr_t ext_buf;
+   void(*ext_free)(caddr_t, u_int, void *);
+   void*ext_arg;
+   u_int   ext_size;
+   int ext_type;
+   struct ifnet* ext_ifp;
+   int ext_backend;
+   struct mbuf *ext_nextref;
+   struct mbuf *ext_prevref;
 };

 struct mbuf {
@@ -143,7 +150,7 @@
 struct {
 struct  pkthdr MH_pkthdr;
 union {
-struct  m_ext MH_ext;
+struct  mbuf_ext MH_ext;
 charMH_databuf[MHLEN];
 } MH_dat;
 } MH;



units(1): add a count to from-unit

2013-01-02 Thread Jason McIntyre
a current undocumented feature of units(1) is that you can specify a
numerical count when in non-interactive mode:

$ units 10 GBP USD
* 16.167
/ 0.061854395

but neither of these methods work:

$ units 10 GBP USD
$ units 10GBP USD

netbsd made the first of those two methods possible about 11 years ago,
in revision 1.10:


http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.bin/units/units.c?rev=1.10content-type=text/x-cvsweb-markup

it's a much nicer way to do it, so i've merged the change in, with some
help from otto.

diff below. any oks or objections?
jmc

Index: units.1
===
RCS file: /cvs/src/usr.bin/units/units.1,v
retrieving revision 1.24
diff -u -r1.24 units.1
--- units.1 8 Oct 2011 20:41:12 -   1.24
+++ units.1 2 Jan 2013 22:14:46 -
@@ -26,7 +26,7 @@
 .Nm units
 .Op Fl qv
 .Op Fl f Ar filename
-.Op Ar from-unit to-unit
+.Op Oo Ar count Oc Ar from-unit to-unit
 .Sh DESCRIPTION
 The
 .Nm
@@ -84,11 +84,15 @@
 about the number of units loaded.
 .It Fl v
 Prints the version number.
-.It Ar from-unit Ar to-unit
+.It Oo Ar count Oc Ar from-unit to-unit
 Allows a single unit conversion to be done directly from the command line.
 No prompting will occur.
 The units program will print out
 only the result of this single conversion.
+A
+.Ar count
+can be given to specify multiples of
+.Ar from-unit .
 .El
 .Pp
 Powers of units can be specified using the
Index: units.c
===
RCS file: /cvs/src/usr.bin/units/units.c,v
retrieving revision 1.17
diff -u -r1.17 units.c
--- units.c 7 Oct 2011 20:07:25 -   1.17
+++ units.c 2 Jan 2013 22:14:46 -
@@ -612,7 +612,7 @@
 usage(void)
 {
fprintf(stderr,
-   usage: units [-qv] [-f filename] [from-unit to-unit]\n);
+   usage: units [-qv] [-f filename] [[count] from-unit to-unit]\n);
exit(3);
 }
 
@@ -651,14 +651,26 @@
}
}
 
-   if (optind != argc - 2  optind != argc)
+   argc -= optind;
+   argv += optind;
+
+   if (argc != 3  argc != 2  argc != 0)
usage();
 
readunits(userfile);
 
-   if (optind == argc - 2) {
-   strlcpy(havestr, argv[optind], sizeof(havestr));
-   strlcpy(wantstr, argv[optind + 1], sizeof(wantstr));
+   if (argc == 3) {
+   strlcpy(havestr, argv[0], sizeof(havestr));
+   strlcat(havestr,  , sizeof(havestr));
+   strlcat(havestr, argv[1], sizeof(havestr));
+   argc--;
+   argv++;
+   argv[0] = havestr;
+   }
+
+   if (argc == 2) {
+   strlcpy(havestr, argv[0], sizeof(havestr));
+   strlcpy(wantstr, argv[1], sizeof(wantstr));
initializeunit(have);
addunit(have, havestr, 0);
completereduce(have);



Re: [PATCH] mbuf.9 update

2013-01-02 Thread Jason McIntyre
On Wed, Jan 02, 2013 at 03:07:14PM -0600, r...@ozmun.us wrote:
 --- mbuf.9  17 Nov 2012 10:55:21 -  1.58
 +++ mbuf.9  2 Jan 2013 21:04:56 -

this diff doesn;t apply cleanly. is your mailer mangling spaces or
something?

jmc



localtime_r on sparc64

2013-01-02 Thread David Hill
Hello -

Not sure if my code is wrong, or if sparc64 has a bug?

The following code produces different results on sparc64 vs i386.

i386 results:
$ ./code
seconds: 1357170317
year: 2013

sparc64 results:
$ ./code
seconds: 1357170432
year: 1969


/*
 * code
 */
#include sys/types.h
#include sys/time.h
#include time.h
#include stdio.h

int
main(void)
{
struct timeval tp;
struct tm *tm, tmBuf;

if (gettimeofday(tp, NULL) == -1)
perror(gettimeofday);

printf(seconds: %ld\n, tp.tv_sec);

tm = localtime_r((time_t *)(tp.tv_sec), tmBuf);

printf(year: %d\n, tm-tm_year + 1900);
return (0);
}



Re: localtime_r on sparc64

2013-01-02 Thread David Hill
My code is wrong!  Yikes.  Doing undefined things!

Ignore :)

On Wed, Jan 02, 2013 at 06:54:20PM -0500, David Hill wrote:
Hello -

Not sure if my code is wrong, or if sparc64 has a bug?

The following code produces different results on sparc64 vs i386.

i386 results:
$ ./code
seconds: 1357170317
year: 2013

sparc64 results:
$ ./code
seconds: 1357170432
year: 1969


/*
 * code
 */
#include sys/types.h
#include sys/time.h
#include time.h
#include stdio.h

int
main(void)
{
struct timeval tp;
struct tm *tm, tmBuf;

if (gettimeofday(tp, NULL) == -1)
perror(gettimeofday);

printf(seconds: %ld\n, tp.tv_sec);

tm = localtime_r((time_t *)(tp.tv_sec), tmBuf);

printf(year: %d\n, tm-tm_year + 1900);
return (0);
}



Re: localtime_r on sparc64

2013-01-02 Thread Theo de Raadt
Your code is completely wrong.

 Not sure if my code is wrong, or if sparc64 has a bug?
 
 The following code produces different results on sparc64 vs i386.
 
 i386 results:
 $ ./code
 seconds: 1357170317
 year: 2013
 
 sparc64 results:
 $ ./code
 seconds: 1357170432
 year: 1969
 
 
 /*
  * code
  */
 #include sys/types.h
 #include sys/time.h
 #include time.h
 #include stdio.h
 
 int
 main(void)
 {
 struct timeval tp;
 struct tm *tm, tmBuf;
 
 if (gettimeofday(tp, NULL) == -1)
 perror(gettimeofday);
 
 printf(seconds: %ld\n, tp.tv_sec);
 
 tm = localtime_r((time_t *)(tp.tv_sec), tmBuf);
 
 printf(year: %d\n, tm-tm_year + 1900);
 return (0);
 }



Re: [PATCH] mbuf.9 update

2013-01-02 Thread Ryan Ozmun
On Wed, 2 Jan 2013, Jason McIntyre wrote:

 On Wed, Jan 02, 2013 at 03:07:14PM -0600, r...@ozmun.us wrote:
  --- mbuf.9  17 Nov 2012 10:55:21 -  1.58
  +++ mbuf.9  2 Jan 2013 21:04:56 -
 
 this diff doesn;t apply cleanly. is your mailer mangling spaces or
 something?
 
 jmc
 
 

Yeah, this one should work:

--- mbuf.9  17 Nov 2012 10:55:21 -  1.58
+++ mbuf.9  2 Jan 2013 21:04:56 -
@@ -25,7 +25,7 @@
 .\ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\
-.Dd $Mdocdate: November 17 2012 $
+.Dd $Mdocdate: January 2 2013 $
 .Dt MBUF 9
 .Os
 .Sh NAME
@@ -110,31 +110,38 @@
 };
 
 struct pkthdr {
-struct  ifnet *rcvif;
-SLIST_HEAD(packet_tags, m_tag) tags;
-int len;
-u_int16_t csum_flags;
-u_int16_t ether_vtag;
+   struct  ifnet *rcvif;
+   SLIST_HEAD(packet_tags, m_tag) tags;
+   int len;
+   u_int16_t tagsset;
+   u_int16_t pad;
+   u_int16_t csum_flags;
+   u_int16_t ether_vtag;
+   u_int   rdomain;
struct  pkthdr_pf pf;
 };
 
 struct pkthdr_pf {
void *hdr;
-   u_int rtableid;
+   void *statekey;
u_int32_t qid;
u_int16_t tag;
u_int8_t  flags;
u_int8_t  routed;
+   u_int8_t  prio;
+   u_int8_t  pad[3];
 };
 
-struct m_ext {
-caddr_t ext_buf;
-void(*ext_free)(caddr_t, u_int, void *);
-void*ext_arg;
-u_int   ext_size;
-int ext_type;
-struct mbuf *ext_nextref;
-struct mbuf *ext_prevref;
+struct mbuf_ext {
+   caddr_t ext_buf;
+   void(*ext_free)(caddr_t, u_int, void *);
+   void*ext_arg;
+   u_int   ext_size;
+   int ext_type;
+   struct ifnet* ext_ifp;
+   int ext_backend;
+   struct mbuf *ext_nextref;
+   struct mbuf *ext_prevref;
 };
 
 struct mbuf {
@@ -143,7 +150,7 @@
 struct {
 struct  pkthdr MH_pkthdr;
 union {
-struct  m_ext MH_ext;
+struct  mbuf_ext MH_ext;
 charMH_databuf[MHLEN];
 } MH_dat;
 } MH;



adduser: better locked password

2013-01-02 Thread Tobias Ulmer
Adding a user with a locked password is a deliberate action.
Set the password to * to stop security(8) from
complaining about the new user.

OK?

Index: adduser.perl
===
RCS file: /home/vcs/cvs/openbsd/src/usr.sbin/adduser/adduser.perl,v
retrieving revision 1.58
diff -u -p -r1.58 adduser.perl
--- adduser.perl22 Sep 2011 10:59:23 -  1.58
+++ adduser.perl3 Jan 2013 03:29:54 -
@@ -800,7 +800,7 @@ sub new_users {
if (new_users_ok) {
$new_users_ok = 1;
 
-   $cryptpwd = *;# Locked by default
+   $cryptpwd = *; # Locked by default
$cryptpwd = encrypt($password, salt) if ($password ne );
$log_cl =  if ($log_cl eq default);



[PATCH] iovec array size in pppoe

2013-01-02 Thread Michael W. Bombardieri
Hi,

I am submitting a small patch for pppoe...

The iovec array in send_padi() can contain either 7 or 8 elements.
The following patch declares the array as having size of 8 rather
than 10.

Does this look OK?

- Michael


Index: client.c
===
RCS file: /cvs/src/usr.sbin/pppoe/client.c,v
retrieving revision 1.24
diff -u -r1.24 client.c
--- client.c5 Nov 2011 09:20:36 -   1.24
+++ client.c3 Jan 2013 03:33:00 -
@@ -144,7 +144,7 @@
 static int
 send_padi(int fd, struct ether_addr *ea, u_int8_t *srv)
 {
-   struct iovec iov[10];
+   struct iovec iov[8];
struct pppoe_header ph = {
PPPOE_VERTYPE(1, 1),
PPPOE_CODE_PADI, 0, 0



Re: [PATCH] mbuf.9 update

2013-01-02 Thread Jason McIntyre
On Wed, Jan 02, 2013 at 07:40:19PM -0600, Ryan Ozmun wrote:
 On Wed, 2 Jan 2013, Jason McIntyre wrote:
 
  On Wed, Jan 02, 2013 at 03:07:14PM -0600, r...@ozmun.us wrote:
   --- mbuf.9  17 Nov 2012 10:55:21 -  1.58
   +++ mbuf.9  2 Jan 2013 21:04:56 -
  
  this diff doesn;t apply cleanly. is your mailer mangling spaces or
  something?
  
  jmc
  
  
 
 Yeah, this one should work:
 

yep. fixed now, thanks.
jmc

 --- mbuf.917 Nov 2012 10:55:21 -  1.58
 +++ mbuf.92 Jan 2013 21:04:56 -
 @@ -25,7 +25,7 @@
  .\ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  .\ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  .\
 -.Dd $Mdocdate: November 17 2012 $
 +.Dd $Mdocdate: January 2 2013 $
  .Dt MBUF 9
  .Os
  .Sh NAME
 @@ -110,31 +110,38 @@
  };
  
  struct pkthdr {
 -struct  ifnet *rcvif;
 -SLIST_HEAD(packet_tags, m_tag) tags;
 -int len;
 -u_int16_t csum_flags;
 -u_int16_t ether_vtag;
 + struct  ifnet *rcvif;
 + SLIST_HEAD(packet_tags, m_tag) tags;
 + int len;
 + u_int16_t tagsset;
 + u_int16_t pad;
 + u_int16_t csum_flags;
 + u_int16_t ether_vtag;
 + u_int   rdomain;
   struct  pkthdr_pf pf;
  };
  
  struct pkthdr_pf {
   void *hdr;
 - u_int rtableid;
 + void *statekey;
   u_int32_t qid;
   u_int16_t tag;
   u_int8_t  flags;
   u_int8_t  routed;
 + u_int8_t  prio;
 + u_int8_t  pad[3];
  };
  
 -struct m_ext {
 -caddr_t ext_buf;
 -void(*ext_free)(caddr_t, u_int, void *);
 -void*ext_arg;
 -u_int   ext_size;
 -int ext_type;
 -struct mbuf *ext_nextref;
 -struct mbuf *ext_prevref;
 +struct mbuf_ext {
 + caddr_t ext_buf;
 + void(*ext_free)(caddr_t, u_int, void *);
 + void*ext_arg;
 + u_int   ext_size;
 + int ext_type;
 + struct ifnet* ext_ifp;
 + int ext_backend;
 + struct mbuf *ext_nextref;
 + struct mbuf *ext_prevref;
  };
  
  struct mbuf {
 @@ -143,7 +150,7 @@
  struct {
  struct  pkthdr MH_pkthdr;
  union {
 -struct  m_ext MH_ext;
 +struct  mbuf_ext MH_ext;
  charMH_databuf[MHLEN];
  } MH_dat;
  } MH;