On 22/09/2017 at 06:29, xxxxxxxx wrote:
In R19 SP1 we have introduced a fix to partially address the issue that many plungin developers have faced with the introduction of the RLM licensing schema in Cinema.
In R19SP1, the GeGetSerialInfo() has been properly modified to support all the three licensing schemas currently available in Cinema:
• SERIALINFO_CINEMA4D for single-license standa-alone permanent case;
• SERIALINFO_MULTILICENSE for multi-license floating case with MAXON License Server;
• SERIALINFO_RLMLICENSE for multi-license floating case with RLM Server.
By introducing the latter, we've provided the developers with a mean to query and retrieve valuable information about Cinema from the RLM Server.
Currently calling
GeGetSerialInfo(SERIALINFO_RLMLICENSE, &si)
will have the SerialInfo instance (si) to be filled in with data similar to those retrieved by using the SERIALINFO_MULTILICENSE flag.
This introduction removes the limitation being not capable to know how many seats where sold of a specific product package which frequently resulted in the lack of capability to sell an adeguate number of plugin licenses.
That said, this addition combined with the use of the ReadPluginInfo() and WritePluginInfo() gives the chance to check 3rd-party plugins license even under RLM environment.
Schema is simple:
• the plugin developer requires the user to generate a license request string formatted as AA-B-CCC-DDDDD where "CCC" is the number of seats available for the package "DDDDD" of Cinema version "B";
• the developer generates the license string and provides it back to the customer ;
• the plugin (still in an unlicensed case) will then be used to register the license by using the [ https://developers.maxon.net/docs/Cinema4DCPPSDK/html/c4d__general_8h.html#aa69a9093991a83519f17aace2a05ac33 ]WritePluginInfo() storing the plugin license information locally on the customer machine;
• at the next plugin reload the plugin will check for its own valid license on the local machine using the [ https://developers.maxon.net/docs/Cinema4DCPPSDK/html/c4d__general_8h.html#a86b07b74719b5f77e6a01bfcfe2adaa5 ]ReadPluginInfo() and will validate the retrieved data both against the developer own schema and against the value returned back from GeGetSerialInfo().
This schema has the limitation that the plugin license should be installed on all the clients where the plugin is expected to be used but this can be considered a minor limitation compared to the previous situation. On the other side, if a plugin is expected to be installed on hundreds if not thousands of nodes it's pretty likely the developer to have integrated its own floating licensing technology or used some 3rd party floating licensing solution.
This information will be shortly provided through our blog (together with an example delivered on GitHub) and, with SP2, together with the Cinema SDK documentation.
Best, Riccardo