Development ideas: Difference between revisions

From ReddNet
Jump to navigation Jump to search
No edit summary
No edit summary
Line 12: Line 12:
== Change in ''RID'' format ==
== Change in ''RID'' format ==


The current definition of an ''RID'' is an integer as defined in ''struct ibp_depot''.  The definition of an integer is architecture dependent and hense not portable.  An alternative definition would be to define the ''RID'' as a character string.  This would provide flexibility in its implmentation and use.  The current IBP client libraries already treat the ''RID'' as an opaque character string for all commands except ''IBP_Allocate()''.


== Provide interface to IBP data structures ==
== Provide interface to IBP data structures ==

Revision as of 18:14, 22 January 2008

Suggested changes to existing protocol

Re-order parameters in IBP_STATUS command

The existing IBP v1.4 implementation is:

version IBP_STATUS RID IBP_ST_INQ password TIMEOUT \n
version IBP_STATUS RID IBP_ST_CHANGE password TIMEOUT \n max_hard max_soft max_duration \n
version IBP_STATUS IBP_ST_RES TIMEOUT \n

Notice that two of the commands have a primary command, IBP_STATUS, a resource ID (RID), followed by a sub-command (IBP_ST_INQ, IBP_ST_CHANGE) and the last version has no RID, just a sub-command, IBP_ST_RES. The current implementation can only be parsed by first reading the whole line in and then counting the number of arguments. The argument count is then used to determine which command is actually being issued. A more natural version of the commands would always have the sub-command immediately follow the IBP_STATUS command.

Change in RID format

The current definition of an RID is an integer as defined in struct ibp_depot. The definition of an integer is architecture dependent and hense not portable. An alternative definition would be to define the RID as a character string. This would provide flexibility in its implmentation and use. The current IBP client libraries already treat the RID as an opaque character string for all commands except IBP_Allocate().

Provide interface to IBP data structures