~ubuntu-branches/ubuntu/oneiric/exim4/oneiric

« back to all changes in this revision

Viewing changes to .pc/67_unnecessaryCopt.diff/src/exiwhat.src

  • Committer: Bazaar Package Importer
  • Author(s): Artur Rona
  • Date: 2010-12-28 22:20:17 UTC
  • mfrom: (2.3.4 experimental)
  • Revision ID: james.westby@ubuntu.com-20101228222017-r6vg4eqlqy2fk4ul
Tags: 4.73~rc1-1ubuntu1
* Merge from debian unstable.  Remaining changes: (LP: #697934)
  - debian/patches/71_exiq_grep_error_on_messages_without_size.patch:
    + Improve handling of broken messages when "exim4 -bp" (mailq)
      reports lines without size info.
  - debian/control: Don't declare a Provides: default-mta; in Ubuntu,
    we want postfix to be the default.
  - debian/{control,rules}: Add and enable hardened build for PIE.
    (Closes: #542726)
* Drop B-D on libmysqlclient15-dev, resolved in Debian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
# $Cambridge: exim/src/src/exiwhat.src,v 1.5 2009/11/16 19:50:36 nm4 Exp $
 
3
 
 
4
# Copyright (c) University of Cambridge, 1995 - 2007
 
5
# See the file NOTICE for conditions of use and distribution.
 
6
 
 
7
# Except when they appear in comments, the following placeholders in this
 
8
# source are replaced when it is turned into a runnable script:
 
9
#
 
10
# CONFIGURE_FILE_USE_NODE
 
11
# CONFIGURE_FILE
 
12
# BIN_DIRECTORY
 
13
# EXIWHAT_PS_CMD
 
14
# EXIWHAT_PS_ARG
 
15
# EXIWHAT_KILL_SIGNAL
 
16
# EXIWHAT_EGREP_ARG
 
17
# EXIWHAT_MULTIKILL_CMD
 
18
# EXIWHAT_MULTIKILL_ARG
 
19
 
 
20
# PROCESSED_FLAG
 
21
 
 
22
# Shell script for seeing what the exim processes are doing. It gets rid
 
23
# of the old process log, then sends SIGUSR1 to all exim processes to get
 
24
# them to write their state to the log. Then it displays the contents of
 
25
# the log.
 
26
 
 
27
# The following lines are generated from Exim's configuration file when
 
28
# this source is built into a script, but you can subsequently edit them
 
29
# without rebuilding things, as long are you are careful not to overwrite
 
30
# the script in the next Exim rebuild/install. However, it's best to
 
31
# arrange your build-time configuration file to get the correct values.
 
32
 
 
33
# Some operating systems have a command that finds processes that match
 
34
# certain conditions (by default usually those running specific commands)
 
35
# and sends them signals. If such a command is defined for your OS, the
 
36
# following variables are set and used.
 
37
 
 
38
multikill_cmd=EXIWHAT_MULTIKILL_CMD
 
39
multikill_arg=EXIWHAT_MULTIKILL_ARG
 
40
 
 
41
# In other operating systems, Exim has to use "ps" and "egrep" to find the
 
42
# processes itself. In those cases, the next three variables are used:
 
43
 
 
44
ps_cmd=EXIWHAT_PS_CMD
 
45
ps_arg=EXIWHAT_PS_ARG
 
46
egrep_arg=EXIWHAT_EGREP_ARG
 
47
 
 
48
# In both cases, kill_arg is the argument for the (multi)kill command to send
 
49
# SIGUSR1 (at least one OS requires a numeric value).
 
50
 
 
51
signal=EXIWHAT_KILL_SIGNAL
 
52
 
 
53
# See if this installation is using the esoteric "USE_NODE" feature of Exim,
 
54
# in which it uses the host's name as a suffix for the configuration file name.
 
55
 
 
56
if [ "CONFIGURE_FILE_USE_NODE" = "yes" ]; then
 
57
  hostsuffix=.`uname -n`
 
58
fi
 
59
 
 
60
# Now find the configuration file name. This has got complicated because
 
61
# CONFIGURE_FILE may now be a list of files. The one that is used is the first
 
62
# one that exists. Mimic the code in readconf.c by testing first for the
 
63
# suffixed file in each case.
 
64
 
 
65
set `awk -F: '{ for (i = 1; i <= NF; i++) print $i }' <<End
 
66
CONFIGURE_FILE
 
67
End
 
68
`
 
69
while [ "$config" = "" -a $# -gt 0 ] ; do
 
70
  if [ -f "$1$hostsuffix" ] ; then
 
71
    config="$1$hostsuffix"
 
72
  elif [ -f "$1" ] ; then
 
73
    config="$1"
 
74
  fi
 
75
  shift
 
76
done
 
77
 
 
78
# check we have a config file
 
79
if [ "$config" = "" -o ! -f "$config" ]; then
 
80
  echo Config file not found.
 
81
  exit 1
 
82
fi
 
83
 
 
84
# Determine where the spool directory is. Search for an exim_path setting
 
85
# in the configure file; otherwise use the bin directory. Call that version of
 
86
# Exim to find the spool directory. BEWARE: a tab character is needed in the
 
87
# first command below. It has had a nasty tendency to get lost in the past. Use
 
88
# a variable to hold a space and a tab. This is less likely to be touched.
 
89
 
 
90
st='     '
 
91
exim_path=`grep "^[$st]*exim_path" $config | sed "s/.*=[$st]*//"`
 
92
if test "$exim_path" = ""; then exim_path=BIN_DIRECTORY/exim4; fi
 
93
spool_directory=`$exim_path -C $config -bP spool_directory | sed "s/.*=[ ]*//"`
 
94
process_log_path=`$exim_path -C $config -bP process_log_path | sed "s/.*=[ ]*//"`
 
95
 
 
96
# The file that Exim writes when sent the SIGUSR1 signal is specified by
 
97
# the process_log_path option. If that is not defined, Exim uses the file
 
98
# called "exim-process.info" in the spool directory.
 
99
 
 
100
log=$process_log_path
 
101
if [ "$log" = "" ] ; then
 
102
  log=$spool_directory/exim-process.info
 
103
fi
 
104
 
 
105
# Now do the job.
 
106
 
 
107
/bin/rm -f ${log}
 
108
if [ -f ${log} ]; then
 
109
  echo "** Failed to remove ${log}"
 
110
  exit 1
 
111
fi
 
112
 
 
113
# If there is a multikill command, use it. On some OS this command is called
 
114
# "killall" (Linux, FreeBSD). On Solaris it is called "pkill". Note that on
 
115
# Solaris, "killall" kills ALL processes - this is the System V version of this
 
116
# command, and not what we want!
 
117
 
 
118
if [ "$multikill_cmd" != "" ] && type "$multikill_cmd" >/dev/null 2>&1; then
 
119
  $multikill_cmd $signal "$multikill_arg"
 
120
 
 
121
# No multikill command; do it the hard way
 
122
 
 
123
else
 
124
  $ps_cmd $ps_arg | \
 
125
    egrep "$egrep_arg" | \
 
126
    awk "{print \"kill $signal \"\$1}" | \
 
127
    uniq | sh
 
128
fi
 
129
 
 
130
sleep 1
 
131
 
 
132
if [ ! -s ${log} ] ; then echo "No exim process data" ;
 
133
  else sed 's/^[0-9-]* [0-9:]* \([+-][0-9]* \)*\(\[[0-9]\+\] \)\?//' ${log} | sort -n | uniq ; fi
 
134
 
 
135
 
 
136
# End of exiwhat