This file is indexed.

/usr/include/wvstreams/wvmodem.h is in libwvstreams-dev 4.6.1-11.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/* -*- Mode: C++ -*-
 * Worldvisions Weaver Software:
 *   Copyright (C) 1997-2002 Net Integration Technologies, Inc.
 *
 *   Copyright (C) 1999 Red Hat, Inc.
 *
 * Definition of the WvModemBase and WvModem classes.  Inherit from WvFile,
 * but do various important details related to modems, like setting baud
 * rates and dropping DTR and the like.
 *
 */

#ifndef __WVMODEM_H
#define __WVMODEM_H

#include "wvlockdev.h"
#include "wvfile.h"
#include "wvlog.h"
#include <termios.h>

#ifndef IUCLC
#define IUCLC 0
#endif

#ifndef OLCUC
#define OLCUC 0
#endif

#ifndef XCASE
#define XCASE 0
#endif

/**
 * WvModemBase provides the methods used to control a modem, but
 * without real implementation for most of them, so that they can
 * be used in contexts where modem control is undesirable without
 * reimplementing calling code for such uses.
 */
class WvModemBase : public WvFile
{
protected:
    struct termios	t;
    int			baud;

    WvModemBase() { }
    
    int get_real_speed();

public:
    bool die_fast;
    
    WvModemBase(int _fd);
    virtual ~WvModemBase();
    
    /** do-nothing method that is not needed in WvModemBase */
    virtual void close();

    /** do-nothing method that is not needed in WvModemBase */
    virtual bool carrier();

    /** do-nothing method that is not needed in WvModemBase */
    virtual int speed(int _baud);

    /** this one really is needed */
    int getspeed()
	{ return baud; }

    /** may need to hangup for redial reasons */
    virtual void hangup();
    
public:
    const char *wstype() const { return "WvModemBase"; }
};


/**
 * WvModem implements a named modem that really needs to be opened,
 * closed, and manipulated in lots of ways
 */
class WvModem : public WvModemBase
{
private:
    WvLockDev		lock;
    WvLog               log;
    bool                have_old_t;
    struct termios	old_t;
    bool		closing;
    bool                no_reset;
    
    /**
     * Setup all of the terminal characteristics, and leave the modem in CLOCAL
     * mode to make sure that we can communicate easily with the modem later.
     */
    void setup_modem(bool rtscts);
    
    /** Check the status of the modem */
    int getstatus();
    
public:
    WvModem(WvStringParm filename, int _baud, bool rtscts = true, 
	    bool _no_reset = false);
    virtual ~WvModem();
    
    /** Close the connection to the modem */
    virtual void close();
    
    /** Is there a carrier present? */
    virtual bool carrier();
    
    /**
     * _baud is the desired speed, that you wish the modem to communicate with,
     * and this method returns the actual speed that the modem managed to achieve.
     */
    virtual int speed(int _baud);
    
public:
    const char *wstype() const { return "WvModem"; }
};

#endif