This file is indexed.

/usr/sbin/perditiondb_odbc_makedb is in perdition-odbc 2.1-2build1.

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

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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#!/bin/bash
######################################################################
# makedb                                                    March 2002
# Horms                                             horms@verge.net.au
#
# Sample programme to seed a perdition database using ODBC
#
# perdition
# Mail retrieval proxy server ODBC support
# Copyright (C) 1999-2005  Horms, Frederic Delchambre
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
#
######################################################################

DEFAULT_DBSERVER=localhost
DEFAULT_DBNAME=dbPerdition
DEFAULT_DBUSER=perdition
DEFAULT_DBHOST=localhost
DEFAULT_DBTABLE=tblPerdition

quit () {
  stty echo
}

trap quit HUP
trap quit TERM
trap quit STOP

if [ -z "$(type -path isql)" ]; then
  echo "Could not find isql command. Bailing" >&2
  exit 1
fi


cat << __EOF__

ODBC should already be configured on a host. A DSN and user for perdition
to use should have been created.  This is typically done using the
underlying RDBMS.
__EOF__
echo -n "Has ODBC, a DSN and user been set up? [y/N]: "
read flim
if [ "$flim" != "y" -a "$flim" != "Y" ]; then
  echo Bailing...
  exit 0
fi

cat << __EOF__

The default host to connect to is $DEFAULT_DBSERVER.  To use this host hit
return. Otherwise enter a host to connect to.
__EOF__
echo -n "Enter host name [$DEFAULT_DBSERVER]: " >&2
read dbserver
if [ -z "$dbserver" ]; then
  dbserver="$DEFAULT_DBSERVER"
elif [ "$dbserver" != "localhost" ]; then
  DEFAULT_DBHOST="$(hostname)"
fi

cat << __EOF__

Perdition information will be sotored in a DSN which should already exist
in the underlying RDBMS.  The default name for this DSN is $DEFAULT_DBNAME.
If you want to use this hit return, otherwise enter the name for the DSN.
__EOF__
echo -n "Enter DSN [$DEFAULT_DBNAME]: "
read dbname
if [ -z "$dbname" ]; then
  dbname="$DEFAULT_DBNAME"
fi

cat << __EOF__

Perdition information will be stored in table in the $dbname DSN. The
default name for this table is $DEFAULT_DBTABLE. If you want to use this
hit return, otherwise enter the name for the table.
__EOF__
echo -n "Enter table name [$DEFAULT_DBTABLE]: "
read dbtable
if [ -z "$dbtable" ]; then
  dbtable="$DEFAULT_DBTABLE"
fi

cat << __EOF__

A user, other than root should be used to access the $dbname DSN. This user
should already exist in the underlying RDBMS and have query and insert
access to the $dbmname DSN. The default name for this user is
$DEFAULT_DBUSER. If you want to use this name, hit return, otherwise enter
the name for the user.
__EOF__
echo -n "Enter user [$DEFAULT_DBUSER]: "
read dbuser
if [ -z "$dbuser" ]; then
  dbuser="$DEFAULT_DBUSER"
fi

while [ 1 ]; do
  echo -n "Enter the password for the $dbuser user: " >&2
  stty -echo
  read dbpw
  stty echo
  echo
  if [ -z "$dbpw" ]; then
    echo "Password is empty, please try again." >& 2
    continue
  fi
  break
done

echo
echo "Server: $dbserver"
echo "DSN:    $dbname"
echo "Table:  $dbtable"
echo "User:   $dbuser"
echo -n "Proceed (May destroy existing data in database) [y/N]? " >&2
read answer
if [ "$answer" != "y" -a "$answer" != "Y" ]; then
  exit 0
fi



echo -n "Creating table $dbtable in database $dbname..."
#Seed table with data as user perdition

{
cat << __EOF__
drop table if exists $dbtable;
create table $dbtable ( user varchar(128) not null primary key, servername varchar(255) not null, port varchar(8) default null);
create index idx${dbtable}_user on $dbtable (user);
__EOF__
} | isql "$dbname" "$dbuser" "$dbpw" >& /dev/null
if [ $? != 0 ]; then
  echo "Error creating $dbtable in $dbname. Bailing"
  exit 1
fi
echo " Done"

cat << __EOF__

You may now add entries to $dbtable in $dbname.
To connect to $dbname use:

isql "$dbname" "$dbuser" "$dbpw"

To insert rows into $dbtable use the following once
logged into $dbname

insert into $dbtable values (\"user\", \"servername\", \"port\");
where: 
  user:       name of user. Up to 128 characters. May not be NULL.
  servername: name of server for user. Up to 255 characters. May not be NULL.
  port:       port to connect to on server. May be NULL.
__EOF__