pve-common.git
3 years agogenerate_typetext: handle enums and booleans automatically
Wolfgang Bumiller [Wed, 30 Mar 2016 10:09:53 +0000 (12:09 +0200)]
generate_typetext: handle enums and booleans automatically

3 years agoproperty strings: introduce key grouping feature
Wolfgang Bumiller [Wed, 30 Mar 2016 10:09:52 +0000 (12:09 +0200)]
property strings: introduce key grouping feature

Use case: networks for kvm use a <model>=<macaddr> scheme
where the model represents the network card. The schema
previously could not represent this, so we now introduce a
'group' key which works similar to an alias with the
difference that the data structure also gets an entry named
after the group filled with the name of the key that was
used to fill it.

Usage:
{
    virtio => { group => 'model' },
    e1000 => { group => 'model' },
    model => {
        type => 'string',
        pattern => ... # pattern for mac address
        ...
    }
}

Now the string 'virtio=aa:bb:cc:dd:ee:ff' gets parsed into:
{
    model => 'virtio',
    virtio => 'aa:bb:cc:dd:ee:ff'
}

Error examples:
  With bad value:
    virtio: value does not match the regex pattern
  Missing group:
    model: property is missing and it is not optional

parse_net() however used the 'macaddr' key for the mac
address, which can be achieved by aliasing 'model' to
'macaddr':
{
    virtio => { group => 'model' },
    e1000 => { group => 'model' },
    model => { alias => 'macaddr' },
    macaddr => {
        type => 'string',
        pattern => ... # pattern for mac address
        ...
    }
}

Then the above string will be parsed into:
{
    model => 'virtio',
    macaddr => 'aa:bb:cc:dd:ee:ff'
}

The error output now always shows the 'macaddr' key:
Error examples:
  With bad value:
    macaddr: value does not match the regex pattern
  Missing group:
    macaddr: property is missing and it is not optional

In order to support specifying no mac address we can now set
model.default_key = 1 and macaddr.optional = 1.
That way `virtio,bridge=vmbr2` gets parsed correctly into
just a model with no macaddr. This works because default
keys as aliases have previously not been supported and would
not have been aliased accordingly. This case is now also
taken into account when printing default keys, which is now
skipped if it is also an alias.

3 years agobump version to 4.0-57
Dietmar Maurer [Fri, 1 Apr 2016 05:17:09 +0000 (07:17 +0200)]
bump version to 4.0-57

3 years agofix #923: uninitalized value in remove_lock
Fabian Grünbichler [Wed, 30 Mar 2016 12:00:12 +0000 (14:00 +0200)]
fix #923: uninitalized value in remove_lock

3 years agoget_property_description: introduce new $style parameter
Dietmar Maurer [Thu, 31 Mar 2016 03:57:37 +0000 (05:57 +0200)]
get_property_description: introduce new $style parameter

config => colon separated config files
arg => command line argument
fixed => fixed command line argument (see usage_str())

3 years agocleanup: whitespace and than/then typo
Wolfgang Bumiller [Wed, 23 Mar 2016 08:21:37 +0000 (09:21 +0100)]
cleanup: whitespace and than/then typo

3 years agoget_property_description: add new 'text' format
Dietmar Maurer [Wed, 23 Mar 2016 09:19:15 +0000 (10:19 +0100)]
get_property_description: add new 'text' format

3 years agoget_property_description: use correct base name opt[n]
Dietmar Maurer [Wed, 23 Mar 2016 08:27:18 +0000 (09:27 +0100)]
get_property_description: use correct base name opt[n]

3 years agonew PVE::RESTHandler::dump_properties
Dietmar Maurer [Tue, 22 Mar 2016 10:25:50 +0000 (11:25 +0100)]
new PVE::RESTHandler::dump_properties

The plan is to replace code in PodParser.

3 years agofix spelling errors
Dietmar Maurer [Tue, 22 Mar 2016 09:39:16 +0000 (10:39 +0100)]
fix spelling errors

3 years agobump version to 4.0-56
Dietmar Maurer [Mon, 21 Mar 2016 07:47:39 +0000 (08:47 +0100)]
bump version to 4.0-56

3 years agoadd the 'urlencoded' string format
Wolfgang Bumiller [Fri, 18 Mar 2016 10:38:24 +0000 (11:38 +0100)]
add the 'urlencoded' string format

3 years agocleanup: full path package references to self
Wolfgang Bumiller [Fri, 18 Mar 2016 10:38:23 +0000 (11:38 +0100)]
cleanup: full path package references to self

This started happening when moving the 'pve-storage-id'
option from pve-storage and curously kept on going since
then...

3 years agocleanup: newlines in die/warn
Wolfgang Bumiller [Fri, 18 Mar 2016 10:38:22 +0000 (11:38 +0100)]
cleanup: newlines in die/warn

3 years agoproperty strings: check for commas in values
Wolfgang Bumiller [Fri, 18 Mar 2016 10:38:21 +0000 (11:38 +0100)]
property strings: check for commas in values

3 years agobump version to 4.0-55
Dietmar Maurer [Wed, 16 Mar 2016 15:48:44 +0000 (16:48 +0100)]
bump version to 4.0-55

3 years agoadd missing check for undef in is_mounted
Fabian Grünbichler [Wed, 16 Mar 2016 14:24:05 +0000 (15:24 +0100)]
add missing check for undef in is_mounted

3 years agobump version to 4.0-54
Dietmar Maurer [Tue, 15 Mar 2016 05:46:20 +0000 (06:46 +0100)]
bump version to 4.0-54

3 years agonet: don't die in get_active_interfaces() and try both address families
Wolfgang Bumiller [Thu, 10 Mar 2016 14:28:34 +0000 (15:28 +0100)]
net: don't die in get_active_interfaces() and try both address families

3 years agocleanup: regex match group reference
Wolfgang Bumiller [Wed, 9 Mar 2016 12:23:23 +0000 (13:23 +0100)]
cleanup: regex match group reference

Don't refer to the regex match group via $1 after running
other code.

3 years agonet: improve ingress tc filter
Wolfgang Bumiller [Tue, 8 Mar 2016 14:36:24 +0000 (15:36 +0100)]
net: improve ingress tc filter

Instead of doing a dummy "0 == 0" comparison with the u32
filter just use the 'basic' filter.

3 years agobump version to 4.0-53
Dietmar Maurer [Tue, 8 Mar 2016 14:51:30 +0000 (15:51 +0100)]
bump version to 4.0-53

3 years agonet: tap_plug() needs to apply rate limiting
Wolfgang Bumiller [Tue, 8 Mar 2016 12:54:44 +0000 (13:54 +0100)]
net: tap_plug() needs to apply rate limiting

Any action we take in tap_plug() when using OVS will undo
our rate limiting, which means any hotplug change must
restore the previous rate setting.
Since this means tap_plug() would always be followed by a
tap_rate_limit() call anyway we just include the rate
parameter here and let the caller decide whether the full
tap_plug() is required or the simple tap_rate_limit()
suffices.

3 years agonetwork: tap_rate_limit: fix uninitialized value
Wolfgang Bumiller [Tue, 8 Mar 2016 11:32:51 +0000 (12:32 +0100)]
network: tap_rate_limit: fix uninitialized value

3 years agopod: skip aliases in generate_property_text
Wolfgang Bumiller [Tue, 8 Mar 2016 10:56:40 +0000 (11:56 +0100)]
pod: skip aliases in generate_property_text

These are special and have no other properties to access.

3 years agobump version to 4.0-52
Dietmar Maurer [Tue, 8 Mar 2016 10:34:42 +0000 (11:34 +0100)]
bump version to 4.0-52

3 years agoDecide whether volume is added as unused in subclass
Fabian Grünbichler [Mon, 7 Mar 2016 11:38:38 +0000 (12:38 +0100)]
Decide whether volume is added as unused in subclass

since we need the volume ID of the volume/drive/mp, which is
only available after parsing, this needs to be done in the
subclasses.

__snapshot_delete_vol_snapshot() gets a new parameter, and
pushes the volid to this array if it should be added as
unused.

3 years agoIntroduce __snapshot_create_vol_snapshots_hook
Fabian Grünbichler [Mon, 7 Mar 2016 11:38:37 +0000 (12:38 +0100)]
Introduce __snapshot_create_vol_snapshots_hook

This hook runs before and after creating volume snapshots,
as well as after unfreezing. Only needed for Qemu right now,
so the base case in PVE::AbstractConfig is a noop.

3 years agobump version to 4.0-51
Dietmar Maurer [Thu, 3 Mar 2016 09:12:55 +0000 (10:12 +0100)]
bump version to 4.0-51

3 years agoAdd AbstractConfig base class
Fabian Grünbichler [Wed, 2 Mar 2016 12:56:26 +0000 (13:56 +0100)]
Add AbstractConfig base class

This class contains common code formerly duplicated in
PVE::LXC and PVE::QemuServer, as well as abstract methods
that must be implemented for LXC and Qemu seperately.

Currently implemented in PVE::LXC::Config, Qemu refactoring
will follow.

3 years agobump version to 4.0-50
Dietmar Maurer [Wed, 2 Mar 2016 05:23:40 +0000 (06:23 +0100)]
bump version to 4.0-50

3 years agoAdd since and until parameter to dump_journal
Thomas Lamprecht [Tue, 1 Mar 2016 15:32:34 +0000 (16:32 +0100)]
Add since and until parameter to dump_journal

journalctl can check their validness itself

3 years agopod: generate property string documentation
Wolfgang Bumiller [Thu, 25 Feb 2016 16:44:56 +0000 (17:44 +0100)]
pod: generate property string documentation

Generate the more detailed documentation with the
'description' property provided in the property-string
format schema for the '*.conf'(5) manpages.

3 years agobump version to 4.0-49
Dietmar Maurer [Thu, 18 Feb 2016 08:40:53 +0000 (09:40 +0100)]
bump version to 4.0-49

3 years agoschema: error on missing keys without default keys
Wolfgang Bumiller [Mon, 15 Feb 2016 14:35:35 +0000 (15:35 +0100)]
schema: error on missing keys without default keys

3 years agolimit vmid with JSON format
Dominik Csapak [Fri, 12 Feb 2016 10:43:23 +0000 (11:43 +0100)]
limit vmid with JSON format

if we do not do this, vmids < 100 (not really bad) and
vmids > 999999999 are possible, which can lead to vms which you can
only get rid of, if you delete the config files manually

also this makes the api consistent with the webgui for vmids

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 years agonetwork: get rid of ioctl.ph
Wolfgang Bumiller [Fri, 12 Feb 2016 09:42:54 +0000 (10:42 +0100)]
network: get rid of ioctl.ph

3 years agoschema: disable additional properties in property strings
Wolfgang Bumiller [Thu, 11 Feb 2016 10:21:00 +0000 (11:21 +0100)]
schema: disable additional properties in property strings

Changed the default additional_properties parameter when
verifying them from undefined (which defaults to 1) to 0.

parse_property_strings() now takes an optional
additional_properties parameter, too.

3 years agobump version to 4.0-48
Dietmar Maurer [Thu, 11 Feb 2016 10:25:02 +0000 (11:25 +0100)]
bump version to 4.0-48

3 years agoadded syncfs syscall and sync_mountpoint helper
Wolfgang Bumiller [Thu, 11 Feb 2016 08:26:29 +0000 (09:26 +0100)]
added syncfs syscall and sync_mountpoint helper

3 years agoupdate changelog
Dietmar Maurer [Wed, 10 Feb 2016 11:21:05 +0000 (12:21 +0100)]
update changelog

3 years agoFix #882: active state of interfaces depends on ipv6
Wolfgang Bumiller [Wed, 10 Feb 2016 09:59:07 +0000 (10:59 +0100)]
Fix #882: active state of interfaces depends on ipv6

read_etc_network_interfaces used the content of
/proc/net/if_inet6 to decide whether an interface's state is
"active", which means an interface is only active when it
has an ipv6 address, thus using net.ipv6.conf.*.disable_ipv6
on an interface will cause it to show as inactive in the web
interface.

We now filter the interfaces found in /proc/dev/net by their
IFF_UP flag read via an SIOCGIFFLAGS ioctl().

3 years agobump version to 4.0-47
Dietmar Maurer [Wed, 10 Feb 2016 10:14:06 +0000 (11:14 +0100)]
bump version to 4.0-47

3 years agoImplement refcounting for flocks
Fabian Grünbichler [Wed, 10 Feb 2016 07:25:23 +0000 (08:25 +0100)]
Implement refcounting for flocks

This was already implemented in PVE::LXC::lock_aquire() and
lock_release(). Enabling refcounting in the general
PVE::Tools::lock_file() and lock_file_full() methods allows
us to use one code base for flocking.

Furthermore, we could get rid of various xx_no_lock methods
that were required because the old non-refcounting version
did not support nested flocks (the inner most flock would
close the file handle and thus release the flock).

3 years agoCLIHandler: add missing use PVE::INotify
Wolfgang Bumiller [Wed, 10 Feb 2016 08:38:43 +0000 (09:38 +0100)]
CLIHandler: add missing use PVE::INotify

It uses PVE::INotify::inotify_init() in run_cli_handler().

3 years agobump version to 4.0-46
Dietmar Maurer [Wed, 27 Jan 2016 15:56:00 +0000 (16:56 +0100)]
bump version to 4.0-46

3 years agoadd upid_wait method
Thomas Lamprecht [Wed, 27 Jan 2016 12:15:05 +0000 (13:15 +0100)]
add upid_wait method

Waits for a process identified by a UPID to end by busy waiting
and is intended for long running workers.

waitfunc gets called every wait cycle after min $sleep_interval
seconds and can be used for outputting/logging something or timing
out the wait.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoSectionConfig: disable duplicate plugin registration
Dietmar Maurer [Tue, 26 Jan 2016 12:16:19 +0000 (13:16 +0100)]
SectionConfig: disable duplicate plugin registration

3 years agoTools: add setns system call
Wolfgang Bumiller [Fri, 22 Jan 2016 10:55:27 +0000 (11:55 +0100)]
Tools: add setns system call

3 years agobump version to 4.0-45
Dietmar Maurer [Mon, 18 Jan 2016 15:54:30 +0000 (16:54 +0100)]
bump version to 4.0-45

3 years agonetwork: fix uninitialized value error
Wolfgang Bumiller [Mon, 18 Jan 2016 08:17:23 +0000 (09:17 +0100)]
network: fix uninitialized value error

3 years agobump version to 4.0-44
Dietmar Maurer [Fri, 15 Jan 2016 16:26:22 +0000 (17:26 +0100)]
bump version to 4.0-44

3 years agonetwork : add trunks support
Alexandre Derumier [Fri, 15 Jan 2016 02:15:36 +0000 (03:15 +0100)]
network : add trunks support

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
3 years agobump version to 4.0-43
Dietmar Maurer [Fri, 8 Jan 2016 11:51:16 +0000 (12:51 +0100)]
bump version to 4.0-43

3 years agoFix #861: use safer sprintf formatting
Wolfgang Bumiller [Fri, 8 Jan 2016 11:43:58 +0000 (12:43 +0100)]
Fix #861: use safer sprintf formatting

3 years agoimprove asciidoc markup
Dietmar Maurer [Tue, 29 Dec 2015 17:43:12 +0000 (18:43 +0100)]
improve asciidoc markup

3 years agoadd experimental 'asciidoc' generator
Dietmar Maurer [Tue, 29 Dec 2015 16:02:00 +0000 (17:02 +0100)]
add experimental 'asciidoc' generator

useful to generate manual pages using asciidoc.

3 years agobump version to 4.0-42
Dietmar Maurer [Sat, 19 Dec 2015 08:06:41 +0000 (09:06 +0100)]
bump version to 4.0-42

3 years agoOutput also lockname if it cannot be acquired
Thomas Lamprecht [Wed, 16 Dec 2015 09:38:20 +0000 (10:38 +0100)]
Output also lockname if it cannot be acquired

If we can't acquire the lock in lock_file_full and get interrupted
by a signal inqeual to EINTR (e.g. SIGTERM), output also it's name
in the error message to allow better debugging.

Also fix a typo.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoallow fall back to default completion
Thomas Lamprecht [Wed, 16 Dec 2015 09:38:19 +0000 (10:38 +0100)]
allow fall back to default completion

This allows a fall back to the default completion, which completes
possible paths/files, if nothing can be generated from the PVE
completion handler ($print_bash_completion) or if the user starts
to entry a path.
This is especially useful for restore or create commands which can
take an archive file as argument.

The bash-completions get generated at each package build through the
respective Makefile, so to let this change come in effect the package
needs to be rebuild and installed (and the respective file from
/usr/share/bash-completion/completions/<pve cli tool> needs to be
sourced again (or simply open a new terminal))

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agobump version to 4.0-41
Dietmar Maurer [Mon, 7 Dec 2015 10:17:56 +0000 (11:17 +0100)]
bump version to 4.0-41

3 years agoDaemon: don't clear CLOEXEC on daemon sockets
Wolfgang Bumiller [Mon, 7 Dec 2015 09:41:24 +0000 (10:41 +0100)]
Daemon: don't clear CLOEXEC on daemon sockets

They were leaking into processes blocking full restarts of
the daemons.

Note that perl's fcntl doesn't work on numeric
filedescriptors (neither does POSIX::fcntl, which even stays
silent about it and returns EBADF without ever trying to
actually perform the fcntl syscall), so the socket handles
need to be stored ($daemon_sockets).
The flag is added back when the socket gets reopened.

3 years agobump version to 4.0-40
Dietmar Maurer [Mon, 30 Nov 2015 12:00:41 +0000 (13:00 +0100)]
bump version to 4.0-40

3 years agorun_command: return exit code and add noerr
Thomas Lamprecht [Mon, 30 Nov 2015 08:25:20 +0000 (09:25 +0100)]
run_command: return exit code and add noerr

Allow to return the exit code of the executed command.
And as we do not reach the return of the exit code if it was not 0,
a noerr parameter is also needed so we can suppress the 'command
failed' die in case of an exit code unequal to 0.

This is required as some programs return another value than 0 when
they succeed, For example `systemctl list-jobs` returns  a value
>= 0 on a successful execution, normally 1.
Without this patch a run_command call to `systemctl list-jobs` gets
marked as failed although it was successful.

This does not break current behaviour in any way as setting the
noerr parameter is required to return something other than 0 or
undef, which are equal in a boolean comparison.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
3 years agoprint_property_string: skip keys early
Wolfgang Bumiller [Wed, 25 Nov 2015 14:18:19 +0000 (15:18 +0100)]
print_property_string: skip keys early

Keys in the skip-list don't need to be valid schema keys.
This was overly strict before which makes it harder to
include temporary internal keys in a such an object.

3 years agobump version to 4.0-39
Dietmar Maurer [Thu, 26 Nov 2015 07:09:44 +0000 (08:09 +0100)]
bump version to 4.0-39

3 years agoadd function file_copy
Wolfgang Link [Wed, 25 Nov 2015 09:18:17 +0000 (10:18 +0100)]
add function file_copy

to have a save copy.

3 years agobump version to 4.0-38
Dietmar Maurer [Thu, 19 Nov 2015 05:25:36 +0000 (06:25 +0100)]
bump version to 4.0-38

3 years agoavoid access to undefinded var $tag
Dietmar Maurer [Thu, 19 Nov 2015 05:23:12 +0000 (06:23 +0100)]
avoid access to undefinded var $tag

3 years agobump version to 4.0-37
Dietmar Maurer [Fri, 13 Nov 2015 10:16:48 +0000 (11:16 +0100)]
bump version to 4.0-37

3 years agoProcFSTools: implement conforming parse_mounts
Wolfgang Bumiller [Thu, 12 Nov 2015 10:23:39 +0000 (11:23 +0100)]
ProcFSTools: implement conforming parse_mounts

There are a few places where we grep over /proc/mounts
without taking the encoding into acount.
ProcFSTools::parse_mounts parses mount data and decodes all
the special character the kernel might encode into it.

Shortcut: parse_proc_mounts to do
parse_mounts(read_proc_mounts()).
is_mounted() updated to parse mounts correctly.

3 years agoupdate changelog
Dietmar Maurer [Fri, 30 Oct 2015 10:05:49 +0000 (11:05 +0100)]
update changelog

3 years agofix CLONE constant declaration
Wolfgang Bumiller [Fri, 30 Oct 2015 09:31:01 +0000 (10:31 +0100)]
fix CLONE constant declaration

3 years agoTools: make unshare behave like other perl syscalls
Wolfgang Bumiller [Fri, 30 Oct 2015 09:31:00 +0000 (10:31 +0100)]
Tools: make unshare behave like other perl syscalls

Most syscall wrappers in perl return 1 on success and our
current use of Tools::unshare isn't using the return value
(yet), so let's fix this while we can.

Also it seems to make sense to use prototyping on syscalls
to add some compile-time argument checking.

3 years agobump version to 4.0-36
Dietmar Maurer [Fri, 30 Oct 2015 06:04:08 +0000 (07:04 +0100)]
bump version to 4.0-36

3 years agoprint_property_string: skip undefined values
Wolfgang Bumiller [Thu, 29 Oct 2015 13:56:58 +0000 (14:56 +0100)]
print_property_string: skip undefined values

3 years agoTools::df: fork and use Filesys::Df
Wolfgang Bumiller [Thu, 29 Oct 2015 13:16:59 +0000 (14:16 +0100)]
Tools::df: fork and use Filesys::Df

Instead of depending on the 'df' commandline tool do a
fork() to create a killable process and run Filesys::Df,
returning the data over a pipe.

4 years agobump version to 4.0-35
Dietmar Maurer [Fri, 23 Oct 2015 11:08:22 +0000 (13:08 +0200)]
bump version to 4.0-35

4 years agoread_prox_net_ipv6_route fixup
Wolfgang Bumiller [Thu, 22 Oct 2015 13:45:24 +0000 (15:45 +0200)]
read_prox_net_ipv6_route fixup

- read_v6addr used the wrong $_
- All values in the file are hex and possibly prefixed with
zeroes so we need to make sure they don't get interpreted as
octal.

4 years agobump version to 4.0-34
Dietmar Maurer [Mon, 19 Oct 2015 09:14:35 +0000 (11:14 +0200)]
bump version to 4.0-34

4 years agohalf-revert: remove autostart property from bridge ports
Wolfgang Bumiller [Mon, 19 Oct 2015 08:50:23 +0000 (10:50 +0200)]
half-revert: remove autostart property from bridge ports

In commit 21d32c95cd autostart was removed from all bridge
ports but should have only been removed from ovs bridge ports.

4 years agonetwork: IP_from_cidr and is_ip_in_cidr helpers
Wolfgang Bumiller [Fri, 16 Oct 2015 13:53:49 +0000 (15:53 +0200)]
network: IP_from_cidr and is_ip_in_cidr helpers

4 years agobump version to 4.0-33
Dietmar Maurer [Fri, 16 Oct 2015 07:54:07 +0000 (09:54 +0200)]
bump version to 4.0-33

4 years agoallow /32 ipv4 cidrs
Wolfgang Bumiller [Fri, 16 Oct 2015 07:28:07 +0000 (09:28 +0200)]
allow /32 ipv4 cidrs

4 years agosupport aliases in property strings
Wolfgang Bumiller [Thu, 15 Oct 2015 10:35:18 +0000 (12:35 +0200)]
support aliases in property strings

In qemu the 'volume' key maps to 'file', both can be used,
so to support this case in the comma-separated property
list parser we need a way to alias keys to one another.
This allows declaring a key like:

  volume => {
      alias => 'file'
  }
  file => {
      type => 'string',
      format => 'pve-volume-id',
      default_key => 1,
      format_description => 'volume'
  }

With this the following property strings are equivalent and
result in the same datastructure being returned from
parse_property_string:

  local:disk.raw
  file=local:disk.raw
  volume=local:disk.raw

4 years agobump version tio 4.0-32
Dietmar Maurer [Thu, 15 Oct 2015 10:22:59 +0000 (12:22 +0200)]
bump version tio 4.0-32

4 years agoprint_property_string: disk-size is a format, not a type
Wolfgang Bumiller [Thu, 15 Oct 2015 10:12:31 +0000 (12:12 +0200)]
print_property_string: disk-size is a format, not a type

4 years agorandom_ether_addr: code cleanups
Dietmar Maurer [Fri, 9 Oct 2015 09:48:25 +0000 (11:48 +0200)]
random_ether_addr: code cleanups

4 years agoShorter implementation of random_ether_addr().
Philipp Marek [Wed, 7 Oct 2015 09:09:00 +0000 (11:09 +0200)]
Shorter implementation of random_ether_addr().

4 years agobump version to 4.0-31
Dietmar Maurer [Fri, 9 Oct 2015 06:43:54 +0000 (08:43 +0200)]
bump version to 4.0-31

4 years agoparse_property_string: add newline to error strings
Dietmar Maurer [Fri, 9 Oct 2015 06:38:37 +0000 (08:38 +0200)]
parse_property_string: add newline to error strings

to prevent perl from adding 'at line xxx'

4 years agodon't reorder unknown interface types
Wolfgang Bumiller [Wed, 7 Oct 2015 08:42:17 +0000 (10:42 +0200)]
don't reorder unknown interface types

Giving unknown interfaces an order-id of 0 caused them to
always be on top of the interfaces file. This is often
undesired. Instead we now only take type-ordering into
account when both interfaces which are being compared have a
known type, and otherwise only use the priority attribute.
This should result in a more stable modification of
interfaces.

Fixes #747

4 years agobump version to 4.0-30
Dietmar Maurer [Wed, 7 Oct 2015 06:57:24 +0000 (08:57 +0200)]
bump version to 4.0-30

4 years agoapi_clone_schema: use Clone::clone instead of Storable::dclone
Dietmar Maurer [Wed, 7 Oct 2015 06:55:42 +0000 (08:55 +0200)]
api_clone_schema: use Clone::clone instead of Storable::dclone

This works with CODE refs like 'completion' helpers.

4 years agodepend on libclone-perl
Dietmar Maurer [Wed, 7 Oct 2015 06:54:25 +0000 (08:54 +0200)]
depend on libclone-perl

4 years agobump version to 4.0-29
Dietmar Maurer [Mon, 5 Oct 2015 10:32:13 +0000 (12:32 +0200)]
bump version to 4.0-29

4 years agoTools::IPV4OCTET: move longer alternatives forward
Wolfgang Bumiller [Mon, 5 Oct 2015 07:30:57 +0000 (09:30 +0200)]
Tools::IPV4OCTET: move longer alternatives forward

In an alternation /a|b|c/ the first match matches, so while
'1.1.1.121' matches /^$IPV4RE$/ (note the ^ and $ anchors),
parsing a line like /nameserver ($IPV4RE)/ would only
extract '1.1.1.12', ignoring the last '1' due to the /[1-9]/
alternative matching before the /1[0-9]/ one.

4 years agoINotify::read_etc_resolv_conf: ipv6 support
Wolfgang Bumiller [Mon, 5 Oct 2015 07:30:56 +0000 (09:30 +0200)]
INotify::read_etc_resolv_conf: ipv6 support

4 years agobump version to 4.0-28
Dietmar Maurer [Fri, 2 Oct 2015 11:42:53 +0000 (13:42 +0200)]
bump version to 4.0-28

4 years agorun_cli_handler: add no_init for lxc mount hook
Dietmar Maurer [Fri, 2 Oct 2015 11:41:15 +0000 (13:41 +0200)]
run_cli_handler: add no_init for lxc mount hook