LCOV - code coverage report
Current view: top level - mnt/wasteland/wcohen/systemtap_write/systemtap - cscommon.h (source / functions) Hit Total Coverage
Test: stap.info Lines: 1 1 100.0 %
Date: 2013-03-08 Functions: 1 1 100.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // Common functions and macros used by the compile-server and its client.
       2                 :            : #ifndef CSCOMMON_H
       3                 :            : #define CSCOMMON_H 1
       4                 :            : 
       5                 :            : #if HAVE_NSS
       6                 :            : extern "C"
       7                 :            : {
       8                 :            : #include <ssl.h>
       9                 :            : #include <nspr.h>
      10                 :            : }
      11                 :            : #endif
      12                 :            : 
      13                 :            : // Versioning system for the protocol used for communication between the compile-server and client.
      14                 :            : // The original version is 1.0. After that, we use the systemtap release number.
      15                 :            : //
      16                 :            : // By Policy:
      17                 :            : //   - All servers are backward compatible with clients. Servers adapt to the protocol version
      18                 :            : //     of the client.
      19                 :            : //   - All clients are backward compatible with servers. Clients adapt to the protocol version
      20                 :            : //     of the server. Warnings are issued for servers lacking features.
      21                 :            : //
      22                 :            : // Features:
      23                 :            : //   Version 1.0
      24                 :            : //     Original version
      25                 :            : //   Versions 1.6 and higher
      26                 :            : //     Client:
      27                 :            : //       - Passes localization variables to the server in the file client_tmpdir + "/locale"
      28                 :            : //       - Looks for the uprobes module in server_response + "/uprobes"
      29                 :            : //       - No longer needs to remove stap's "Keeping temporary directory ..." message from
      30                 :            : //         the server's stderr response.
      31                 :            : //       - Looks for 'version' tag in server's avahi record and does not automatically connect to
      32                 :            : //         an incompatible server. Also prefers newer servers over older ones.
      33                 :            : //     Server:
      34                 :            : //       - Applies localization variables passed from the client to stap during translation.
      35                 :            : //       - Looks for the uprobes module in server_response + "/uprobes"
      36                 :            : //       - Uses --tmpdir to specify temp directory to be used by stap, instead of -k, in order to
      37                 :            : //         avoid parsing error messages in search of stap's randomly-generated temp dir.
      38                 :            : //       - Advertises its protocol version using a 'version' tag in avahi.
      39                 :            : //
      40                 :            : #define CURRENT_CS_PROTOCOL_VERSION VERSION
      41                 :            : 
      42                 :            : struct cs_protocol_version
      43                 :            : {
      44                 :        339 :   cs_protocol_version (const char *v = "1.0") : v(0) { *this = v; }
      45                 :            :   ~cs_protocol_version ();
      46                 :            :   const cs_protocol_version &operator= (const char *v);
      47                 :            :   bool operator< (const cs_protocol_version &that) const;
      48                 :            : 
      49                 :            :   const char *v;
      50                 :            : };
      51                 :            : 
      52                 :            : #if HAVE_NSS
      53                 :            : struct thread_arg
      54                 :            : {
      55                 :            :  PRFileDesc *tcpSocket;
      56                 :            :  CERTCertificate *cert;
      57                 :            :  SECKEYPrivateKey *privKey;
      58                 :            :  PRNetAddr addr;
      59                 :            : };
      60                 :            : 
      61                 :            : extern int read_from_file (const std::string &fname, cs_protocol_version &data);
      62                 :            : extern std::string get_cert_serial_number (const CERTCertificate *cert);
      63                 :            : #endif
      64                 :            : 
      65                 :            : #endif // CSCOMMON_H

Generated by: LCOV version 1.9