mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-23 09:22:59 +02:00
Merge remote-tracking branch 'ms/squid-ad' into next
This commit is contained in:
@@ -4,19 +4,28 @@
|
||||
# Based on sysklogd script from LFS-3.1 and earlier.
|
||||
# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
|
||||
#$LastChangedBy: bdubbs $
|
||||
#$Date: 2005-08-01 14:29:19 -0500 (Mon, 01 Aug 2005) $
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. $rc_functions
|
||||
|
||||
function fix_permissions() {
|
||||
local lockdir="/var/lib/samba/winbindd_privileged"
|
||||
|
||||
chmod 750 "${lockdir}"
|
||||
chgrp wbpriv "${lockdir}"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
fix_permissions
|
||||
|
||||
boot_mesg "Starting nmbd..."
|
||||
loadproc /usr/sbin/nmbd -D
|
||||
|
||||
boot_mesg "Starting smbd..."
|
||||
loadproc /usr/sbin/smbd -D
|
||||
|
||||
boot_mesg "Starting winbind..."
|
||||
loadproc /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
stop)
|
||||
@@ -25,6 +34,9 @@ case "$1" in
|
||||
|
||||
boot_mesg "Stopping nmbd..."
|
||||
killproc -p /var/run/nmbd.pid /usr/sbin/nmbd
|
||||
|
||||
boot_mesg "Stopping winbind..."
|
||||
killproc -p /var/run/winbindd.pid /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
reload)
|
||||
@@ -33,6 +45,9 @@ case "$1" in
|
||||
|
||||
boot_mesg "Reloading nmbd..."
|
||||
reloadproc /usr/sbin/nmbd
|
||||
|
||||
boot_mesg "Reloading winbind..."
|
||||
reloadproc /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
restart)
|
||||
@@ -44,6 +59,7 @@ case "$1" in
|
||||
status)
|
||||
statusproc /usr/sbin/nmbd
|
||||
statusproc /usr/sbin/smbd
|
||||
statusproc /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
*)
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Begin $rc_base/init.d/winbind
|
||||
|
||||
# Based on sysklogd script from LFS-3.1 and earlier.
|
||||
# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
|
||||
|
||||
#$LastChangedBy: bdubbs $
|
||||
#$Date: 2005-08-01 14:29:19 -0500 (Mon, 01 Aug 2005) $
|
||||
|
||||
. /etc/sysconfig/rc
|
||||
. $rc_functions
|
||||
|
||||
PIDFILE="/var/run/winbindd.pid"
|
||||
KILLDELAY="10"
|
||||
|
||||
case "$1" in
|
||||
|
||||
start)
|
||||
boot_mesg "Starting winbind..."
|
||||
loadproc /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
stop)
|
||||
boot_mesg "Stopping winbind..."
|
||||
killproc -p ${PIDFILE} /usr/sbin/winbind
|
||||
;;
|
||||
|
||||
reload)
|
||||
boot_mesg "Reloading winbind..."
|
||||
reloadproc /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 1
|
||||
$0 start
|
||||
;;
|
||||
|
||||
status)
|
||||
statusproc /usr/sbin/winbindd
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|reload|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# End $rc_base/init.d/winbind
|
||||
@@ -10,165 +10,136 @@
|
||||
|
||||
char command[BUFFER_SIZE];
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int main(int argc, char *argv[]) {
|
||||
if (!(initsetuid()))
|
||||
exit(1);
|
||||
|
||||
if (!(initsetuid()))
|
||||
exit(1);
|
||||
// Check what command is asked
|
||||
if (argc == 1) {
|
||||
fprintf (stderr, "Missing smbctrl command!\n");
|
||||
return 1;
|
||||
|
||||
// Check what command is asked
|
||||
if (argc==1)
|
||||
{
|
||||
fprintf (stderr, "Missing smbctrl command!\n");
|
||||
return 1;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbuserdisable")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -d %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbuserenable")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -e %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbuserdelete")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -x %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/userdel %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbsafeconf")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbsafeconfcups")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares /var/ipfire/samba/printer > /var/ipfire/samba/smb.conf");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbsafeconfpdc")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/pdc /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbsafeconfpdccups")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/pdc /var/ipfire/samba/shares /var/ipfire/samba/printer > /var/ipfire/samba/smb.conf");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbglobalreset")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.settings > /var/ipfire/samba/settings");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.global > /var/ipfire/samba/global");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.pdc > /var/ipfire/samba/pdc");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbsharesreset")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/default.shares > /var/ipfire/samba/smb.conf");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.shares > /var/ipfire/samba/shares");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbprinterreset")==0)
|
||||
{
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares /var/default.printer > /var/ipfire/samba/smb.conf");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.printer > /var/ipfire/samba/printer");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbstop")==0)
|
||||
{
|
||||
safe_system("/etc/rc.d/init.d/samba stop >/dev/null");
|
||||
safe_system("/usr/local/bin/sambactrl disable");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbstart")==0)
|
||||
{
|
||||
safe_system("/etc/rc.d/init.d/samba start >/dev/null");
|
||||
safe_system("/usr/local/bin/sambactrl enable");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbrestart")==0)
|
||||
{
|
||||
safe_system("/etc/rc.d/init.d/samba restart >/dev/null");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbreload")==0)
|
||||
{
|
||||
safe_system("/etc/rc.d/init.d/samba reload >/dev/null");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbstatus")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbstatus 2>/dev/null");
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbuseradd")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/groupadd sambauser >/dev/null");
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/useradd -c 'Samba User' -m -g %s -s %s %s >/dev/null", argv[4], argv[5], argv[2]);
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "echo %s:%s | chpasswd", argv[2], argv[3]);
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/printf '%s\n%s\n' | /usr/bin/smbpasswd -as %s >/dev/null", argv[3], argv[3], argv[2]);
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbpcadd")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/groupadd sambawks >/dev/null");
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/useradd -c 'Samba Workstation' -g %s -s %s %s >/dev/null", argv[3], argv[4], argv[2]);
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -a -m %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "smbchangepw")==0)
|
||||
{
|
||||
snprintf(command, BUFFER_SIZE-1, "echo %s:%s | chpasswd", argv[2], argv[3]);
|
||||
safe_system(command);
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/printf '%s\n%s\n' | /usr/bin/smbpasswd -as %s >/dev/null", argv[3], argv[3], argv[2]);
|
||||
safe_system(command);
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "readsmbpasswd")==0)
|
||||
{
|
||||
safe_system("/bin/chown root:nobody /var/ipfire/samba/private >/dev/null");
|
||||
safe_system("/bin/chown root:nobody /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 640 /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 650 /var/ipfire/samba/private >/dev/null");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "locksmbpasswd")==0)
|
||||
{
|
||||
safe_system("/bin/chown root:root /var/ipfire/samba/private >/dev/null");
|
||||
safe_system("/bin/chown root:root /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 600 /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 600 /var/ipfire/samba/private >/dev/null");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "enable")==0)
|
||||
{
|
||||
safe_system("touch /var/ipfire/samba/enable");
|
||||
safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S45samba");
|
||||
safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc0.d/K48samba");
|
||||
safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc6.d/K48samba");
|
||||
return 0;
|
||||
}
|
||||
else if (strcmp(argv[1], "disable")==0)
|
||||
{
|
||||
safe_system("unlink /var/ipfire/samba/enable");
|
||||
safe_system("rm -rf /etc/rc.d/rc*.d/*samba");
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
} else if (strcmp(argv[1], "smbuserdisable") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -d %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "smbuserenable") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -e %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "smbuserdelete") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -x %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/userdel %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "smbsafeconf") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
|
||||
|
||||
} else if (strcmp(argv[1], "smbsafeconfcups") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares /var/ipfire/samba/printer > /var/ipfire/samba/smb.conf");
|
||||
|
||||
} else if (strcmp(argv[1], "smbsafeconfpdc") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/pdc /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
|
||||
|
||||
} else if (strcmp(argv[1], "smbsafeconfpdccups") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/pdc /var/ipfire/samba/shares /var/ipfire/samba/printer > /var/ipfire/samba/smb.conf");
|
||||
|
||||
} else if (strcmp(argv[1], "smbglobalreset") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.global /var/ipfire/samba/shares > /var/ipfire/samba/smb.conf");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.settings > /var/ipfire/samba/settings");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.global > /var/ipfire/samba/global");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.pdc > /var/ipfire/samba/pdc");
|
||||
|
||||
} else if (strcmp(argv[1], "smbsharesreset") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/default.shares > /var/ipfire/samba/smb.conf");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.shares > /var/ipfire/samba/shares");
|
||||
|
||||
} else if (strcmp(argv[1], "smbprinterreset") == 0) {
|
||||
safe_system("/bin/cat /var/ipfire/samba/global /var/ipfire/samba/shares /var/default.printer > /var/ipfire/samba/smb.conf");
|
||||
safe_system("/bin/cat /var/ipfire/samba/default.printer > /var/ipfire/samba/printer");
|
||||
|
||||
} else if (strcmp(argv[1], "smbstop") == 0) {
|
||||
safe_system("/etc/rc.d/init.d/samba stop >/dev/null");
|
||||
safe_system("/usr/local/bin/sambactrl disable");
|
||||
|
||||
} else if (strcmp(argv[1], "smbstart") == 0) {
|
||||
safe_system("/etc/rc.d/init.d/samba start >/dev/null");
|
||||
safe_system("/usr/local/bin/sambactrl enable");
|
||||
|
||||
} else if (strcmp(argv[1], "smbrestart") == 0) {
|
||||
safe_system("/etc/rc.d/init.d/samba restart >/dev/null");
|
||||
|
||||
} else if (strcmp(argv[1], "smbreload") == 0) {
|
||||
safe_system("/etc/rc.d/init.d/samba reload >/dev/null");
|
||||
|
||||
} else if (strcmp(argv[1], "smbstatus") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbstatus 2>/dev/null");
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "smbuseradd") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/groupadd sambauser >/dev/null");
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/useradd -c 'Samba User' -m -g %s -s %s %s >/dev/null", argv[4], argv[5], argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "echo %s:%s | chpasswd", argv[2], argv[3]);
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/printf '%s\n%s\n' | /usr/bin/smbpasswd -as %s >/dev/null", argv[3], argv[3], argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "smbpcadd") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/groupadd sambawks >/dev/null");
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/sbin/useradd -c 'Samba Workstation' -g %s -s %s %s >/dev/null", argv[3], argv[4], argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/smbpasswd -a -m %s >/dev/null", argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "smbchangepw") == 0) {
|
||||
snprintf(command, BUFFER_SIZE-1, "echo %s:%s | chpasswd", argv[2], argv[3]);
|
||||
safe_system(command);
|
||||
|
||||
snprintf(command, BUFFER_SIZE-1, "/usr/bin/printf '%s\n%s\n' | /usr/bin/smbpasswd -as %s >/dev/null", argv[3], argv[3], argv[2]);
|
||||
safe_system(command);
|
||||
|
||||
} else if (strcmp(argv[1], "readsmbpasswd") == 0) {
|
||||
safe_system("/bin/chown root:nobody /var/ipfire/samba/private >/dev/null");
|
||||
safe_system("/bin/chown root:nobody /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 640 /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 650 /var/ipfire/samba/private >/dev/null");
|
||||
|
||||
} else if (strcmp(argv[1], "locksmbpasswd") == 0) {
|
||||
safe_system("/bin/chown root:root /var/ipfire/samba/private >/dev/null");
|
||||
safe_system("/bin/chown root:root /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 600 /var/ipfire/samba/private/smbpasswd >/dev/null");
|
||||
safe_system("/bin/chmod 600 /var/ipfire/samba/private >/dev/null");
|
||||
|
||||
} else if (strcmp(argv[1], "enable") == 0) {
|
||||
safe_system("touch /var/ipfire/samba/enable");
|
||||
safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S45samba");
|
||||
safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc0.d/K48samba");
|
||||
safe_system("ln -snf /etc/rc.d/init.d/samba /etc/rc.d/rc6.d/K48samba");
|
||||
|
||||
} else if (strcmp(argv[1], "disable") == 0) {
|
||||
safe_system("unlink /var/ipfire/samba/enable");
|
||||
safe_system("rm -rf /etc/rc.d/rc*.d/*samba");
|
||||
|
||||
} else if (strcmp(argv[1], "join") == 0) {
|
||||
if (argc == 4) {
|
||||
snprintf(command, BUFFER_SIZE - 1, "/usr/bin/net join -U \"%s%%%s\"",
|
||||
argv[2], argv[3]);
|
||||
return safe_system(command);
|
||||
} else {
|
||||
fprintf(stderr, "Wrong number of arguments. Need username and password.\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,14 @@
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
|
||||
# If the wbpriv group does not exist yet, then create it and put squid
|
||||
# into it.
|
||||
if ! getent group wbpriv >/dev/null; then
|
||||
groupadd -g 88 wbpriv
|
||||
usermod -a -G wbpriv squid
|
||||
fi
|
||||
|
||||
extract_files
|
||||
restore_backup ${NAME}
|
||||
/usr/local/bin/sambactrl smbstart
|
||||
|
||||
@@ -23,6 +23,14 @@
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
./uninstall.sh
|
||||
|
||||
# If the wbpriv group does not exist yet, then create it and put squid
|
||||
# into it.
|
||||
if ! getent group wbpriv >/dev/null; then
|
||||
groupadd -g 88 wbpriv
|
||||
usermod -a -G wbpriv squid
|
||||
fi
|
||||
|
||||
extract_files
|
||||
restore_backup ${NAME}
|
||||
echo "passdb backend = smbpasswd" >> /var/ipfire/samba/smb.conf
|
||||
|
||||
175
src/patches/mitkrb-1.12.1-db2_fix-1.patch
Normal file
175
src/patches/mitkrb-1.12.1-db2_fix-1.patch
Normal file
@@ -0,0 +1,175 @@
|
||||
Submitted By: Pierre Labastie <pierre dot labastie at eamil dot fr>
|
||||
Date: 2014-03-04
|
||||
Initial Package Version: 1.12.1
|
||||
Upstream Status: In upstream GIT
|
||||
Origin: Upstream
|
||||
Description: Fixes http://krbdev.mit.edu/rt/Ticket/Display.html?id=7860
|
||||
|
||||
--- a/src/plugins/kdb/db2/libdb2/mpool/mpool.c
|
||||
+++ b/src/plugins/kdb/db2/libdb2/mpool/mpool.c
|
||||
@@ -81,9 +81,9 @@ mpool_open(key, fd, pagesize, maxcache)
|
||||
/* Allocate and initialize the MPOOL cookie. */
|
||||
if ((mp = (MPOOL *)calloc(1, sizeof(MPOOL))) == NULL)
|
||||
return (NULL);
|
||||
- CIRCLEQ_INIT(&mp->lqh);
|
||||
+ TAILQ_INIT(&mp->lqh);
|
||||
for (entry = 0; entry < HASHSIZE; ++entry)
|
||||
- CIRCLEQ_INIT(&mp->hqh[entry]);
|
||||
+ TAILQ_INIT(&mp->hqh[entry]);
|
||||
mp->maxcache = maxcache;
|
||||
mp->npages = sb.st_size / pagesize;
|
||||
mp->pagesize = pagesize;
|
||||
@@ -143,8 +143,8 @@ mpool_new(mp, pgnoaddr, flags)
|
||||
bp->flags = MPOOL_PINNED | MPOOL_INUSE;
|
||||
|
||||
head = &mp->hqh[HASHKEY(bp->pgno)];
|
||||
- CIRCLEQ_INSERT_HEAD(head, bp, hq);
|
||||
- CIRCLEQ_INSERT_TAIL(&mp->lqh, bp, q);
|
||||
+ TAILQ_INSERT_HEAD(head, bp, hq);
|
||||
+ TAILQ_INSERT_TAIL(&mp->lqh, bp, q);
|
||||
return (bp->page);
|
||||
}
|
||||
|
||||
@@ -168,8 +168,8 @@ mpool_delete(mp, page)
|
||||
|
||||
/* Remove from the hash and lru queues. */
|
||||
head = &mp->hqh[HASHKEY(bp->pgno)];
|
||||
- CIRCLEQ_REMOVE(head, bp, hq);
|
||||
- CIRCLEQ_REMOVE(&mp->lqh, bp, q);
|
||||
+ TAILQ_REMOVE(head, bp, hq);
|
||||
+ TAILQ_REMOVE(&mp->lqh, bp, q);
|
||||
|
||||
free(bp);
|
||||
return (RET_SUCCESS);
|
||||
@@ -208,10 +208,10 @@ mpool_get(mp, pgno, flags)
|
||||
* of the lru chain.
|
||||
*/
|
||||
head = &mp->hqh[HASHKEY(bp->pgno)];
|
||||
- CIRCLEQ_REMOVE(head, bp, hq);
|
||||
- CIRCLEQ_INSERT_HEAD(head, bp, hq);
|
||||
- CIRCLEQ_REMOVE(&mp->lqh, bp, q);
|
||||
- CIRCLEQ_INSERT_TAIL(&mp->lqh, bp, q);
|
||||
+ TAILQ_REMOVE(head, bp, hq);
|
||||
+ TAILQ_INSERT_HEAD(head, bp, hq);
|
||||
+ TAILQ_REMOVE(&mp->lqh, bp, q);
|
||||
+ TAILQ_INSERT_TAIL(&mp->lqh, bp, q);
|
||||
|
||||
/* Return a pinned page. */
|
||||
bp->flags |= MPOOL_PINNED;
|
||||
@@ -261,8 +261,8 @@ mpool_get(mp, pgno, flags)
|
||||
* of the lru chain.
|
||||
*/
|
||||
head = &mp->hqh[HASHKEY(bp->pgno)];
|
||||
- CIRCLEQ_INSERT_HEAD(head, bp, hq);
|
||||
- CIRCLEQ_INSERT_TAIL(&mp->lqh, bp, q);
|
||||
+ TAILQ_INSERT_HEAD(head, bp, hq);
|
||||
+ TAILQ_INSERT_TAIL(&mp->lqh, bp, q);
|
||||
|
||||
/* Run through the user's filter. */
|
||||
if (mp->pgin != NULL)
|
||||
@@ -311,8 +311,8 @@ mpool_close(mp)
|
||||
BKT *bp;
|
||||
|
||||
/* Free up any space allocated to the lru pages. */
|
||||
- while ((bp = mp->lqh.cqh_first) != (void *)&mp->lqh) {
|
||||
- CIRCLEQ_REMOVE(&mp->lqh, mp->lqh.cqh_first, q);
|
||||
+ while ((bp = mp->lqh.tqh_first) != NULL) {
|
||||
+ TAILQ_REMOVE(&mp->lqh, mp->lqh.tqh_first, q);
|
||||
free(bp);
|
||||
}
|
||||
|
||||
@@ -332,8 +332,7 @@ mpool_sync(mp)
|
||||
BKT *bp;
|
||||
|
||||
/* Walk the lru chain, flushing any dirty pages to disk. */
|
||||
- for (bp = mp->lqh.cqh_first;
|
||||
- bp != (void *)&mp->lqh; bp = bp->q.cqe_next)
|
||||
+ for (bp = mp->lqh.tqh_first; bp != NULL; bp = bp->q.tqe_next)
|
||||
if (bp->flags & MPOOL_DIRTY &&
|
||||
mpool_write(mp, bp) == RET_ERROR)
|
||||
return (RET_ERROR);
|
||||
@@ -363,8 +362,7 @@ mpool_bkt(mp)
|
||||
* off any lists. If we don't find anything we grow the cache anyway.
|
||||
* The cache never shrinks.
|
||||
*/
|
||||
- for (bp = mp->lqh.cqh_first;
|
||||
- bp != (void *)&mp->lqh; bp = bp->q.cqe_next)
|
||||
+ for (bp = mp->lqh.tqh_first; bp != NULL; bp = bp->q.tqe_next)
|
||||
if (!(bp->flags & MPOOL_PINNED)) {
|
||||
/* Flush if dirty. */
|
||||
if (bp->flags & MPOOL_DIRTY &&
|
||||
@@ -375,8 +373,8 @@ mpool_bkt(mp)
|
||||
#endif
|
||||
/* Remove from the hash and lru queues. */
|
||||
head = &mp->hqh[HASHKEY(bp->pgno)];
|
||||
- CIRCLEQ_REMOVE(head, bp, hq);
|
||||
- CIRCLEQ_REMOVE(&mp->lqh, bp, q);
|
||||
+ TAILQ_REMOVE(head, bp, hq);
|
||||
+ TAILQ_REMOVE(&mp->lqh, bp, q);
|
||||
#if defined(DEBUG) && !defined(DEBUG_IDX0SPLIT)
|
||||
{ void *spage;
|
||||
spage = bp->page;
|
||||
@@ -450,7 +448,7 @@ mpool_look(mp, pgno)
|
||||
BKT *bp;
|
||||
|
||||
head = &mp->hqh[HASHKEY(pgno)];
|
||||
- for (bp = head->cqh_first; bp != (void *)head; bp = bp->hq.cqe_next)
|
||||
+ for (bp = head->tqh_first; bp != NULL; bp = bp->hq.tqe_next)
|
||||
if ((bp->pgno == pgno) && (bp->flags & MPOOL_INUSE)) {
|
||||
#ifdef STATISTICS
|
||||
++mp->cachehit;
|
||||
@@ -494,8 +492,7 @@ mpool_stat(mp)
|
||||
|
||||
sep = "";
|
||||
cnt = 0;
|
||||
- for (bp = mp->lqh.cqh_first;
|
||||
- bp != (void *)&mp->lqh; bp = bp->q.cqe_next) {
|
||||
+ for (bp = mp->lqh.tqh_first; bp != NULL; bp = bp->q.tqe_next) {
|
||||
(void)fprintf(stderr, "%s%d", sep, bp->pgno);
|
||||
if (bp->flags & MPOOL_DIRTY)
|
||||
(void)fprintf(stderr, "d");
|
||||
|
||||
--- a/src/plugins/kdb/db2/libdb2/mpool/mpool.h
|
||||
+++ b/src/plugins/kdb/db2/libdb2/mpool/mpool.h
|
||||
@@ -47,8 +47,8 @@
|
||||
|
||||
/* The BKT structures are the elements of the queues. */
|
||||
typedef struct _bkt {
|
||||
- CIRCLEQ_ENTRY(_bkt) hq; /* hash queue */
|
||||
- CIRCLEQ_ENTRY(_bkt) q; /* lru queue */
|
||||
+ TAILQ_ENTRY(_bkt) hq; /* hash queue */
|
||||
+ TAILQ_ENTRY(_bkt) q; /* lru queue */
|
||||
void *page; /* page */
|
||||
db_pgno_t pgno; /* page number */
|
||||
|
||||
@@ -59,9 +59,9 @@ typedef struct _bkt {
|
||||
} BKT;
|
||||
|
||||
typedef struct MPOOL {
|
||||
- CIRCLEQ_HEAD(_lqh, _bkt) lqh; /* lru queue head */
|
||||
+ TAILQ_HEAD(_lqh, _bkt) lqh; /* lru queue head */
|
||||
/* hash queue array */
|
||||
- CIRCLEQ_HEAD(_hqh, _bkt) hqh[HASHSIZE];
|
||||
+ TAILQ_HEAD(_hqh, _bkt) hqh[HASHSIZE];
|
||||
db_pgno_t curcache; /* current number of cached pages */
|
||||
db_pgno_t maxcache; /* max number of cached pages */
|
||||
db_pgno_t npages; /* number of pages in the file */
|
||||
|
||||
--- a/src/plugins/kdb/db2/libdb2/test/run.test
|
||||
+++ b/src/plugins/kdb/db2/libdb2/test/run.test
|
||||
@@ -71,10 +71,11 @@ main()
|
||||
}
|
||||
|
||||
getnwords() {
|
||||
- # Delete blank lines because the db code appears not to
|
||||
- # like empty keys. On Debian Linux, $DICT appears to contain
|
||||
- # some non-ASCII characters, and "rev" chokes on them.
|
||||
- sed -e '/^$/d' < $DICT | cat -v | sed -e ${1}q
|
||||
+ # Delete blank lines because the db code appears not to like
|
||||
+ # empty keys. Omit lines with non-alphanumeric characters to
|
||||
+ # avoid shell metacharacters and non-ASCII characters which
|
||||
+ # could cause 'rev' to choke.
|
||||
+ LC_ALL=C sed -e '/^$/d' -e '/[^A-Za-z]/d' < $DICT | sed -e ${1}q
|
||||
}
|
||||
|
||||
# Take the first hundred entries in the dictionary, and make them
|
||||
Reference in New Issue
Block a user