~ubuntu-branches/ubuntu/saucy/openvpn/saucy-proposed

« back to all changes in this revision

Viewing changes to shaper.c

  • Committer: Package Import Robot
  • Author(s): Stéphane Graber
  • Date: 2013-05-24 17:42:45 UTC
  • mfrom: (1.1.19) (10.2.22 sid)
  • Revision ID: package-import@ubuntu.com-20130524174245-g9y6wlforycufqy5
Tags: 2.3.1-2ubuntu1
* Merge from Debian unstable. Remaining changes:
  - debian/openvpn.init.d:
    + Do not use start-stop-daemon and </dev/null to avoid blocking boot.
    + Show per-VPN result messages.
    + Add "--script-security 2" by default for backwards compatabliity.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 *  OpenVPN -- An application to securely tunnel IP networks
3
 
 *             over a single UDP port, with support for SSL/TLS-based
4
 
 *             session authentication and key exchange,
5
 
 *             packet encryption, packet authentication, and
6
 
 *             packet compression.
7
 
 *
8
 
 *  Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
9
 
 *
10
 
 *  This program is free software; you can redistribute it and/or modify
11
 
 *  it under the terms of the GNU General Public License version 2
12
 
 *  as published by the Free Software Foundation.
13
 
 *
14
 
 *  This program is distributed in the hope that it will be useful,
15
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 
 *  GNU General Public License for more details.
18
 
 *
19
 
 *  You should have received a copy of the GNU General Public License
20
 
 *  along with this program (see the file COPYING included with this
21
 
 *  distribution); if not, write to the Free Software Foundation, Inc.,
22
 
 *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23
 
 */
24
 
 
25
 
#include "syshead.h"
26
 
#include "shaper.h"
27
 
#include "memdbg.h"
28
 
 
29
 
#ifdef HAVE_GETTIMEOFDAY
30
 
 
31
 
/*
32
 
 * We want to wake up in delay microseconds.  If timeval is larger
33
 
 * than delay, set timeval to delay.
34
 
 */
35
 
bool
36
 
shaper_soonest_event (struct timeval *tv, int delay)
37
 
{
38
 
  bool ret = false;
39
 
  if (delay < 1000000)
40
 
    {
41
 
      if (tv->tv_sec)
42
 
        {
43
 
          tv->tv_sec = 0;
44
 
          tv->tv_usec = delay;
45
 
          ret = true;
46
 
        }
47
 
      else if (delay < tv->tv_usec)
48
 
        {
49
 
          tv->tv_usec = delay;
50
 
          ret = true;
51
 
        }
52
 
    }
53
 
  else
54
 
    {
55
 
      const int sec = delay / 1000000;
56
 
      const int usec = delay % 1000000;
57
 
 
58
 
      if (sec < tv->tv_sec)
59
 
        {
60
 
          tv->tv_sec = sec;
61
 
          tv->tv_usec = usec;
62
 
          ret = true;
63
 
        }
64
 
      else if (sec == tv->tv_sec)
65
 
        {
66
 
          if (usec < tv->tv_usec)
67
 
            {
68
 
              tv->tv_usec = usec;
69
 
              ret = true;
70
 
            }
71
 
        }
72
 
    }
73
 
#ifdef SHAPER_DEBUG
74
 
  dmsg (D_SHAPER_DEBUG, "SHAPER shaper_soonest_event sec=%d usec=%d ret=%d",
75
 
       (int)tv->tv_sec, (int)tv->tv_usec, (int)ret);
76
 
#endif
77
 
  return ret;
78
 
}
79
 
 
80
 
void
81
 
shaper_reset_wakeup (struct shaper *s)
82
 
{
83
 
  CLEAR (s->wakeup);
84
 
}
85
 
 
86
 
void
87
 
shaper_msg (struct shaper *s)
88
 
{
89
 
  msg (M_INFO, "Output Traffic Shaping initialized at %d bytes per second",
90
 
       s->bytes_per_second);
91
 
}
92
 
 
93
 
#else
94
 
static void dummy(void) {}
95
 
#endif /* HAVE_GETTIMEOFDAY */