summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2000-06-25Fix typo; ds@ds.primasoft.bgAaron Campbell
2000-06-25increase flexibility of distribution-etc-root-var:Christian Weisgerber
- NOMAKEDEV to optionally skip making devices - allow building aliases.db under /var/tmp will come in handy with mergemaster; ok millert@
2000-06-25allow 'fmt -w width' and 'fmt -width'.Paul Janzen
ok millert@
2000-06-25correct return valuesPaul Janzen
2000-06-25comma splicePaul Janzen
2000-06-25vnd needs blowfish. Ok provos@Marc Espie
2000-06-25safe shell quotingDug Song
2000-06-25pass variables to dhclient-script via a constructed environment, instead of ↵Dug Song
a temporary shell script
2000-06-24Don't assign an MTU based on the peers first-link MRU in MP mode.brian
Use the peers MRRU as we're supposed to.
2000-06-24syncFederico G. Schwindt
2000-06-24Implement getdents64, lstat64 and stat64, basically the same functions ofFederico G. Schwindt
the existing ones using 64bit vars. This makes netscape-solaris works on sparc. Particular note to those who want to try netscape: - netscape 4.73 was used for testing on a ss5 with -current. - apparently solaris uses pipes for communicating with the X server. I've checked the libraries I've installed from a solaris 2.6 box, and although there are references to X11-unix, it fails when it tries to open X11-pipe/X0, so in order to test it you need to specify -display <box ip>:0 or it won't start. - i got some errors when starting, but besides that, it works fine. - it's not slow, but you better have all the requiered files in the correct paths, or it'll take some time to start.
2000-06-24Do not start snmpd by default just because it is installed. ok theo@.Jakob Schlyter
2000-06-23link instbin w/ scrt0, saves a couple of k'sMichael Shalayeff
2000-06-23implement bubble sort in ksh instead of using sort(1).Michael Shalayeff
i think i'll fix sparc next week to use it.
2000-06-23set mp->keyfile = NULL if stat failsMarkus Friedl
2000-06-23Get rid of repeating error messages; From netbsd millert@ okEric Jackson
2000-06-23Implement PCMCIA event polling. This will either complement interrupt-drivenAaron Campbell
event notification from the pcic (if an interrupt is available) or allow the insertion and removal of PCMCIA devices even if there is no IRQ for the pcic. Each socket is checked for status change every 0.5 seconds using art's timeout code. Insertion and removal events should no longer ever go unnoticed.
2000-06-23This patch replaces str_concat with a slightly unobfuscated version.Marc Espie
In particular, Dir_MakeFlags is abusing str_concat, and works much better with buffers.
2000-06-23This is complementary to the previous patch.Marc Espie
There is no code change in this patch, we just move the remaining `lowparse' functions to the right file, and adjust the interface file accordingly. Reviewed by miod@
2000-06-23This patch is worth a lot, speed-wise.Marc Espie
This does introduce a proper stack of IFiles to handle included files: instead of having the current file be a special case, it's also an IFile. The corresponding code is slightly unobfuscated, removing the error-prone ParseEOF function, freeing the filename systematically (thus, main.c needs to strdup stdin), and merging both include functions lookup into one. The speed gain comes from changing the IFile structure to merge with fgetln seamlessly. The low-level parse code is mostly moved to a new file, lowparse.c, to make things easier to read (see next patch as well). Accordingly, util.c gains a fgetln. Note the interaction between Parse_File, Dir_FindFile, and ReadMakefile in main.c. This patch closes a subtle memory hole (only the Makefile names, so rather small). Reviewed by miod@.
2000-06-23This is the speed-up patch, which doubles make speed (almost).Marc Espie
Use the open hashing functions for global contexts instead of List in var.c. All the preliminary work to trim down local contexts means that we don't suffer from the heavy initialization work that a hash table entails. There is some make kludgery to: - build the hashing functions as a library, - recreate hashconsts.h, even if make depend was not invoked. One point of the hashing scheme written was to separate the computation of the hash function, and the hash lookup itself. This is very convenient for make, because of those pesky special variables. hashconsts.h is there to pre-hash the correct values, which replaces a few expensive string comparisons with quick hash value comparisons, followed by one expensive string comparison. The modulus MAGICSLOTS chosen in the Makefile is ad-hoc: it is small enough to write a small switch without collision, and will need changing if the hash function changes... The function quick_lookup is the most important: it either returns an index, for a local variable, or it does compute a hashing value, and returns -1. Another somewhat controversial decision is the use of string intervals. This avoids either copying a string, or twiddling with a byte for cases such as ${VAR}. Finally, the variable name is stored within the variable itself. Since a given variable name never changes, this makes sense. All that was needed was a hash library with support for this. Note that the hashing table holds only a variable pointer AND the corresponding hashing value, WITHOUT a modulo hashtablesize. Two reasons: - hash resizes can be done faster, without having to recompute hashing values. - locality of access. The hash table fits into memory without problem. Once a candidate slot is found, we check the complete hashing value. Probability of a collision is very small (32 bits...). So bringing up the whole variable in memory at once is good: the name will almost always match, in which case we want the variable value as well, so it makes sense to put them together. The ohash functions implement open hashing, as described in Knuth, but with a variable table size. Choosing powers of 2 sizes does not yield more collisions, but it makes the hashing scheme much simpler. The thresholds at which to expand/shrink the tables seem to work well in practice. The default sizes were chosen such that the tables hardly ever shrink or expand anyways (though I've tried with smaller/larger sizes to verify that the shrinking/expanding worked correctly): larger Makefiles hold roughly 500/600 variables, which fits without trouble into a 1024-sized variable. Disregard #ifdef STATS_HASH, this is some internal scaffolding I'm using to measure make performance. The only known issue with open-hashing is that deletions cannot create empty slots, but do leave slots marked as `occupied once' so that lookup works. We use a well-known optimization which records those pseudo-empty slots while looking up values. If the value is not found, the pseudo-empty slot is returned to be filled. If the value is found, it is swapped with the pseudo-empty slot. This is an improvement in both cases, since this shortens the length of lookup chains, eventually pushing the pseudo-empty slots to the end. Reviewed by millert@ and miod@
2000-06-23Open Hashing library, based on Knuth.Marc Espie
Some interface work to make it as fast as possible.
2000-06-23This patch separates local contexts from global contexts for good.Marc Espie
Apart from a few casts, VAR_GLOBAL and friends are separate data structures, so we use a small array for local variables. We also junk allVars, since TargFreeGN can release local nodes, and var.c has explicit lists for its variables already. Reviewed millert@ and miod@.
2000-06-23In various places, VAR_CMD is used to actually mean `no real context',Marc Espie
since lookup will start with VAR_CMD in any case. This fixes VarFind and Var_Parse to handle ctxt == NULL correctly, and replace those confusing VAR_CMD with proper NULL pointers. This patch also handles three small details: - .CURDIR is necessarily set in VAR_GLOBAL, - suffix handling for archives copies two hard-coded variables, for which it can use a quick path, - typos in TargFreeGN. Reviewed millert@, miod@.
2000-06-23Once those special variable are taken care of, other Var functions can takeMarc Espie
the GNode's context directly. We rename that special Lst to `SymTable *' in prevision of things to come. Along the line, we lose the special GNodes affected to VAR_CMD, VAR_GLOBAL, VAR_ENV, which become simple Lsts... This is not a problem, except when getting to a context's name for debugging (handled very nicely by offsetof). Again, this is a preparatory patch, which does not gain anything except for cleaning up issues... Reviewed by millert@ and miod@, like the previous patch
2000-06-23Start of variable fixes and speed-ups.Marc Espie
This patch may seem a bit non-sensical at first. It simply introduces some new interface. Specifically, recognizes that some variable names (.TARGET/$@, .OODATE/$?, .ALLSRC/$>, .IMPSRC/$<, .PREFIX/$*, .ARCHIVE/$!, .MEMBER/$%) are `special' (the actual variables which are local to a target, e.g. GNode). Currently, The Varq functions (for Varquick access) are only stubs to the normal functions. This fixes a very important detail before proceeding to turn variable lists into hash tables: if every GNode holds a hash table, initialization times for those will be very costly. But generic GNodes only hold those seven special variables... which can be stored directly into a small array; the only general cases are the environment, the command line and global variables.
2000-06-23Trivial consequences of the previous list changes:Marc Espie
- audit code for Lst_Datum, it's never applied to an empty pointer, so check can be removed -> turn into a macro, - Lst_First, Lst_Last can become macro as well - specialized version of Lst_Succ (Lst_Adv) to use in loops where it cannot fail, - Lst_Open can no longer fail. Trim down corresponding code. Reviewed millert@, miod@
2000-06-23Pass the correct sizeo() to cfattach struct so we don't panic on detach.Aaron Campbell
2000-06-23Fix a printf-style arg cast (again)brian
2000-06-23Improved 227, 229 and EPRT support in the nat code; FreeBSDbrian
Moved security checks into one place; FreeBSD Remove ``nat pptp'' now that it's transparent
2000-06-23remove obsolete vtrace guts; art@Michael Shalayeff
2000-06-23fix dhcpd to not abandon addresses forever when they are pinged before useBob Beck
which creates a nice denial of service when people use static addresses in the dhcp range. - instead abandon the address only for the default lease time so that it may be re-used afterwards. Tested and committed with aaron and jason while drinking beer and wearing balloons on my head in the bar at the USENIX party.
2000-06-23ret should be there, wether auxreg/led is defined or not.Federico G. Schwindt
2000-06-22Missing CVS idents; ok markusDamien Miller
2000-06-22on unconfig, bzero the key before free; from aazubel@core-sdi.com.Federico G. Schwindt
2000-06-22fix a typo by wpaul; using ipv6 tunneled to usenix (thanks itojun!)Todd T. Fries
2000-06-22regen-vtraceMichael Shalayeff
2000-06-22make vtrace always obsolte; art@Michael Shalayeff
2000-06-22Correct PPPoE in multi-link mode; jason@brian
2000-06-22add paper by cmetz. correct example. (sync with kame)Jun-ichiro itojun Hagino
2000-06-22Convert arptimer to new timeouts.Artur Grabowski
2000-06-22Convert to new timeouts.Artur Grabowski
2000-06-22missing atomicio; report from Steve.Marquess@DET.AMEDD.ARMY.MILMarkus Friedl
2000-06-22xl_setmulti_hash() does not work right. tested at usenix2000 term room.Jun-ichiro itojun Hagino
affects 905B only.
2000-06-22mention IPv6 address can be put into nameserver lineJun-ichiro itojun Hagino
2000-06-22ipv6 support in resolver. "nameserver" line in /etc/resolv.conf now takesJun-ichiro itojun Hagino
ipv6 address.
2000-06-21Kirk announced that soft updates are free todayNiklas Hallqvist
2000-06-21Fix xd entry in chrtoblktblMiod Vallat
2000-06-21Add a few missing devices (/dev/vme*, for example) ; make devices forMiod Vallat
16 slices per disk instead of 8 previously ; and tidy things a bit
2000-06-21add epsv4 command, which turns off epsv on ipv4 (off by dfeault)Jun-ichiro itojun Hagino
automagicaslly disable epsv on ipv4, if epsv fails for single connection. merge from netbsd-current. req from fgs.