| Structure SilcClientParams
 
 NAME
 
    typedef struct { ... } SilcClientParams;
DESCRIPTION
    Client parameters. This can be filled with proper values and
    given as argument to the silc_client_alloc function. The structure
    hold various parameters which affects the function of the client.
SOURCE    typedef struct SilcClientParamsStruct {
      /* If this boolean is set to TRUE then the client library will use
         threads.  Any of the callback functions in the SilcClientOperations
         and other callbacks may be called at any time in a thread.  The
         application may need to employ appropriate concurrency control
         in the callbacks to protect application specific data. */
      SilcBool threads;
    
      /* Nickname format string. This can be used to order the client library
         to save the nicknames in the library in a certain format. Since
         nicknames are not unique in SILC it is possible to have multiple same
         nicknames. Using this format string it is possible to order the library
         to separate the multiple same nicknames from each other. If this is
         empty then default format is used which is the default nickname
         without anything else. The string MUST be NULL terminated.
    
         Following format types are available:
    
         %n  nickname      - the real nickname returned by the server (mandatory)
         %a  number        - ascending number in case there are several
                             same nicknames (fe. nick#2 and nick#3)
         %h  hostname      - the stripped hostname of the client
         %H  full hostname - the full hostname of the client
    
         Example format strings: "%n#%a"     (fe. nick#2, nick#3)
                                 "%n#%h%a"   (fe. nick#host, nick#host2)
                                 "%a!%n#%h"  (fe. nick#host, 2!nick#host)
    
         Note that there must always be some separator characters around '%n'
         format.  It is not possible to put format characters before or after
         '%n' without separators (such ash '#').  Also note that the separator
         character should be a character that cannot be part of normal nickname.
         Note that, using '@' as a separator is not recommended as the nickname
         string may contain it to separate a server name from the nickname (eg.
         nickname@silcnet.org).
      */
      char nickname_format[32];
    
      /* If this is set to TRUE then the `nickname_format' is employed to all
         saved nicknames even if there are no multiple same nicknames in the
         cache. By default this is FALSE, which means that the `nickname_format'
         is employed only if the library will receive a nickname that is
         already saved in the cache. It is recommended to leave this to FALSE
         value. */
      SilcBool nickname_force_format;
    
      /* If this is set to TRUE then all nickname strings returned by the library
         and stored by the library are in the format of 'nickname@server', eg.
         nickname@silcnet.org.  If this is FALSE then the server name of the
         nickname is available only from the SilcClientEntry structure.  When this
         is TRUE the server name is still parsed to SilcClientEntry. */
      SilcBool full_nicknames;
    
      /* If this is set to TRUE then all channel name strings returned by the
         library and stored by the library are in the format of 'channel@server',
         eg. silc@silcnet.org.  If this is FALSE then the server name of the
         channel is available only from the SilcChannelEntry structure.  When this
         is TRUE the server name is still parsed to SilcChannelEntry.  Note that,
         not all SILC server versions return such channel name strings. */
      SilcBool full_channel_names;
    
      /* If this is set to TRUE, the silcclient library will not register and
         deregister the cipher, pkcs, hash and hmac algorithms. The application
         itself will need to handle that. */
      SilcBool dont_register_crypto_library;
    
      /* If this is set to TRUE, the silcclient library will not automatically
         negotiate private message keys using SKE over the SILC network but will
         use normal session keys to protect private messages. */
      SilcBool dont_autoneg_prvmsg_keys;
    } SilcClientParams;
 
 
 
 |