In version 0.4.0, eboxy's plugin API has changed in a way that breaks backwards compatibility. This was necessary due to a design flaw in the way strings were returned in 0.3.x (property getter and method functions returned const char * pointers that could never be freed, resulting in memory leaks). The solution was to change these functions to return char *, and make the rule that the caller always frees the returned string if the pointer isn't null. At the same time the opportunity was taken to make property setter functions return an error code, so that eboxy can determine if a plugin object property was set correctly or not.
To bring your own plugins up to date with the changes, you need to do the following:
All property getter and method functions must now return char * instead of const char *. The convention is now to return NULL if you don't have anything to return. Any returned string should be allocated with malloc() or strdup() - do not under any circumstances return a string literal.
All property setter functions must return an int. Return 0 to indicate the value was valid, non-zero to indicate an invalid value (do not actually set the value internally in this case).
If you are calling getPropertyValue() or callMethod() anywhere, make sure you check if the returned value is not NULL, and if so, call free() on it. In cases where you don't care about the return value of callMethod(), use callMethodNoReturn() instead.