profile/ivi/murphy.git
10 years agoMerge branch 'master' of github.com:otcshare/policy-internal v0.0.40 v0.0.41
Krisztian Litkey [Fri, 13 Dec 2013 22:02:57 +0000 (00:02 +0200)]
Merge branch 'master' of github.com:otcshare/policy-internal

10 years agolua-decision: don't crash in table/select constructor if arg is not table.
Janos Kovacs [Fri, 13 Dec 2013 12:35:42 +0000 (14:35 +0200)]
lua-decision: don't crash in table/select constructor if arg is not table.

10 years agoresource-dbus: fix a buffer overflow.
Ismo Puustinen [Wed, 11 Dec 2013 13:17:47 +0000 (15:17 +0200)]
resource-dbus: fix a buffer overflow.

10 years agolua-bindings: added murphy.disable_include(), for disabling inclusion.
Krisztian Litkey [Fri, 6 Dec 2013 17:22:36 +0000 (19:22 +0200)]
lua-bindings: added murphy.disable_include(), for disabling inclusion.

10 years agolua-utils: get rid of a compiler warning.
Krisztian Litkey [Thu, 5 Dec 2013 17:54:00 +0000 (19:54 +0200)]
lua-utils: get rid of a compiler warning.

10 years agolua-bindings: reworked Murphy.include & co. to use mrp_lua_include_file.
Krisztian Litkey [Thu, 5 Dec 2013 15:59:19 +0000 (17:59 +0200)]
lua-bindings: reworked Murphy.include & co. to use mrp_lua_include_file.

Rewrote include and try_include to use mrp_lua_include_file as the
underlying file inclusion mechanism. The newly introduced *_once
versions of these only include any given file at most once. When using
one of these, subsequent inclusion of an already included file will
silently succeed without re-reading or re-evaluating the file.

10 years agolua-utils: added mrp_lua_include_file.
Krisztian Litkey [Thu, 5 Dec 2013 15:58:09 +0000 (17:58 +0200)]
lua-utils: added mrp_lua_include_file.

Added mrp_lua_include_file as the basic building block for a
simple C-like Lua inclusion mechanism. You can provide a
file, a list of directories to searchi, and optionally a list
to administer successfully included files. If the provided file
name is not a absolute one, the given directories are searched
for the file. If the provided list is not NULL, any given file
will be included at most once.

10 years agocommon: added mrp_find_file for doing #include-like file search.
Krisztian Litkey [Thu, 5 Dec 2013 15:56:05 +0000 (17:56 +0200)]
common: added mrp_find_file for doing #include-like file search.

mrp_find_file searches for the given file in the given set of
directories. If the file name is absolute it is used as such.
Otherwise the given set of directories (and the current working
directory) are searched. If a match is found, it is tested for
access using the given mode. If the found file is accessible,
the resolved path is copied to the given buffer.

10 years agoMerge branch 'master' of github.com:otcshare/policy-internal
Krisztian Litkey [Wed, 4 Dec 2013 23:32:34 +0000 (01:32 +0200)]
Merge branch 'master' of github.com:otcshare/policy-internal

10 years agolua-bindings: first shot at Murphy.include/Murphy.try_include, for more modular confi...
Krisztian Litkey [Wed, 4 Dec 2013 23:31:29 +0000 (01:31 +0200)]
lua-bindings: first shot at Murphy.include/Murphy.try_include, for more modular configuration.

10 years agoresource: fixed issues reported by static analysis.
Ismo Puustinen [Mon, 25 Nov 2013 14:20:58 +0000 (16:20 +0200)]
resource: fixed issues reported by static analysis.

10 years agotests: fixed issues reported by static analysis.
Ismo Puustinen [Mon, 25 Nov 2013 13:15:29 +0000 (15:15 +0200)]
tests: fixed issues reported by static analysis.

10 years agolua-resource: initial Lua bindings to resource library.
Ismo Puustinen [Wed, 13 Nov 2013 11:41:25 +0000 (13:41 +0200)]
lua-resource: initial Lua bindings to resource library.

10 years agodaemon,core: unlink all blacklisted builtin plugins.
Krisztian Litkey [Sat, 23 Nov 2013 12:39:14 +0000 (14:39 +0200)]
daemon,core: unlink all blacklisted builtin plugins.

Brutally unlink all blacklisted builtin plugins to make them
unreachable by ordinary means.

10 years agoMerge branch 'master' of github.com:otcshare/policy-internal
Krisztian Litkey [Fri, 22 Nov 2013 19:23:25 +0000 (21:23 +0200)]
Merge branch 'master' of github.com:otcshare/policy-internal

10 years agolua-utils: can't call mrp_lua_get_lua_state, pulls in core. v0.0.39
Krisztian Litkey [Fri, 22 Nov 2013 14:20:18 +0000 (16:20 +0200)]
lua-utils: can't call mrp_lua_get_lua_state, pulls in core.

10 years agolua-utils: added missing include.
Krisztian Litkey [Fri, 22 Nov 2013 14:11:50 +0000 (16:11 +0200)]
lua-utils: added missing include.

10 years agoresource: fix a memory corruption issue.
Ismo Puustinen [Thu, 21 Nov 2013 21:48:52 +0000 (23:48 +0200)]
resource: fix a memory corruption issue.

10 years agolua-utils: fixed a few uninitialized var warnings.
Krisztian Litkey [Wed, 20 Nov 2013 17:22:39 +0000 (19:22 +0200)]
lua-utils: fixed a few uninitialized var warnings.

10 years agolua-utils: allocation tracking for the Lua object infra
Krisztian Litkey [Wed, 20 Nov 2013 01:14:05 +0000 (03:14 +0200)]
lua-utils: allocation tracking for the Lua object infra

If enabled, the object infra keeps track of all allocated and
still uncollected objects on a per classdef basis. Upon exit
all existing objects are dumped to stdout.

This behavior is enabled by setting __MURPHY_LUA_CONFIG="track=yes".
Setting it to any other value (than true, or on) or clearing the
environment variables disables object tracking.

10 years agocommon: added mrp_env_config_* for fetching pre-startup configuration.
Krisztian Litkey [Wed, 20 Nov 2013 01:07:00 +0000 (03:07 +0200)]
common: added mrp_env_config_* for fetching pre-startup configuration.

These routines are meant to pass configuration information to the
Murphy common/core infrastructure in cases where the configuration
needs to be obtained and activated before the startup sequence is
complete. A typical example would be to select whether to use the
stock allocator as such or to enable the built-in leak-checking and
tracking capabilities. Configuration for these kinds of features is
passed in special environment variables which there routines are
designed to extract information from.

10 years agolua-utils: some sketch about how error path cleanup could look like.
Krisztian Litkey [Mon, 18 Nov 2013 23:31:11 +0000 (01:31 +0200)]
lua-utils: some sketch about how error path cleanup could look like.

10 years agolua-utils: fix getfield thinko (not a setfield), try more intuitive behavior.
Krisztian Litkey [Tue, 19 Nov 2013 20:35:02 +0000 (22:35 +0200)]
lua-utils: fix getfield thinko (not a setfield), try more intuitive behavior.

If a class is not marked extensible but it has overridden getfield
and setfield, always pass these operations for unrecognized members,
(members that have not been declared explicitly) to the overridden
handlers. If a class is marked extensible, only pass those members
to the overridden handlers that are whitelisted.

The same commit also fiddles a bit around in a seeming attempt to
unify the return value convention of setext/setiext/getext/getiext.
On a second thought, I think this was a rather pointless now. Error
handling will anyway need a thorough review cycle followed by a
systematic swipe through the code base unifying and rationalizing
all the error paths. We need to be especially careful with code that
can be called both from C and Lua context and make sure that throwing
a Lua error will not leave half-created/initialized objects hanging
around from nowhere just leaking memory.

10 years agolua-bindings: added a very primitive module exposing bitwise operations to Lua.
Krisztian Litkey [Mon, 18 Nov 2013 17:47:40 +0000 (19:47 +0200)]
lua-bindings: added a very primitive module exposing bitwise operations to Lua.

10 years agocommon/debug: check the proxied debug site in mrp_debug_at.
Krisztian Litkey [Mon, 18 Nov 2013 23:13:09 +0000 (01:13 +0200)]
common/debug: check the proxied debug site in mrp_debug_at.

10 years agolua-utils: get rid of unused function warning.
Krisztian Litkey [Mon, 18 Nov 2013 12:44:39 +0000 (14:44 +0200)]
lua-utils: get rid of unused function warning.

10 years agolua-bindings: updated transport bindings MRP_LUA_DEFINE_CLASS macro usage.
Krisztian Litkey [Sun, 17 Nov 2013 20:07:26 +0000 (22:07 +0200)]
lua-bindings: updated transport bindings MRP_LUA_DEFINE_CLASS macro usage.

10 years agolua-bindings: updated MRP_LUA_DEFINE_CLASS macro usage.
Krisztian Litkey [Sun, 17 Nov 2013 20:06:09 +0000 (22:06 +0200)]
lua-bindings: updated MRP_LUA_DEFINE_CLASS macro usage.

10 years agolua-utils: infra support for object stringification.
Krisztian Litkey [Sun, 17 Nov 2013 20:04:24 +0000 (22:04 +0200)]
lua-utils: infra support for object stringification.

10 years agolua-bindings: updated most bindings to used MRP_LUA_DEFINE_CLASS macro.
Krisztian Litkey [Sat, 16 Nov 2013 23:57:17 +0000 (01:57 +0200)]
lua-bindings: updated most bindings to used MRP_LUA_DEFINE_CLASS macro.

10 years agolua-utils: added MRP_LUA_DEFINE_CLASS macro, comments for defining classes.
Krisztian Litkey [Sat, 16 Nov 2013 23:55:38 +0000 (01:55 +0200)]
lua-utils: added MRP_LUA_DEFINE_CLASS macro, comments for defining classes.

10 years agolua-utils: simple stylistic unification, basic comments on visible routines.
Krisztian Litkey [Sat, 16 Nov 2013 21:23:19 +0000 (23:23 +0200)]
lua-utils: simple stylistic unification, basic comments on visible routines.

10 years agolua-utils: support for automatically bridged member methods
Krisztian Litkey [Sat, 16 Nov 2013 22:24:59 +0000 (00:24 +0200)]
lua-utils: support for automatically bridged member methods

Added support for 'automatically bridged' member methods, a bit
akin to our 'automatically handled members'. These methods will
get their arguments readily fetched and decoded/converted from
the Lua stack into native C types on behalf of them in a fairly
type-safe manner (sans method signature misadvertising, of course).

The dirty details and heavy lifting of the actual type conversion
and bridging is taken care of by the nifty funcbridge infrastructure.

10 years agocommon: added a macro for debug messages with explicitly specified site-info.
Krisztian Litkey [Sat, 16 Nov 2013 22:23:52 +0000 (00:23 +0200)]
common: added a macro for debug messages with explicitly specified site-info.

10 years agolua-utils: support for typed objects, arrays, and autobridged members.
Krisztian Litkey [Sat, 16 Nov 2013 22:08:21 +0000 (00:08 +0200)]
lua-utils: support for typed objects, arrays, and autobridged members.

Extended funcbridge to support type-checked arrays and (murphy
core/lua-utils/object-infra) objects. The extensions include

  - signature extensions for object and array specifications:
      o [s|d|f]:     an array of strings, integers, or doubles
      o [*]:         an array of any of the above types
      o O(<C-type>): a Lua object of the given registered Murphy C type
      o O(*):        a Lua object of any of the registered Murphy C types
  - collecting, type-checking, and passing arrays to bridged calls
  - fetching, type-checking, and passing objects to bridged calls

Additionally, as calls to funcbridge member methods (from Lua to C)
arrive at funcbridge with an extra table at the bottom of the stack,
this needs special treatment if we want to make the bridged calls
with a genuine-looking stack. Funcbridge now has the necessary code
to patch the stack before the bridge (taking care of preventing any
garbage collection of temporarily removed objects), if the bridged
callee has indicated its desire for this.

10 years agolua-utils: macros to produce a simple debug dump of the Lua stack.
Krisztian Litkey [Sat, 16 Nov 2013 22:05:08 +0000 (00:05 +0200)]
lua-utils: macros to produce a simple debug dump of the Lua stack.

10 years agolua-utils: formalized object/userdata conversion, stricter validation.
Krisztian Litkey [Thu, 14 Nov 2013 19:39:14 +0000 (21:39 +0200)]
lua-utils: formalized object/userdata conversion, stricter validation.

Added a few macros and inlines to do checked and unchecked/trusted
conversion between objects and userdata. Changed all existing code
to use these. This should also make it easier to switch to a different
association mechanism/model when we move to Lua 5.2 or later.

Also added compile-time selectable stricter checking for valid userdata.
The stricter version stores the self pointer XOR'ed with the data
pointer. This should prevent us from misidentifying an empty linked
list or hook for a valid userdata.

10 years agoWiP: infantile transport testing in sample config.
Krisztian Litkey [Wed, 13 Nov 2013 23:44:20 +0000 (01:44 +0200)]
WiP: infantile transport testing in sample config.

10 years agolua-bindings: embrionic first incarnation of transport bindings.
Krisztian Litkey [Wed, 13 Nov 2013 23:25:29 +0000 (01:25 +0200)]
lua-bindings: embrionic first incarnation of transport bindings.

Added a limited first prototype of the transport bindings. This
one only does custom/JSON-encoding, and there is no sending in
place yet at all...

10 years agolua-utils: first attempt at error handling macros.
Krisztian Litkey [Thu, 14 Nov 2013 16:46:16 +0000 (18:46 +0200)]
lua-utils: first attempt at error handling macros.

10 years agolua-bindings: added mrp_json_lua_unwrap.
Krisztian Litkey [Thu, 14 Nov 2013 16:41:34 +0000 (18:41 +0200)]
lua-bindings: added mrp_json_lua_unwrap.

10 years agolua-bindings: check for failure of object class creation.
Krisztian Litkey [Thu, 14 Nov 2013 16:40:07 +0000 (18:40 +0200)]
lua-bindings: check for failure of object class creation.

10 years agolua-utils: mandate constructor, pointer-based type-check, raw setter/getter.
Krisztian Litkey [Thu, 14 Nov 2013 16:34:33 +0000 (18:34 +0200)]
lua-utils: mandate constructor, pointer-based type-check, raw setter/getter.

Don't allow registration of classes without a constructor.

Added mrp_lua_pointer_of_type for checking the type of the given
object. Note that the caller better make/be sure that the passed
pointer is definitely an instance of one of our classes, otherwise
horrible mayhem will ensue (as the now non-existing userdata is
accessed).

Added support (currently untested) for raw getters and setters.
These are called without a value pointer and are expected to
pop, decode, push and encode values from and to the Lua stack
themselves.

Also removed non-explicit member autoinitialization. The dominant
pattern is to set members to defaults in the constructor and then
call mrp_lua_init_members if there is table of initial values
passed to the construcor.

10 years agolua-utils: PRIVREFS flag and handling, userdata/data conversion routines.
Krisztian Litkey [Thu, 14 Nov 2013 10:30:21 +0000 (12:30 +0200)]
lua-utils: PRIVREFS flag and handling, userdata/data conversion routines.

Added MRP_LUA_CLASS_PRIVREFS, supporting classes to choose between a
private and common reference tables. For instances of classes with a
private, all references the object owns will be automatically cleaned
up when the object is destroyed along with its privte reference table.

Also added static inline retrieval routines for getting to an object
from its userdata and vice versa (instead of the manual +/- 1-ing) to
help hide the internal details of the association mechanism. Still
need to go through the code and replace all +/- 1 instances with calls
to these.

10 years agolua-utils: added ref reffing + simple class-checker macro.
Krisztian Litkey [Wed, 13 Nov 2013 23:18:25 +0000 (01:18 +0200)]
lua-utils: added ref reffing + simple class-checker macro.

Added mrp_lua_object_getref/putref for getting a private reference
from a reference owner by another object. Also added for simple
cases MRP_LUA_CLASS_CHECKER, a macro which automatically generates
a trivial minimalistic class checker (idx to class pointer) function..

10 years agolua-bindings: push only once on mrp_json_lua_push.
Krisztian Litkey [Wed, 13 Nov 2013 22:51:01 +0000 (00:51 +0200)]
lua-bindings: push only once on mrp_json_lua_push.

10 years agolua-utils: added MRP_LUA_CLASS_NOINIT flag.
Krisztian Litkey [Wed, 13 Nov 2013 12:19:43 +0000 (14:19 +0200)]
lua-utils: added MRP_LUA_CLASS_NOINIT flag.

10 years agolua-utils: support objects of a specific type as automatic members.
Krisztian Litkey [Wed, 13 Nov 2013 00:09:45 +0000 (02:09 +0200)]
lua-utils: support objects of a specific type as automatic members.

10 years agolua-bindings: fix inverted enabling/disabling debug printout.
Krisztian Litkey [Tue, 12 Nov 2013 23:59:38 +0000 (01:59 +0200)]
lua-bindings: fix inverted enabling/disabling debug printout.

10 years agolua-bindings: don't add timer when callback is set if we already have one.
Krisztian Litkey [Tue, 12 Nov 2013 23:57:08 +0000 (01:57 +0200)]
lua-bindings: don't add timer when callback is set if we already have one.

10 years agolua-utils: support arrays as automatic members.
Krisztian Litkey [Tue, 12 Nov 2013 15:44:00 +0000 (17:44 +0200)]
lua-utils: support arrays as automatic members.

10 years agodaemon: added command-line option to disable runtime plugin loading.
Krisztian Litkey [Thu, 21 Nov 2013 15:48:02 +0000 (17:48 +0200)]
daemon: added command-line option to disable runtime plugin loading.

10 years agodaemon: added command-line option to disable debug console.
Krisztian Litkey [Wed, 20 Nov 2013 23:34:10 +0000 (01:34 +0200)]
daemon: added command-line option to disable debug console.

10 years agodaemon: implemented blacklisting/whitelisting of plugins.
Krisztian Litkey [Wed, 20 Nov 2013 22:45:26 +0000 (00:45 +0200)]
daemon: implemented blacklisting/whitelisting of plugins.

Currently plugins can only be blacklisted/whitelisted on the
command line. You can specify blacklists and whitelists separately
for builtin plugins, dynamic plugins, and plugins of either type.
You can use the special tokens '*' and 'all' as wildcards which
match all tokens. Using wildcards you can easily blacklist or
whitelist all plugins of any or a certain kind then puch holes
on the whiltelists or blacklists.

Examples:
  - to blacklist all builtin plugins, use:
        murphyd --blacklist-builtin '*'

  - to blacklist all builtin plugins except lua and resource-native, use:
        murphyd --blacklist-builtin '*' --whitelist-builtin lua,resource-native

  - to consider all external plugins untrusted and blacklist them, use:
        murphyd --blacklist-dynamic '*'

  - to disable the console:
        murphyd --blacklist console,wrt-console

Note that only the names of builtin plugins can be (somewhat) trusted
and even those cannot be trusted if you don't have any extra mechanisms
for the integrity protection of binaries and libraries. External plugins
can always be copied/moved under a different name, so disabling any
specific external plugin by name should not be considered secure by any
means. One typical usage of these options is to disable loading of any
external plugins.

10 years agobuild-sys: finally, remove all *-func-info.c from the repo.
Krisztian Litkey [Wed, 20 Nov 2013 20:45:29 +0000 (22:45 +0200)]
build-sys: finally, remove all *-func-info.c from the repo.

10 years agoresolver: pkg-config fixes.
Krisztian Litkey [Tue, 12 Nov 2013 10:47:48 +0000 (12:47 +0200)]
resolver: pkg-config fixes.

10 years agolua-bindings: don't declare an unused variable by a macro.
Krisztian Litkey [Mon, 11 Nov 2013 20:18:07 +0000 (22:18 +0200)]
lua-bindings: don't declare an unused variable by a macro.

10 years agolua-bindings: fix luaL_error induced uninitialized false positives.
Krisztian Litkey [Mon, 11 Nov 2013 20:15:46 +0000 (22:15 +0200)]
lua-bindings: fix luaL_error induced uninitialized false positives.

10 years agocommon/test: fix a sizeof-thinko.
Krisztian Litkey [Mon, 11 Nov 2013 20:14:35 +0000 (22:14 +0200)]
common/test: fix a sizeof-thinko.

10 years agolua-bindings: added Lua bindings for murphy sighandlers.
Krisztian Litkey [Mon, 11 Nov 2013 02:23:07 +0000 (04:23 +0200)]
lua-bindings: added Lua bindings for murphy sighandlers.

10 years agolua-bindings: added Lua bindings for murphy deferred callback.
Krisztian Litkey [Mon, 11 Nov 2013 01:03:47 +0000 (03:03 +0200)]
lua-bindings: added Lua bindings for murphy deferred callback.

10 years agolua-bindings: added Lua bindings for murphy timers.
Krisztian Litkey [Sun, 10 Nov 2013 02:12:41 +0000 (04:12 +0200)]
lua-bindings: added Lua bindings for murphy timers.

10 years agolua-utils: support for automatic handling of Lua object members.
Krisztian Litkey [Mon, 11 Nov 2013 00:56:32 +0000 (02:56 +0200)]
lua-utils: support for automatic handling of Lua object members.

A big bunch of code to allow easier development of Lua bindings
for native C functionality. The new features include:

  o Fully backward-compatible, actually unmodified (sans bugs) support
    for the existing class/object implementation model. If you don't
    touch your code, it's behavior (and performance) should not change.
  o Automatically handled members. Just declare member name, type,
    storage offset, read-write status, and let the infra handle the
    rest for you.
  o Change notifications. If you need to know, the infra will notify you
    whenever the value of an automaticallt handled variable has been
    changed.
  o Optional setters and getters. If a member needs a bit more complex
    handling (eg. to take care of semantic or contextual constrains),
    you can specify getters and/or setters on a per-member basis. If set
    these will be invoked to set and retrieve the value of a member when
    necessary.
  o Extended members. If you mark your class extensible, users will be
    able to extend your class from Lua by setting other members than the
    ones you have declared.
  o Fully manual members. Even if you have a class with automatically
    handled and Lua-extended members, you can declare a set of members
    'native'. These will always be handed to the setfield/getfield class
    methods where you take care of every detail of setting/retrieving
    their values.

Note that there are quite a few pending ideas that we did not have time
to implement yet. The most obvious one is the automatic handling of more
types, especially Lua classes/objects (of our object modes), arrays of
various basic types, values/calling of C-functions, and values/calling of
funcbridges. Others include things like improvements to the notifications
(to allow better/easier rejection of setting invalid values), runtime
object usage gathering (in a similar fashion to what murphy/common/mm
does for basic chunks, if tracing is enabled) and a bunch of others...

Also note that due to the amount of new code in short time, there are
very probably plenty of bugs remaining. One source of problems is hasty
raising of Lua exceptions (typically by luaL_error & co) on code pathes
where an exception will cause memory leaks. This can happen easily by
allocating objects in several go and doing calls to Lua or functions
that might raise Lua exceptions. It can happen also in a less obvious
way when a Lua exception (and the resulting longjump) will leave dangling
refrences to Lua objects. All the new getfield/setfield code paths will
need to receive eyeballing with scrutiny to identify these cases and
some of the existing functions will need to be changed so that instead
of always throwing an exception they either throw or return an error
code (and an error message) depending on whether the caller has provided
an error buffer or NULL. With such a convention, code that can get called
from both Lua and C context, can always fail gracefully without causing
leaks.

10 years agolua-bindings: added mrp_lua_dump_stack.
Krisztian Litkey [Sun, 10 Nov 2013 11:43:35 +0000 (13:43 +0200)]
lua-bindings: added mrp_lua_dump_stack.

10 years agolua-bindings: JSON constructor fix for no arguments.
Krisztian Litkey [Sun, 10 Nov 2013 02:14:30 +0000 (04:14 +0200)]
lua-bindings: JSON constructor fix for no arguments.

10 years agolua-bindings: added Lua bindings to manipulate JSON objects from Lua.
Krisztian Litkey [Fri, 8 Nov 2013 17:12:56 +0000 (19:12 +0200)]
lua-bindings: added Lua bindings to manipulate JSON objects from Lua.

10 years agocommon: print empty JSON object as {} instead of null.
Krisztian Litkey [Thu, 7 Nov 2013 21:20:43 +0000 (23:20 +0200)]
common: print empty JSON object as {} instead of null.

10 years agocore: allow also registering a class defintion by MURPHY_REGISTER_LUA_BINDINGS.
Krisztian Litkey [Thu, 7 Nov 2013 21:14:28 +0000 (23:14 +0200)]
core: allow also registering a class defintion by MURPHY_REGISTER_LUA_BINDINGS.

10 years agocommon: fix a few JSON macros with extra semicolons.
Krisztian Litkey [Thu, 7 Nov 2013 17:08:32 +0000 (19:08 +0200)]
common: fix a few JSON macros with extra semicolons.

10 years agoMerge branch 'master' of github.com:otcshare/policy-internal
Krisztian Litkey [Mon, 4 Nov 2013 00:40:58 +0000 (02:40 +0200)]
Merge branch 'master' of github.com:otcshare/policy-internal

10 years agowebsockets: honour the requested/specified protocol name
Krisztian Litkey [Sun, 3 Nov 2013 23:45:43 +0000 (01:45 +0200)]
websockets: honour the requested/specified protocol name

Don't hardcode "murphy" as the websocket protocol name. Instead,
use the protocol name specified in the websocket address both
for bind and connect.

10 years agoresource-c: updated API test.
Ismo Puustinen [Wed, 30 Oct 2013 14:23:15 +0000 (16:23 +0200)]
resource-c: updated API test.

10 years agoresource-c: added support for querying resource set id.
Ismo Puustinen [Tue, 22 Oct 2013 10:37:34 +0000 (13:37 +0300)]
resource-c: added support for querying resource set id.

Also, if there wasn't a server side resource set, make the release operation
create one. This is needed so that resource set ids (assigned by server)
can be retrieved without acquiring a resource set.

10 years agocommon: fixed a possible NULL pointer dereference in process tracking.
Ismo Puustinen [Tue, 15 Oct 2013 10:17:53 +0000 (13:17 +0300)]
common: fixed a possible NULL pointer dereference in process tracking.

10 years agoMerge branch 'master' of github.com:otcshare/policy-internal
Krisztian Litkey [Tue, 15 Oct 2013 11:14:47 +0000 (14:14 +0300)]
Merge branch 'master' of github.com:otcshare/policy-internal

10 years agocommon: never remove forcibly a reused fd from epoll.
Krisztian Litkey [Tue, 15 Oct 2013 05:39:55 +0000 (08:39 +0300)]
common: never remove forcibly a reused fd from epoll.

If during a single iteration of epoll event dispatching
a file descriptor is closed and reused, make sure the
new reused file desciptor is not accidentially removed
from epoll.

During dispatching we try to patch things up to prevent
a busy looping flood of EPOLLRDHUP/EPOLLHUP events for
users that don't properly handle them. This bug was
triggered when the closed file descriptor got reused and
a new watch for it readded from within the I/O watch
callback for the HUP event on the original closed descriptor.

This patch also makes sure that an effectively similar bug
can not be triggered by calling mrp_del_io_watch twice for
the same I/O watch.

10 years agocommon: more mainloop debug messages for I/O watches.
Krisztian Litkey [Mon, 14 Oct 2013 17:23:45 +0000 (20:23 +0300)]
common: more mainloop debug messages for I/O watches.

10 years agocommon: more debug messages for stream transport events.
Krisztian Litkey [Mon, 14 Oct 2013 15:01:15 +0000 (18:01 +0300)]
common: more debug messages for stream transport events.

10 years agomdb: Don't use C++ keywords in variable names and structure members.
Ismo Puustinen [Mon, 14 Oct 2013 13:51:17 +0000 (16:51 +0300)]
mdb: Don't use C++ keywords in variable names and structure members.

10 years agocore: fix compiler warnings.
Ismo Puustinen [Mon, 14 Oct 2013 13:48:09 +0000 (16:48 +0300)]
core: fix compiler warnings.

In theory, forward declarations of enums are not allowed, because C
standard doesn't define the size of enum type.

10 years agoresource-dbus: fix a memory leak.
Ismo Puustinen [Fri, 4 Oct 2013 12:11:01 +0000 (15:11 +0300)]
resource-dbus: fix a memory leak.

10 years agobuild-sys: added githooks to do Change-Id insertion/filtering.
Krisztian Litkey [Fri, 4 Oct 2013 11:36:13 +0000 (14:36 +0300)]
build-sys: added githooks to do Change-Id insertion/filtering.

Added a bunch of git hooks that collectively try to automatically
insert or filter gerrit Change-Id tags depending on the branch name.
Branches matching *tizen* will have tags inserted other will have
tags filtered out. If you have a bunch of existing commits where
you want do a bulk insert/filter operation, just run git rebase -i
over the range of commits, mark all for rewording, and the hooks
will (try to) do the right thing for you.

To get the name-based insertion/filtering logic working correctly
over rebases, we have to save the branch name in a pre-rebase hook,
use the saved name if it exists or dig it out if not in the
commit-msg hook, and remove the saved name in a post-rewrite hook.

10 years agocommon: don't free a busy nl_pid_watch_t. v0.0.37 v0.0.38
Krisztian Litkey [Mon, 30 Sep 2013 15:53:43 +0000 (18:53 +0300)]
common: don't free a busy nl_pid_watch_t.

Mark an nl_pid_watch_t busy while it is being scanned. If a
client callback destroys the last watch, check if the pid
watch is busy. If it is, just unhash it and mark it dead,
otherwise unhash and destroy it right away. Each time a watch
scan finishes, check and destroy the watch if it has been
marked dead.

10 years agoresolver: filter out duplicate target dependencies.
Krisztian Litkey [Mon, 30 Sep 2013 14:49:50 +0000 (17:49 +0300)]
resolver: filter out duplicate target dependencies.

Currently failing to do so could trigger dereferencing
fact_stamps beyond its end in older_than_facts (as
fact_stamps is allocated in the graph sorter and its
size reflects the number of unique dependencies).

10 years agoconsole: flush and proxy output after each command.
Krisztian Litkey [Sat, 28 Sep 2013 19:34:33 +0000 (22:34 +0300)]
console: flush and proxy output after each command.

Also we have now an I/O watch in place for the console
output pipe. This enables us in the future to plug any output fd
to any console if we wish to do so.

10 years agodaemon: make sure stdout is line-buffered (and stderr non-buffered).
Krisztian Litkey [Sat, 28 Sep 2013 19:25:03 +0000 (22:25 +0300)]
daemon: make sure stdout is line-buffered (and stderr non-buffered).

This should fix the annoying "no output from console commands" bug
experienced when running/logging via systemd. When running under
systemd fileno stdout is a socket. Hence, stdout is fully buffered
by default with a quite large buffer size. This effectively breaks
the interactive murphy console (unless we fflush both stdout and
stderr after running a command handler) as output resulting from
a console command gets buffered and is only written to the console
at random intervals when the buffer gets full.

10 years agoconfig: don't try to load D-Bus plugin.
Krisztian Litkey [Tue, 24 Sep 2013 19:13:55 +0000 (22:13 +0300)]
config: don't try to load D-Bus plugin.

10 years agomurphy-db: don't propagate uninitialized value to status.
Krisztian Litkey [Tue, 24 Sep 2013 18:51:57 +0000 (21:51 +0300)]
murphy-db: don't propagate uninitialized value to status.

10 years agodaemon: valgrind re-exec support, source tree detection
Krisztian Litkey [Tue, 17 Sep 2013 22:39:10 +0000 (01:39 +0300)]
daemon: valgrind re-exec support, source tree detection

The daemon can now re-exec itself through valgrind, preserving its
command line and the environment if so requested.

Also the daemon tries to detect if it is run directly from the
source tree. If it is, the runtime defaults are modified to
load the configuration file and plugins from the same source
tree and to run with increased verbosity. If necessary these
can be overridden on the command line.

10 years agolua-decision: removed now unused 'dependency' Lua object.
Krisztian Litkey [Tue, 17 Sep 2013 19:20:56 +0000 (22:20 +0300)]
lua-decision: removed now unused 'dependency' Lua object.

10 years agolua-decision: use direct dependency on the table for select.
Krisztian Litkey [Tue, 17 Sep 2013 14:50:41 +0000 (17:50 +0300)]
lua-decision: use direct dependency on the table for select.

Instead of generating an intermediate target that depends
on the table and have the select rule depend on this one,
omit the intermediate target altogether and let the select
depend on the table itself.

10 years agolua-decision: throw Lua exception for fatal ruleset errors.
Krisztian Litkey [Tue, 17 Sep 2013 14:28:14 +0000 (17:28 +0300)]
lua-decision: throw Lua exception for fatal ruleset errors.

Throw Lua exception to bail out for ruleset generation errors.
Also use mrp_log_error to log errors instead of printf.

10 years agoresolver: update targets based on direct dependencies.
Krisztian Litkey [Sat, 14 Sep 2013 06:25:36 +0000 (09:25 +0300)]
resolver: update targets based on direct dependencies.

Don't run unconditionally the actions of a target if any
of the facts in the transitive closure of the dependencies
have changed. Instead always check the immediate dependencies
and run the actions only if some of those have changed.

10 years agoresolver: added console dump command.
Krisztian Litkey [Mon, 16 Sep 2013 12:41:31 +0000 (15:41 +0300)]
resolver: added console dump command.

10 years agomurphy-db: maintain stamp across transactions without changes.
Krisztian Litkey [Fri, 13 Sep 2013 18:38:50 +0000 (21:38 +0300)]
murphy-db: maintain stamp across transactions without changes.

Transaction track the state of tables by storing as a fingerprint
the number of inserts, deletes and updates in a transaction start
log entry. If at the end of the transaction the fingerprint is
identical the table stamp is restored.

Additionally, row and column update has been modified to omit the
creation of log entries for updates that would produce an identical
row. Since the insert/delete/update fingerprint is updated when
a log entry is created (and replayed during a rollback), this will
keep the stamp intact if a transaction contains only identical
updates.

10 years agoMerge branch 'master' of github.com:otcshare/policy-internal
Krisztian Litkey [Thu, 29 Aug 2013 23:11:30 +0000 (02:11 +0300)]
Merge branch 'master' of github.com:otcshare/policy-internal

10 years agocommon: make mrp_mm_realloc[z] more C++-kosher.
Krisztian Litkey [Tue, 27 Aug 2013 16:12:14 +0000 (19:12 +0300)]
common: make mrp_mm_realloc[z] more C++-kosher.

10 years agocommon/glib-glue: include common/mainloop.h.
Krisztian Litkey [Wed, 21 Aug 2013 13:19:32 +0000 (16:19 +0300)]
common/glib-glue: include common/mainloop.h.

10 years agoresource-c: removed forgotten debug print. 40/8640/1 v0.0.35
Ismo Puustinen [Tue, 20 Aug 2013 07:25:49 +0000 (10:25 +0300)]
resource-c: removed forgotten debug print.

10 years agocommon: ecore-glue.h can now be called from C++.
Ismo Puustinen [Wed, 14 Aug 2013 06:15:39 +0000 (09:15 +0300)]
common: ecore-glue.h can now be called from C++.