~ubuntu-branches/ubuntu/quantal/sudo/quantal

« back to all changes in this revision

Viewing changes to include/list.h

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2011-11-20 12:07:45 UTC
  • mfrom: (1.3.17 sid)
  • Revision ID: package-import@ubuntu.com-20111120120745-o3qpklobmygytndc
Tags: 1.8.3p1-1ubuntu1
* Merge from debian/testing, remaining changes:
  - debian/patches/keep_home_by_default.patch:
    + Set HOME in initial_keepenv_table. (rebased for 1.8.3p1)
  - debian/patches/enable_badpass.patch: turn on "mail_badpass" by default:
    + attempting sudo without knowing a login password is as bad as not
      being listed in the sudoers file, especially if getting the password
      wrong means doing the access-check-email-notification never happens
      (rebased for 1.8.3p1)
  - debian/rules:
    + compile with --without-lecture --with-tty-tickets (Ubuntu specific)
    + install man/man8/sudo_root.8 (Ubuntu specific)
    + install apport hooks
    + The ubuntu-sudo-as-admin-successful.patch was taken upstream by
      Debian however it requires a --enable-admin-flag configure flag to
      actually enable it.
  - debian/sudoers: 
    + grant admin group sudo access
  - debian/sudo-ldap.dirs, debian/sudo.dirs: 
    + add usr/share/apport/package-hooks
  - debian/sudo.preinst:
    + avoid conffile prompt by checking for known default /etc/sudoers
      and if found installing the correct default /etc/sudoers file

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2007, 2010 Todd C. Miller <Todd.Miller@courtesan.com>
 
3
 *
 
4
 * Permission to use, copy, modify, and distribute this software for any
 
5
 * purpose with or without fee is hereby granted, provided that the above
 
6
 * copyright notice and this permission notice appear in all copies.
 
7
 *
 
8
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 
9
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 
10
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 
11
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 
12
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 
13
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 
14
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
15
 */
 
16
 
 
17
#ifndef _SUDO_LIST_H
 
18
#define _SUDO_LIST_H
 
19
 
 
20
/*
 
21
 * Convenience macro for declaring a list head.
 
22
 */
 
23
#define TQ_DECLARE(n)                                   \
 
24
struct n##_list {                                       \
 
25
    struct n *first;                                    \
 
26
    struct n *last;                                     \
 
27
};
 
28
 
 
29
/*
 
30
 * Foreach loops: forward and reverse
 
31
 */
 
32
#undef tq_foreach_fwd
 
33
#define tq_foreach_fwd(h, v)                            \
 
34
    for ((v) = (h)->first; (v) != NULL; (v) = (v)->next)
 
35
 
 
36
#undef tq_foreach_rev
 
37
#define tq_foreach_rev(h, v)                            \
 
38
    for ((v) = (h)->last; (v) != NULL; (v) = (v)->prev)
 
39
 
 
40
/*
 
41
 * Init a list head.
 
42
 */
 
43
#undef tq_init
 
44
#define tq_init(h) do {                                 \
 
45
    (h)->first = NULL;                                  \
 
46
    (h)->last = NULL;                                   \
 
47
} while (0)
 
48
 
 
49
/*
 
50
 * Simple macros to avoid exposing first/last and prev/next.
 
51
 */
 
52
#undef tq_empty
 
53
#define tq_empty(h)     ((h)->first == NULL)
 
54
 
 
55
#undef tq_first
 
56
#define tq_first(h)     ((h)->first)
 
57
 
 
58
#undef tq_last
 
59
#define tq_last(h)      ((h)->last)
 
60
 
 
61
#undef list_next
 
62
#define list_next(e)    ((e)->next)
 
63
 
 
64
#undef list_prev
 
65
#define list_prev(e)    ((e)->prev)
 
66
 
 
67
/*
 
68
 * Prototypes for list.c
 
69
 */
 
70
void *tq_pop(void *);
 
71
void tq_append(void *, void *);
 
72
void tq_remove(void *, void *);
 
73
void list_append(void *, void *);
 
74
void list2tq(void *, void *);
 
75
 
 
76
#endif /* _SUDO_LIST_H */