54 lines
1.9 KiB
ReStructuredText
54 lines
1.9 KiB
ReStructuredText
|
User Agent
|
||
|
==========
|
||
|
|
||
|
Bitmessage user agents are a modified browser user agent with more structure
|
||
|
to aid parsers and provide some coherence. The user agent strings are arranged
|
||
|
in a stack with the most underlying software listed first.
|
||
|
|
||
|
Basic format::
|
||
|
|
||
|
/Name:Version/Name:Version/.../
|
||
|
|
||
|
Example::
|
||
|
|
||
|
/PyBitmessage:0.2.2/Corporate Mail System:0.8/
|
||
|
/Surdo:5.64/surdo-qt:0.4/
|
||
|
|
||
|
The version numbers are not defined to any strict format, although this guide
|
||
|
recommends:
|
||
|
|
||
|
* Version numbers in the form of Major.Minor.Revision (2.6.41)
|
||
|
* Repository builds using a date in the format of YYYYMMDD (20110128)
|
||
|
|
||
|
For git repository builds, implementations are free to use the git commitish.
|
||
|
However the issue lies in that it is not immediately obvious without the
|
||
|
repository which version preceeds another. For this reason, we lightly
|
||
|
recommend dates in the format specified above, although this is by no means
|
||
|
a requirement.
|
||
|
|
||
|
Optional ``-r1``, ``-r2``, ... can be appended to user agent version numbers.
|
||
|
This is another light recommendation, but not a requirement. Implementations
|
||
|
are free to specify version numbers in whatever format needed insofar as it
|
||
|
does not include ``(``, ``)``, ``:`` or ``/`` to interfere with the user agent
|
||
|
syntax.
|
||
|
|
||
|
An optional comments field after the version number is also allowed. Comments
|
||
|
should be delimited by parenthesis ``(...)``. The contents of comments is
|
||
|
entirely implementation defined although this document recommends the use of
|
||
|
semi-colons ``;`` as a delimiter between pieces of information.
|
||
|
|
||
|
Example::
|
||
|
|
||
|
/cBitmessage:0.2(iPad; U; CPU OS 3_2_1)/AndroidBuild:0.8/
|
||
|
|
||
|
Reserved symbols are therefore: ``/ : ( )``
|
||
|
|
||
|
They should not be misused beyond what is specified in this section.
|
||
|
|
||
|
``/``
|
||
|
separates the code-stack
|
||
|
``:``
|
||
|
specifies the implementation version of the particular stack
|
||
|
``( and )``
|
||
|
delimits a comment which optionally separates data using ``;``
|