Compare commits

...

No commits in common. "master" and "capiconn" have entirely different histories.

1058 changed files with 1305 additions and 515169 deletions

View File

@ -1,116 +0,0 @@
#
# Automatically generated by make menuconfig: don't edit
#
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# General configuration
#
CONFIG_BUILDX11=y
CONFIG_KERNELDIR='/usr/src/linux'
CONFIG_BINDIR='/usr/bin'
CONFIG_SBINDIR='/sbin'
CONFIG_MANDIR='/usr/man'
CONFIG_RUNDIR='/var/run'
CONFIG_LOCKDIR='/var/lock'
CONFIG_LOCKFILE='LCK..'
CONFIG_I4LCONFDIR='/etc/isdn'
CONFIG_CONFFILE='isdn.conf'
CONFIG_CALLERIDFILE='callerid.conf'
CONFIG_USERCONFFILE='~/.isdn'
CONFIG_COUNTRYCODE='49'
CONFIG_AREACODE=''
CONFIG_COUNTRY_PREFIX='+'
CONFIG_AREA_PREFIX='0'
CONFIG_DATADIR='/usr/lib/isdn'
CONFIG_LIB_AREACODE=y
#
# Runtime configuration tools
#
CONFIG_ISDNCTRL=y
CONFIG_ISDNCTRL_CONF=y
CONFIG_ISDNCTRL_TIMRU=y
CONFIG_IPROFD=y
#
# Card configuration tools
#
# CONFIG_TELESCTRL is not set
CONFIG_HISAXCTRL=y
CONFIG_ICNCTRL=y
# CONFIG_ICNCTRL_DEBUG is not set
CONFIG_PCBITCTL=y
CONFIG_AVMCAPICTRL=y
CONFIG_LOOPCTRL=y
CONFIG_LOOPCTRL_LOOPDIR='/usr/src/linux/drivers/isdn/isdnloop'
# CONFIG_LOOPCTRL_DEBUG is not set
#
# Tools for monitoring activity
#
CONFIG_IMON=y
CONFIG_IMONTTY=y
CONFIG_ISDNLOG=y
#
# Options for isdnlog package
#
CONFIG_ISDNLOG_SERV_PORT=20011
CONFIG_ISDNLOG_USERFILE='isdnlog.users'
CONFIG_ISDNLOG_CHARGEFILE='charge.dat'
CONFIG_ISDNLOG_LOGFILE='/var/log/isdn.log'
CONFIG_ISDNLOG_RELOADCMD='reload'
CONFIG_ISDNLOG_STOPCMD='stop'
CONFIG_ISDNLOG_REBOOTCMD='/sbin/reboot'
CONFIG_ISDNLOG_OLDI4LCONFDIR='/etc/isdnlog'
CONFIG_ISDNLOG_OLDI4LCONFFILE='isdnlog.conf'
# CONFIG_ISDNLOG_POSTGRES is not set
# CONFIG_ISDNLOG_MYSQLDB is not set
CONFIG_ISDN_LOG_DE=y
CONFIG_IPPPSTATS=y
CONFIG_XISDNLOAD=y
CONFIG_XMONISDN=y
#
# Options for xmonisdn
#
CONFIG_XMONISDN_UPCMD='/sbin/netup'
CONFIG_XMONISDN_DOWNCMD='/sbin/netdown'
#
# Applications
#
CONFIG_VBOX=y
#
# Options for vbox package
#
VBOX_SPOOLDIR='/var/spool/vbox'
VBOX_LOGDIR='/var/log/vbox'
VBOX_PIDDIR='/var/run'
VBOX_LOCKDIR='/var/lock'
VBOX_DOCDIR='/usr/doc/vbox'
VBOX_TCL='tcl8.0'
CONFIG_IPPPD=y
#
# Options for ipppd
#
CONFIG_IPPPD_MSCHAP=y
# CONFIG_IPPPD_RADIUS is not set
# CONFIG_RADIUS_WTMP_LOGGING is not set
RADIUS_CLIENT_CONFIG_FILE=''
CONFIG_CAPIFAX=y
CONFIG_RCAPID=y
#
# Documentation
#
CONFIG_GENMAN=y
CONFIG_FAQ=y
CONFIG_FAQDIR='/usr/doc/faq/isdn4linux'

28
.gitignore vendored
View File

@ -1,28 +0,0 @@
#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
# NOTE! Please use 'git ls-files -i --exclude-standard'
# command after changing this file, to see if there are
# any tracked files which get ignored after the change.
#
# Normal rules
#
.deps
.libs
*.la
*.lo
*.o
*.o.*
*.a
*.s
*.so
*.so.dbg
*.i
*.lst
*~
autom4te.cache
ChangeLog
config.log

View File

@ -1,212 +0,0 @@
# Makefile for i4l-faq
# (c) 1997 by Matthias Heßler (MatHes)
#
# Generate FAQ, support FAQ development
# Directories
# After generation, install files in TARGET_DIR (if non-empty)
TARGET_DIR = @TARGET_DIR@
# Program file names
TAR = @C_TAR@
ZIP = @C_ZIP@
GZIP = @C_GZIP@
SGML2HTML = @C_SGML2HTML@
SGML2TXT = @C_SGML2TXT@
INSTALL = @INSTALL@
# Source file names
SRC = i4lfaq.sgml
OUT_NAME = i4lfaq
OUT_TXT = $(OUT_NAME).txt
OUT_HTML = $(OUT_NAME).html
# please note that also files like i4lfaq-1.html, i4lfaq-11.html,...
# will be generated...
DE_SRC = i4lfaq-de.sgml
DE_OUT_NAME = i4lfaq-de
DE_OUT_TXT = $(DE_OUT_NAME).txt
DE_OUT_HTML = $(DE_OUT_NAME).html
# please note that also files like i4lfaq-de-1.html, i4lfaq-de-11.html,...
# will be generated...
# *** Generate FAQ ***
# Generate all FAQ versions
all: Makefile \
$(OUT_HTML) $(OUT_TXT) \
$(DE_OUT_HTML) $(DE_OUT_TXT)
eng: Makefile \
$(OUT_HTML) $(OUT_TXT)
de: Makefile \
$(DE_OUT_HTML) $(DE_OUT_TXT)
# Generate html version of FAQ
html: $(OUT_HTML)
$(OUT_HTML): $(SRC)
$(SGML2HTML) $(SRC)
html_de: $(DE_OUT_HTML)
$(DE_OUT_HTML): $(DE_SRC)
$(SGML2HTML) $(DE_SRC)
# Generate text version of FAQ
txt: $(OUT_TXT)
$(OUT_TXT): $(SRC)
$(SGML2TXT) -f $(SRC)
txt_de: $(DE_OUT_TXT)
$(DE_OUT_TXT): $(DE_SRC)
$(SGML2TXT) -f $(DE_SRC)
# Generate all zip versions
zip: $(OUT_NAME)-sgml.zip $(OUT_NAME)-html.zip $(OUT_NAME)-txt.zip
gz: $(OUT_NAME).sgml.gz $(OUT_NAME).html.tar.gz $(OUT_NAME).txt.gz
zip_de: $(DE_OUT_NAME)-sgml.zip $(DE_OUT_NAME)-html.zip $(DE_OUT_NAME)-txt.zip
gz_de: $(DE_OUT_NAME).sgml.gz $(DE_OUT_NAME).html.tar.gz $(DE_OUT_NAME).txt.gz
# Compress sgml
$(OUT_NAME)-sgml.zip: $(SRC)
$(ZIP) -l $(OUT_NAME)-sgml.zip $(SRC)
$(OUT_NAME).sgml.gz: $(SRC)
$(GZIP) -cf $(SRC) > $(OUT_NAME).sgml.gz
$(DE_OUT_NAME)-sgml.zip: $(DE_SRC)
$(ZIP) -l $(DE_OUT_NAME)-sgml.zip $(DE_SRC)
$(DE_OUT_NAME).sgml.gz: $(DE_SRC)
$(GZIP) -cf $(DE_SRC) > $(DE_OUT_NAME).sgml.gz
# Compress html
$(OUT_NAME)-html.zip: $(OUT_NAME).html
$(ZIP) -l $(OUT_NAME)-html.zip \
$(OUT_NAME).html $(OUT_NAME)-[0-9].html $(OUT_NAME)-[0-9][0-9].html
$(OUT_NAME).html.tar.gz: $(OUT_NAME).html
$(TAR) cf $(OUT_NAME).html.tar \
$(OUT_NAME).html $(OUT_NAME)-[0-9].html $(OUT_NAME)-[0-9][0-9].html
$(GZIP) -f $(OUT_NAME).html.tar
$(DE_OUT_NAME)-html.zip: $(DE_OUT_NAME).html
$(ZIP) -l $(DE_OUT_NAME)-html.zip \
$(DE_OUT_NAME).html $(DE_OUT_NAME)-[0-9].html $(DE_OUT_NAME)-[0-9][0-9].html
$(DE_OUT_NAME).html.tar.gz: $(DE_OUT_NAME).html
$(TAR) cf $(DE_OUT_NAME).html.tar \
$(DE_OUT_NAME).html $(DE_OUT_NAME)-[0-9].html $(DE_OUT_NAME)-[0-9][0-9].html
$(GZIP) -f $(DE_OUT_NAME).html.tar
# Compress txt
$(OUT_NAME)-txt.zip: $(OUT_TXT)
$(ZIP) -l $(OUT_NAME)-txt.zip $(OUT_TXT)
$(OUT_NAME).txt.gz: $(OUT_TXT)
$(GZIP) -cf $(OUT_TXT) > $(OUT_NAME).txt.gz
$(DE_OUT_NAME)-txt.zip: $(DE_OUT_TXT)
$(ZIP) -l $(DE_OUT_NAME)-txt.zip $(DE_OUT_TXT)
$(DE_OUT_NAME).txt.gz: $(DE_OUT_TXT)
$(GZIP) -cf $(DE_OUT_TXT) > $(DE_OUT_NAME).txt.gz
# *** General Stuff ***
# Install output files
install: all
if [ -n "$(DESTDIR)$(TARGET_DIR)" ]; then \
$(INSTALL) -m 0755 -d $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(SRC) $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(OUT_TXT) $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(OUT_NAME).html $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(OUT_NAME)-[0-9].html $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(OUT_NAME)-[0-9][0-9].html $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(DE_SRC) $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(DE_OUT_TXT) $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(DE_OUT_NAME).html $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(DE_OUT_NAME)-[0-9].html $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 $(DE_OUT_NAME)-[0-9][0-9].html $(DESTDIR)$(TARGET_DIR); \
fi
# Un-install output files
uninstall:
set -e; \
if [ -n "$(TARGET_DIR)" ]; then \
cd $(DESTDIR)$(TARGET_DIR); \
rm -f $(SRC) ; \
rm -f $(OUT_TXT) ; \
if [ -e $(OUT_NAME).html ]; then rm -f $(OUT_NAME).html; fi; \
for i in $(OUT_NAME)-[0-9].html ; do \
rm -f $$i ; \
done ; \
for i in $(OUT_NAME)-[0-9][0-9].html ; do \
rm -f $$i ; \
done ; \
rm -f $(DE_SRC) ; \
rm -f $(DE_OUT_TXT) ; \
if [ -e $(DE_OUT_NAME).html ]; then rm -f $(DE_OUT_NAME).html; fi; \
for i in $(DE_OUT_NAME)-[0-9].html ; do \
rm -f $$i ; \
done ; \
for i in $(DE_OUT_NAME)-[0-9][0-9].html ; do \
rm -f $$i ; \
done ; \
fi
# Cleanup
clean:
if [ -e *~ ]; then rm *~; fi
if [ -e \#* ]; then rm \#*; fi
if [ -e *.orig ]; then rm *.orig; fi
set -e; \
if [ -e $(OUT_TXT) ]; then rm -f $(OUT_TXT); fi; \
if [ -e $(OUT_NAME)-sgml.zip ]; then rm -f $(OUT_NAME)-sgml.zip; fi; \
if [ -e $(OUT_NAME).sgml.gz ]; then rm -f $(OUT_NAME).sgml.gz; fi; \
if [ -e $(OUT_NAME)-html.zip ]; then rm -f $(OUT_NAME)-html.zip; fi; \
if [ -e $(OUT_NAME).html.tar.gz ]; then rm -f $(OUT_NAME).html.tar.gz; fi; \
if [ -e $(OUT_NAME)-txt.zip ]; then rm -f $(OUT_NAME)-txt.zip; fi; \
if [ -e $(OUT_NAME).txt.gz ]; then rm -f $(OUT_NAME).txt.gz; fi; \
if [ -e $(OUT_NAME).html ]; then rm -f $(OUT_NAME).html; fi; \
for i in $(OUT_NAME)-[0-9].html ; do \
rm -f $$i ; \
done
for i in $(OUT_NAME)-[0-9][0-9].html ; do \
rm -f $$i ; \
done
if [ -e $(DE_OUT_TXT) ]; then rm -f $(DE_OUT_TXT); fi; \
if [ -e $(DE_OUT_NAME)-sgml.zip ]; then rm -f $(DE_OUT_NAME)-sgml.zip; fi; \
if [ -e $(DE_OUT_NAME).sgml.gz ]; then rm -f $(DE_OUT_NAME).sgml.gz; fi; \
if [ -e $(DE_OUT_NAME)-html.zip ]; then rm -f $(DE_OUT_NAME)-html.zip; fi; \
if [ -e $(DE_OUT_NAME).html.tar.gz ]; then rm -f $(DE_OUT_NAME).html.tar.gz; fi; \
if [ -e $(DE_OUT_NAME)-txt.zip ]; then rm -f $(DE_OUT_NAME)-txt.zip; fi; \
if [ -e $(DE_OUT_NAME).txt.gz ]; then rm -f $(DE_OUT_NAME).txt.gz; fi; \
if [ -e $(DE_OUT_NAME).html ]; then rm -f $(DE_OUT_NAME).html; fi; \
for i in $(DE_OUT_NAME)-[0-9].html ; do \
rm -f $$i ; \
done
for i in $(DE_OUT_NAME)-[0-9][0-9].html ; do \
rm -f $$i ; \
done
config:
./configure
Makefile: Makefile.in config.status
./config.status
config.status: configure
./config.status --recheck
distclean: clean
rm -f config.* Makefile

View File

@ -1,34 +0,0 @@
In this directory you find the FAQ for isdn4linux.
It contains answers for those questions that are frequently asked in the
mailing list/news group for isdn4linux (and some more).
The FAQ is now maintained in English. A German version exists, but updates
to the English version are only translated on a best effort basis.
To see the latest information always use the English version.
The source code of the FAQ is formatted in SGML, which can easily be
converted by using:
sgml2txt i4lfaq.sgml
or
sgml2html i4lfaq.sgml
To download converted versions, or see the latest version online,
visit the homepage of the FAQ:
http://www.mhessler.de/i4lfaq.html
or visit:
http://www.isdn4linux.de/faq/
"i4lfaq.sgml" is the source code for all versions of the FAQ.
"_example" and "_howto" contain postings from the mailing list/news group that
appeared helpful/interesting to me. They may be helpful to you, but be careful:
THEY ARE ALMOST SURELY OUTDATED BY NOW!
See the FAQ for more information about the author of the FAQ.
Matthias Hessler <hessler@isdn4linux.de>

View File

@ -1,113 +0,0 @@
From: Torsten Hentschel <Torsten.Hentschel@DInet.de> Subject: Re: Now i found something else to wonder about.. (was: Re: options files) To: isdn4linux@hub-wue.franken.de
Date: Thu, 24 Oct 1996 22:47:17 +0200 (MET DST) Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
Hello Emil & Mogens!
> Hello Mogens,
>
> You wrote:
> > isdnctrl addif ippp0
> > isdnctrl pppbind ippp0
> > ifconfig ippp0 193.89.84.10 p-t-p 193.89.84.11
---
> > route add -net 194.192.159.0 metric 1 netmask 255.255.255.224 ippp0
> > ipppd user XXX1 /dev/ippp0 193.89.84.10:193.89.84.11 file
> > /etc/ppp/options.ippp0
>
> > isdnctrl addif ippp1
> > isdnctrl pppbind ippp1
> > ifconfig ippp0 193.89.84.10 p-t-p 193.89.84.13
--- why do you repeat the ifconfig?
probably it should be "ippp1" here?
> > route add -net 192.168.1.0 metric 1 netmask 255.255.255.0 ippp1
> > ipppd user XXX2 /dev/ippp1 193.89.84.10:193.89.84.11 file
> > /etc/ppp/options.ippp1
>
> Compare the two ifconfig commands, they are for the same interface.
> And AFAIK the two interfaces need different ip-adresses.
With this I do not agree. It is simply possible to give two interfaces the same local ip address. You may even establish two routes on them. But only the first one found in the routing table will be used by the kernel. So the other route won't have any effect.
Configuring two interfaces with the same local IP address does make sense if you want to use as less IP adresses as possible (very honorable as long as IPv6 is not common practice).
An interface IP-Adress is used by the kernel to give outgoing packets (not the forwarded packets) a sender IP address within the IP header.
To make the IP address 193.89.84.10 (as used in the above example) pingable I would suggest the following (changes ar marked at the right margin):
| ifconfig dummy0 193.89.84.10 # module has to be loaded before | route add -host 193.89.84.10 # only to have 193.89.84.10 reachable
# all the time
isdnctrl addif ippp0
| ifconfig ippp0 down # to make it exclusively bindable
isdnctrl pppbind ippp0
| ifconfig ippp0 193.89.84.10 p-t-p 193.89.84.11 up | route add -host 193.89.84.11 metric 1 ippp0 | route add -net 194.192.159.0 metric 1 \ | netmask 255.255.255.224 gw 193.89.84.11
ipppd user XXX1 /dev/ippp0 193.89.84.10:193.89.84.11 \
file /etc/ppp/options.ippp0
isdnctrl addif ippp1
| ifconfig ippp1 down # to make it exclusively bindable
isdnctrl pppbind ippp1
| ifconfig ippp1 193.89.84.10 p-t-p 193.89.84.13 up | route add -host 193.89.84.13 metric 1 ippp0 | route add -net 192.168.1.0 metric 1 \ | netmask 255.255.255.0 gw 193.89.84.13
ipppd user XXX2 /dev/ippp1 193.89.84.10:193.89.84.11 \
file /etc/ppp/options.ippp1
You may even try the following to "emulate" cisco's dialer rotary group where you may put several BRIs (basic rate interfaces = ISDN S0 [gr.]) into one netmask. Therefore the example would look like (changes aren't marked any more; completely different):
#!/bin/bash
# assuming, we are using a network of
# 193.89.84.0/255.255.255.240
# for a dial up server where
# 193.89.84.1 is the IP for the server and
# 193.89.84.2-14 are the addresses for remote interfaces.
ifconfig dummy0 193.89.84.1 # module has to be loaded before
route add -host 193.89.84.1 # only to have 193.89.84.1 reachable
# all the time
USER_ippp0="XXX1"
RMTNET_ippp0=194.192.159.0
RMTMSK_ippp0=255.255.255.224
USER_ippp1="XXX2"
RMTNET_ippp1=192.168.1.0 # masquerading is great!
RMTMSK_ippp1=255.255.255.0
USER_ippp2="XXX3"
RMTNET_ippp2="" # you may leave 'em blank
RMTNET_ippp2="" # if there is no remote net
[...] # fill out to your needs
for x in 2 3 4 5 6 7 8 9 10 11 12 13 14
do
IFNAME="ippp$[$x-2]"
isdnctrl addif $IFNAME
ifconfig $IFNAME down # to make it exclusively bindable
isdnctrl pppbind $IFNAME
ifconfig $IFNAME 193.89.84.1 netmask 255.255.255.240 up
route add -host 193.89.84.$x metric 1 $IFNAME
eval NET="\${RMTNET_${IFNAME}}"
eval MSK="\${RMTNET_${IFNAME}}"
if [ -n "$NET" -a -n "$MSK" ]
then
route add -net $NET metric 1 netmask $MSK gw 193.89.84.$x
fi
eval USER="\${USER_${IFNAME}}"
ipppd user "$USER" /dev/$IFNAME 193.89.84.1:193.89.84.$x \
file /etc/ppp/options.$IFNAME
done
No warranty, it's untested.
But please yell at me (politely) if I'm wrong.
Regards,
Torsten
--
/\ Delta Internet GmbH / \ DI Delta Internet GmbH von-Siemens-Str. 12 /____\ Netzwerkdienst & Vertrieb 59757 Arnsberg
ALLES NUR AUS LINUX Tel. +49 2932 916 132 Fax 191 --------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,71 +0,0 @@
From: Torsten Hentschel <Torsten.Hentschel@DInet.de> Subject: Re: IPFWADM
To: isdn4linux@hub-wue.franken.de
Date: Thu, 7 Nov 1996 11:03:15 +0100 (MET) Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
Hallo!
Vielleicht kann ich helpfen ;-)
Zuerstmal lass mich wiederholen, ob ich Deine Frage richtig verstanden habe. Mal angenommen Du hast auf den drei Netzwerk- Karten jeweils ein Class-C -Netz und hast die Dinger so etwa wie folgt konfiguriert:
ifconfig eth0 194.77.88.7 netmask 255.255.255.0 broadcast 194.77.88.255
ifconfig eth1 194.77.89.4 netmask 255.255.255.0 broadcast 194.77.89.255
ifconfig eth2 194.77.90.2 netmask 255.255.255.0 broadcast 194.77.90.255
route add -net 194.77.88.0 eth0
route add -net 194.77.89.0 eth1
route add -net 194.77.90.0 eth2
In dieser Weise wuerde ja nun schlichtweg _alles_ von einem Interface zum anderen geroutet werden und Dein Rechner wie ein Gateway funktionieren.
Du willst, so habe ich es verstanden, aber nur einen ganz bestimmten Rechner zwischen den Interfaces "durchlassen" waehrend Dein "Gateway" aber selber alle Rechner erreichen kann und alle Rechner Dein "Gateway" erreichen koennen.
Nehmen wir mal an, der Rechner an eht0, der auf eth1 zugreifen koennen soll, habe die IP-Adresse 194.77.88.15.
Die professionelle Vorgehensweise ist dann:
- Ausschallten der FORWARDING-Funktion im Kernel
durch Neukompilieren
- Aufsetzen der folgenden Befehle für die Firewall:
ipfwadm -F -p deny # Routing zwischen den Interfaces
# erstmal generell verbieten
ipfwadm -I -p accept # Input auf allen Interfaces erlauben
# betrifft Pakete, die Dein Rechner
# auf seinen Interfaces empfaengt
ipfwadm -O -p accept # Output auf allen Interfaces erlauben
# betrifft alle Pakete, die Dein Rechner
# selber erzeugt hat und an jemanden
# senden will
ipfwadm -F -a accept -S 194.77.88.15/32 -D 194.77.90.0/24
# Zuletzt wird explizit das Forwarding
# zwischen dem Rechner auf eth0 und
# allen Rechnern auf eth2 erlaubt.
Wenn Du keinen neuen Kernel kompilieren willst, geht das auch mit eingeschaltetem Forwarding im Kernel. Das ist dann aber nicht so sicher, da man mit etwas Koepfchen die Firewall dann umgehen kann.
Keine Garantie. Das Zeugs habe ich nicht ausprobiert. Muesste aber so klappen. - Bitte korrigiert mich, wenn ich falsch liege.
Gruesse,
Torsten
> Ich habe ein rechner mit 3 netzkarten ( eth0..eth2 ). Jetzt will ich mit
> ipfwadm einen specielen rechner vom eth0 nach eth1 routen ( wie ein gateway ).
>
> Kann jemand mich helpfen?
>
>
> ---------------------------------------------------
> To remove yourself from this mailing list send
> email to majordomo@hub-wue.franken.de containing
> "unsubscribe isdn4linux <your_email_address>" in
> the message body [-vg]
>
--
http://www.DInet.de/
/\ von-Siemens-Str. 12
/ \ Delta Internet GmbH 59757 Arnsberg
/ \ Netzwerkdienst & Vertrieb Tel. +49 2932 91 61 32 /______\ Fax. +49 2932 91 61 91 --------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,130 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA657358; Sun, 19 Jan 1997 20:25:57 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id UAA12262; Sun, 19 Jan 1997 20:26:59 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vm0iB-000oMsa; Sun, 19 Jan 97 18:07 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vm01Q-001ITHa; Sun, 19 Jan 97 17:23 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vm01B-001ITFE; Sun, 19 Jan 97 17:22 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vlzy1-000BikC; Sun, 19 Jan 97 17:19 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vm00S-001ITFE; Sun, 19 Jan 97 17:22 MET
To: isdn4linux@hub-wue.franken.de
Xref: oops de.alt.comm.isdn4linux:856
From: Rainer Birkenmaier <rainer@kirk.mop.uni-ulm.de>
Newsgroups: de.alt.comm.isdn4linux
Subject: Re: MPPP
Date: 17 Jan 1997 01:11:27 GMT
Organization: Die Wischmop-WG
Lines: 90
Message-Id: <5bmjjv$nt@kirk.mop.uni-ulm.de>
References: <199701120958.LAA03553@santra.hut.fi>
Reply-To: rbirkenm@hydra.informatik.uni-ulm.de
Nntp-Posting-Host: freewayport27.extern.uni-ulm.de
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
X-Newsreader: TIN [UNIX 1.3 unoff BETA release 961115]
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Hi !
Also bei mir funktioniert das "isdnctrl addlink ippp0" mit
folgendem Skript prima:
---------- schnipp ----------
#!/bin/sh
#
# don't forget to edit the files
# /etc/ppp/pap-secrets or
# /etc/ppp/chap-secrets
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
LOCAL_NUMBER="123345"
REMOTE_NUMBER="9876543"
LOCAL_IP="134.60.7.70"
REMOTE_IP="134.60.7.102"
DEVICE="ippp0"
TELES_ID="line0"
USER="userName"
# additional for channel bundling:
DEVICE1="ippp128"
VERSION=`cat /proc/version | awk '{ print $3 }' `
# when setting the environment variable MODPATH you
# can omit the full path.
SYSPATH="/sbin/"
telesctrl $TELES_ID 1 4 # enable verbose '4' mode
isdnctrl addif $DEVICE # Create new interface 'DEVICE'
isdnctrl addphone $DEVICE out $REMOTE_NUMBER # Set outgoung phone-number
isdnctrl eaz $DEVICE $LOCAL_NUMBER # Set local EAZ ..
isdnctrl l2_prot $DEVICE hdlc # for sync PPP: set Level 2 to HDLC
isdnctrl l3_prot $DEVICE trans # not really necessary, 'trans' is default
isdnctrl encap $DEVICE syncppp # encap the IP Pakets in PPP frames
isdnctrl huptimeout $DEVICE 300 # Hangup-Timeout is 300 sec. -> 5 min
isdnctrl chargehup $DEVICE off # Hangup before next Charge-Info
isdnctrl secure $DEVICE on # Accept only configured phone-number
# additional for channel bundling:
isdnctrl addslave $DEVICE $DEVICE1 # Create new slave interface 'DEVICE1'
isdnctrl addphone $DEVICE1 out $REMOTE_NUMBER # Set outgoung phone-number
isdnctrl eaz $DEVICE1 $LOCAL_NUMBER # Set local EAZ ..
isdnctrl l2_prot $DEVICE1 hdlc # for sync PPP: set Level 2 to HDLC
isdnctrl l3_prot $DEVICE1 trans # not really necessary, 'trans' is default
isdnctrl encap $DEVICE1 syncppp # encap the IP Pakets in PPP frames
isdnctrl huptimeout $DEVICE1 300 # Hangup-Timeout is 300 sec. -> 5 min
isdnctrl chargehup $DEVICE1 off # Hangup before next Charge-Info
isdnctrl secure $DEVICE1 on # Accept only configured phone-number
ifconfig $DEVICE -arp $LOCAL_IP pointopoint $REMOTE_IP metric 1
route add default $DEVICE
route add default gw 134.60.7.98
ipppd user $USER \
/dev/ippp0 /dev/ippp1 /dev/ippp2
---------- schnapp ----------
Ich hab dabei noch folgendes in /etc/ppp/options stehen:
---------- schnipp ----------
debug
+mp
noipdefault
remotename highway
mru 1524
ipcp-accept-local ipcp-accept-remote
lock
defaultroute
-bsdcomp
-pc
-ac
---------- schnapp ----------
Ich hoffe ich konnte helfen!
Bye ... Rainer!
PS: ich hab hier uebrigens 'ne Teles/S0 16.3
--
<< e-mail: rbirkenm@hydra.informatik.uni-ulm.de >>
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,156 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA76880; Sat, 30 Nov 1996 13:44:05 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id NAA01959; Sat, 30 Nov 1996 13:44:57 +0100
Received: from hub-wue.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vTliY-000oIPa; Sat, 30 Nov 96 10:28 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vTlho-000Boba; Sat, 30 Nov 96 10:27 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vTlil-001IYWa; Sat, 30 Nov 96 10:28 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vTlii-001IYVE; Sat, 30 Nov 96 10:28 MET
Received: from giovanni.rhein-neckar.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vTlge-000BobC; Sat, 30 Nov 96 10:26 MET
Message-Id: <m0vTlgM-000rArC@giovanni.rhein-neckar.de>
From: girardi@giovanni.rhein-neckar.de (Norbert J. Girardi)
Subject: Re: routes?
To: isdn4linux@hub-wue.franken.de
Date: Sat, 30 Nov 1996 10:25:58 +0100 (MET)
Cc: uwe.tetzlaff@t-online.de
In-Reply-To: <m0vTby7-0000fJC@ermail02.btx.dtag.de> from "Uwe Tetzlaff" at Nov 29, 96 10:11:00 pm
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Reply-To: isdn4linux@hub-wue.franken.de
Status:
>
> Moins..
>
> Ich hab hier in der Firma 2 Rechner W95 192.168.254.2 Ne2000
> LinuX 192.168.254.1 3Com 509
> Zu Hause habe ich einen Rechner LinuX 192.168.255.1 Teles S0-16.3
>
> Also zu meinem Problem : ich teste mit ping die Verbindung :
>
> von LinuX zu Hause <-> LinuX Firma via isdn0 = geht.
> von W95 Firma <-> LinuX Firma via eth0 = geht.
> von W95 Firma <-> LinuX zu Hause via eth0 -> isdn0 = geht nicht !
> von LinuX zu Hause <-> W95 Firma via isdn0 -> eth0 = geht nicht !
>
>
> Sicherlich voellig off topic denn ich tippe auf ein Problem bei meinen routes.
>
Es waere sicher hilfreich gewesen wenn Du die 'routes' mitgeschickt
haettest ;-)
OK, versuchen wir's trotzdem mal.
Nennen wir Linux at home -> lihome = 192.168.255.1 ,
Linux at work -> liwork = 192.168.254.1 ,
W95 at work -> work95 = 192.168.254.2 .
Also, bei mir wuerde die '/etc/hosts' auf allen Rechnern _so_ aussehenen:
# ----------------- [schnippel] --------------------------
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#
# For loopbacking.
127.0.0.1 localhost
192.168.255.1 lihome
192.168.254.1 liwork
192.168.254.2 work95
# End of hosts.
# ----------------- [schnippel] --------------------------
Die '/etc/networks' auf allen Rechnern :
========================================
# ----------------- [schnippel] --------------------------
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
homenet 192.168.255.0
worknet 192.168.254.0
# End of networks.
# ----------------- [schnippel] --------------------------
Ich benutze fuer die statischen routes eine Datei in /etc/rc.d
in die ich alle routes eintrage, und die aus /etc/rc.d/rc.inet1
aufgerufen wird.
Die /etc/rc.d/rc.routes auf lihome:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig isdn0 lihome pointopoint liwork
/sbin/route add liwork isdn0
/sbin/route add default gw liwork isdn0
# Alles was raus soll geht per default ueber isdn0
# ----------------- [schnippel] --------------------------
Die /etc/rc.d/rc.routes auf liwork:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig eth0 liwork
/sbin/route add -net worknet eth0
# Alles was von worknet kommt und nach worknet soll
# muss ueber eth0
/sbin/ifconfig isdn0 liwork pointopoint lihome
/sbin/route add liwork
/sbin/route add default gw liwork isdn0
# Alle anderen gehen per default ueber isdn0
# !!!! Klappt nur wenn auch der Kernel mit
# IP FORWARDING/GATEWAYING kompiliert wurde !!!!
# ----------------- [schnippel] --------------------------
Fuer W95 tue ich mal so als sei es ein Linux, d.h.
die Uebersetzung in W95 Syntax bleibt dem Leser ueberlassen :-)
Die /etc/rc.d/rc.routes auf work95:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig eth0 work95
/sbin/route add liwork
/sbin/route add default gw liwork eth0
# alles geht per default ueber eth0 nach liwork
# der sorgt dann fuer die Verteilung
# ----------------- [schnippel] --------------------------
- Norbert
--
Norbert J. Girardi < girardi@giovanni.rhein-neckar.de >
Voice: +49 621 493417 (h) +49 621 381-3260 (w)
Neckarstr. 17, D-68549 Ilvesheim, Germany
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,115 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA773032; Wed, 4 Dec 1996 19:25:55 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id TAA04351; Wed, 4 Dec 1996 19:27:00 +0100
Received: from hub-wue.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vVFcT-000oJ0a; Wed, 4 Dec 96 12:36 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vVFZi-000Boma; Wed, 4 Dec 96 12:33 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vVFbR-001IV5a; Wed, 4 Dec 96 12:35 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vVFbO-001IV3E; Wed, 4 Dec 96 12:34 MET
Received: from dino.nus.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vVFYU-000BomC; Wed, 4 Dec 96 12:31 MET
Received: from localhost (nils@localhost [127.0.0.1]) by dino.nus.de (8.7.6/8.7.3) with ESMTP id MAA09043 for <isdn4linux@hub-wue.franken.de>; Wed, 4 Dec 1996 12:35:02 +0100
Date: Wed, 4 Dec 1996 12:35:02 +0100 (MET)
From: Nils Rennebarth <nils@nus.de>
To: isdn4linux@hub-wue.franken.de
Subject: Re: ISDN-Problem
In-Reply-To: <199612031939.UAA07539@mail.germanlloyd.de>
Message-Id: <Pine.LNX.3.95.961204114817.1062I-100000@dino.nus.de>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Reply-To: isdn4linux@hub-wue.franken.de
Status:
On Tue, 3 Dec 1996, Martin Bauer wrote:
>Moin moin,
>
>ich habe da ein kleines Problem:
>
[Emma und Gegenstelle unterhalten sich prima, aber von keinem Rechner im
Netz der Gegenstelle geht es zu Emma]
Emma:
eth0 inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
isdn0 inet addr:192.168.11.1 P-t-P:192.168.11.3
>
>Kernel IP routing table
>Destination Gateway Genmask Flags Metric Ref Use =
Iface
>172.20.1.4 0.0.0.0 255.255.255.255 UH 0 0 11 =
isdn0
>192.168.11.3 0.0.0.0 255.255.255.255 UH 0 0 3 =
isdn0
>192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 =
eth0
>0.0.0.0 192.168.11.3 0.0.0.0 UG 0 0 2 =
isdn0
>
>
>
>Die Gegenstelle:
>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
eth0 inet addr:172.20.1.4 Bcast:172.20.255.255 Mask:255.255.0.0
isdn0 inet addr:192.168.11.3 P-t-P:192.168.11.1 Mask:255.255.255.0
>Kernel IP routing table
>Destination Gateway Genmask Flags Metric Ref Use =
Iface
>192.168.11.1 0.0.0.0 255.255.255.255 UH 0 0 15 =
isdn0
>192.168.10.0 192.168.11.1 255.255.255.0 UG 0 0 3 =
isdn0
>172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 39 =
eth0
>0.0.0.0 172.20.1.1 0.0.0.0 UG 0 0 3 =
eth0
Es ist kein ISDN Problem, es ist ein routing Problem.
"Gegenstelle" bekommt =FCber ISDN ein Paket mit 192.168.11.3 als Gateway,
wei=DF aber routing-technisch nicht, das es das selber ist.
!! Allein durch Einrichten eines Point-to-Point Interfaces
!! wei=DF ein Rechner noch nicht, da=DF IP-Pakete an die auf seiner Seite
!! konfigurierte Adresse auch an ihn sind.
Mit anderen Worten: es fehlt auf "Gegenstelle" der Befehl
route add -host 192.168.11.3 dev isdn0
N.B.: Warum machst Du es nicht einfacher, wenn Du Point-to-Point routen
verwendest:
auf Emma:
ifconfig isdn0 192.168.10.1 pointopoint 172.20.1.4 -arp -broadcast
route add -host 172.20.1.4
route add default gw 172.20.1.4
auf Gegenstelle:
ifconfig isdn0 172.20.1.4 pointopoint 192.168.10.1 -arp -broadcast
route add -host 192.168.10.1
route add -net 192.168.10.0 gw 192.168.10.1
Nils
--
\ / | Nils Rennebarth
--* WINDOWS 42 *-- | Schillerstr. 61=20
/ \ | 37083 G=F6ttingen
| ++49-551-71626
Micro$oft's final answer | http://www.nus.de/~nils
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,99 +0,0 @@
Return-Path: owner-isdn4linux@hub-wue.franken.de
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA50180; Sat, 15 Mar 1997 01:13:08 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id BAA17710; Sat, 15 Mar 1997 01:14:40 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0w5dUP-000oRUa; Fri, 14 Mar 97 21:22 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0w5dSE-001Iada; Fri, 14 Mar 97 21:19 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0w5dSA-001IacE; Fri, 14 Mar 97 21:19 MET
Received: from goofy.chess.langenfeld.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0w5dSd-000BltC; Fri, 14 Mar 97 21:20 MET
Received: (from tom@localhost) by goofy.chess.langenfeld.de (8.7.5/8.7.3) id VAA00934 for isdn4linux@hub-wue.franken.de; Fri, 14 Mar 1997 21:19:37 +0100
From: Thomas Heiling <tom@goofy>
Message-Id: <199703142019.VAA00934@goofy.chess.langenfeld.de>
Subject: MASQ: TCP/UDP checksum errors SOLVED!
To: isdn4linux@hub-wue.franken.de
Date: Fri, 14 Mar 1997 21:19:35 +0100 (MET)
X-Mailer: ELM [version 2.4 PL25 PGP2]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Hello!
after some tweaking and testing I have solved the problem with
the checksum errors. ( Apparently and hopefully, up to now no
more error messages)
Because of the slowness of my computer (thanks Fritz!) I have done
two things:
a) changed the IRQ from 15 to 5 for the Teles card -> the Teles is now
on the Master controller
b) got irqtune and changed the priority for the teles card to maximum
in favour of disk. ( irqtune 5 )
With this two changes I was able to cure my errors from HiSax:
MASQ: failed TCP/UDP checksum from xx.xx.xx.xx!
for the Teles-driver the following error messages:
Teles: HSCX RDO mode=2
HSCX B EXIR 40
Possibly the first solution would be sufficient, but what the heck,
don't touch a running system.
The original message is included below and yes I know my reply address
is wrong and should be heiling@online-club.de. I will fix
this really soon now, if my new Debian CD has arrived.
Thanks
Dr. Thomas Heiling
>
> Newsgroups: comp.os.linux.networking
> Subject: MASQ:failed TCP/UDP checksum ?
> Reply-To: heiling@mail.online-club.de
> Followup-To:
> Keywords:
> Summary:
>
> Hello!
> I am running Linux 2.0.29 with the isdnlinux-patches and
> with the hisax driver. I have configured this system as a router,
> that means with IP_FIREWALL and IP_MASQUERADING enabled.
> The connectivity from the Linux computer is o.k. and the first time
> the private net "behind " the firewall had access to the internet.
> If I start the Windows Microsoft Explorer from another machine and
> do some surfing everything went fine.
> But after some time I get something like this:
> Mar 8 20:42:24 goofy kernel: MASQ: failed TCP/UDP checksum from
> 194.77.170.27!
> and the Windows computer hungs up.
> The first thought was, that the "Optimize as router not as host" config
> is not 100% error proven, so I compiled a new kernel without this option
> and tried again. But the same error message comes up again.
> Thanks for any pointers and help
>
> My System:
> 386/40 Mhz + CoPro, 20 MB RAM, 2 * 520 MB harddisk
> Teles 16.3 Isdn card ( with HiSax 2.0 + Patch 1-3),
> Adaptec 1542 + CD-Rom
> The system was first a Debian 1.1 System, but now I had done some
> tweaking and compiled/installed new versions.
> The System is connected via ISDN/PPP and the Firewall is up.
>
>
> Dr. Thomas Heiling
> email: heiling@online-club.de
>
> ---------------------------------------------------
> To remove yourself from this mailing list send
> email to majordomo@hub-wue.franken.de containing
> "unsubscribe isdn4linux <your_email_address>" in
> the message body [-vg]
>
>
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,121 +0,0 @@
Return-Path: owner-isdn4linux@hub-wue.franken.de
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA24066; Tue, 11 Mar 1997 18:40:54 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id SAA21704; Tue, 11 Mar 1997 18:42:29 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0w4PZW-000oJva; Tue, 11 Mar 97 12:18 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0w4PXH-001IS9a; Tue, 11 Mar 97 12:16 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0w4PXB-001IS8E; Tue, 11 Mar 97 12:15 MET
Received: from kermit.mbo.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0w4PYD-000BmGC; Tue, 11 Mar 97 12:17 MET
Received: (from lars@localhost) by kermit.mbo.de (8.7.5/8.6.12) id MAA28434 for isdn4linux@hub-wue.franken.de; Tue, 11 Mar 1997 12:18:02 +0100
From: Lars Maier <lars@mbo.de>
Message-Id: <199703111118.MAA28434@kermit.mbo.de>
Subject: Nochmal Cisco 1003<->i4l
To: isdn4linux@hub-wue.franken.de
Date: Tue, 11 Mar 1997 12:18:02 +0100 (MET)
X-Mailer: ELM [version 2.4 PL25]
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Hallo,
leider habe ich immernoch folgendes Problem:
Eine Cisco 1003 soll sich auf einer Linux-Kiste ohne PPP einwaehlen.
Die Cisco erkennt die Routen nicht nach dem booten, sondern erst
nach
clear interface bri0
oder
einem Anruf auf einer msm des NT's, an dem die Cisco haengt
oder Zustecken eines 2. Geraetes auf den SO + damit telefonieren.
Anschliessend tut die Cisco was sie soll.
Ist bri0 mit encapsulation PPP Konfiguriert, erkennt die Cisco die
Routen ohne Hilfe.
Ios Version ist: 11.1(6)
Hat jemand eine Idee, wie sich dieses Problem loesen laesst?
Gruss
Lars
---------
Konfiguration, show ip route :
---------
Using 912 out of 7506 bytes
!
version 11.1
no service pad
service udp-small-servers
service tcp-small-servers
!
hostname kraemer-1
!
boot system flash
boot system host 255.255.255.255
enable secret 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
enable password XXXXXX
!
ip subnet-zero
isdn switch-type basic-net3
!
interface Ethernet0
ip address 194.221.188.225 255.255.255.240
!
interface BRI0
ip address 194.221.188.17 255.255.255.252
bandwidth 64
no keepalive
dialer idle-timeout 300
dialer map ip 194.221.188.18 name 7531915XXX 07531915XXX
dialer-group 1
!
ip domain-name wdkraemer.de
ip name-server 194.221.188.5
ip classless
ip route 0.0.0.0 0.0.0.0 194.221.188.18
ip route 10.0.0.0 255.0.0.0 Null0
ip route 127.0.0.0 255.0.0.0 Null0
ip route 172.16.0.0 255.240.0.0 Null0
ip route 192.0.2.0 255.255.255.0 Null0
ip route 192.168.0.0 255.255.0.0 Null0
dialer-list 1 protocol ip permit
!
line con 0
line vty 0 4
password XXXXXX
login
!
end
--------
So sollte es nicht sein:
S 10.0.0.0/8 is directly connected, Null0
S 127.0.0.0/8 is directly connected, Null0
194.221.188.0/24 is subnetted, 1 subnets
C 194.221.188.224 is directly connected, Ethernet0
S 192.0.2.0/24 is directly connected, Null0
S 192.168.0.0/16 is directly connected, Null0
S 172.16.0.0/12 is directly connected, Null0
So ist es mit Nachhilfe, oder bei PPP:
S 10.0.0.0/8 is directly connected, Null0
S 127.0.0.0/8 is directly connected, Null0
194.221.188.0/24 is variably subnetted, 2 subnets, 2 masks
C 194.221.188.224/28 is directly connected, Ethernet0
C 194.221.188.16/30 is directly connected, BRI0
S 192.0.2.0/24 is directly connected, Null0
S* 0.0.0.0/0 [1/0] via 194.221.188.18
S 192.168.0.0/16 is directly connected, Null0
S 172.16.0.0/12 is directly connected, Null0
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,228 +0,0 @@
Return-Path: POPmail
X-Envelope-From: <owner-isdn4linux@listserv.isdn4linux.de>
X-Envelope-To: <subscribe@i4l.mhessler.de>
X-Delivery-Time: 940694442
Received: from abaco.to.com (abaco.to.com [194.221.235.40])
by post.webmailer.de (8.9.3/8.8.7) with ESMTP id SAA10046
for <subscribe@i4l.mhessler.de>; Sat, 23 Oct 1999 18:00:42 +0200 (MET DST)
Received: by listserv.isdn4linux.de id <80305-340>; Sat, 23 Oct 1999 18:00:15 +0200
Received: from news.wuecom.de (IDENT:news@news.wuecom.de [194.120.69.13])
by abaco.to.com (8.9.1/8.9.1) with ESMTP id SAA22667
for <isdn4linux@listserv.isdn4linux.de>; Sat, 23 Oct 1999 18:00:14 +0200
From: kurt_erich_finger@my-deja.com
Received: (from news@localhost)
by news.wuecom.de (8.8.7/8.8.7) id SAA15677
for isdn4linux@listserv.isdn4linux.de; Sat, 23 Oct 1999 18:00:13 +0200
To: isdn4linux@listserv.isdn4linux.de
Newsgroups: de.alt.comm.isdn4linux
Subject: HOWTO Linux ISDN Internet
Date: Sat, 23 Oct 1999 15:50:00 GMT
Organization: Deja.com - Before you buy.
Lines: 188
Message-ID: <7uslf8$qff$1@nnrp1.deja.com>
NNTP-Posting-Host: 212.144.81.33
X-Article-Creation-Date: Sat Oct 23 15:50:00 1999 GMT
X-Http-User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)
X-Http-Proxy: 1.1 x30.deja.com:80 (Squid/1.1.22) for client 212.144.81.33
X-MyDeja-Info: XMYDJUIDkurt_erich_finger
Xref: news.wuecom.de!news.think.de!news.mayn.franken.de de.alt.comm.isdn4linux:42693
X-Gateway: isdn4linux-newsgate
X-Gateway-Admin: fritz@isdn4linux.de
Sender: owner-isdn4linux@listserv.isdn4linux.de
Precedence: bulk
X-Loop: isdn4linux
Da es nicht ganz so einfach ist mit ISDN ins Internet zu kommen,
hab ich mal einiges zusammengeschrieben.(in Englisch, damit auch
andere etwas davon haben). Ich hab's auch nur mit Hilfe der
newsgroup geschafft. Vielleicht sind folgende Zeilen fuer einige
user ja ganz nuetzlich. Fuer Details ist dann das Linux (ISDN) Howto
ganz nuetzlich.
Falls jemand der Meinung ist, dieses Posting war unnoetig,lasst es mich
wissen
Kurt-Erich Finger
---beginners only----
I tried get into the internet using LINUX and an ISDN-card.
In the manual for the LINUX distribution (SuSE 6.1) almost everything
was explained but some crucial information (for a newbee) is missing.
With the help of this newsgroup I was able to overcome the problems.
I thought it would be a good idea to write a tiny HOWTO for beginners.
Since ISDN is not only used in Germany but also in other countries I
decided to only write it in English.
(If you think this should not appear here, please let me know.)
I choose otelo to give a working example, if you prefer another provider
you can change the details later. If you don't live in Germany modify
the
example as necessary.
My configuration:
SuSE 6.1
Kernel 2.2.5
ISDN-utils 3.0
Virgin PC with Win98 and LINUX (loadlin)
Fritz!card PnP (no other cards)
1.Try to find out which IRQ and Port can be used. If you run the card
already under Win you can find it under >Setting>System.
(I use IRQ=3, address: 200, I know there could be conflicts with
COM2!)
PnP cards:
2. run/sbin/pnpdump -c > /etc/isapnp.conf
Edit /etc/isapnp.conf
(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
(CONFIGURE AVM0900/-1 (LD 0
(IO 0 (SIZE 32) (BASE 0x0200)(CHECK) )
(INT 0 (IRQ 3 (MODE +E)))
(NAME "AVM0900/-1[0]{AVM ISDN-Controller FRITZ!Card}")
(ACT Y)
))
(WAITFORKEY)
The lines (IO (SIZE 32) (BASE Ox0200)) and (INT 0 (IRQ 3 (MODE +E))
should
contain the values you want. If necessary remove the # signs at the
beginning of all above lines.
Save the file and start
isapnp /etc/isapnp.conf
If you receive an -FATAL- error message, first delete :
(CHECK) !!!!!
in the configuration file and start isapnp again.
If you still get resource conflicts try other IRQ's and addresses.
Switch the auto configuration for ISA-pnp the BIOS off.
If you get an ISOLATE PRESERVE error, reboot.
all cards:
3. Run Yast
Strictly follow the SuSE manual.
A device named ippp0 must exist!!!!!!
I assume you want to connect to a provider who uses dynamic IP-
addresses
syncPPP and PAP or CHAP for authorising.
I will describe how you can make a connection to otelo (Germany)
since
you can connect directly without an account (username:otelo,
password: online)
Using Yast the IP-Address can be : 192.168.0.99
Netmask : 255.255.255.255
Default -gateway : -
IP-Adress PtP : 192.168.0.1
The last address could cause problems with t-online, use 192.168.1.1
Configure the Name-Server:
List of IP Addresses : 195.50.149.33 195.50.149.6
List of Domains : otelo-online.de
Leave Yast
Make sure the file /etc/isdn/isdn.conf contains
your COUNTRYCODE and AREACODE without the leading 0
Boot or activate ISDN under Yast to start the network.
When you configure with Yast the PAP protocol is set.
otelo and probably some other provider need CHAP!!!!
Let's see what happens if we try to connect:
isdnctrl dial ippp0
will try to connect to your provider.
Check /var/log/messages!
If you don't see local and remote IP addresses but
ISDN error messages or a 'Modem Hangup' something went wrong.
To find out you need more information in the messages file.
Edit /etc/rc.config.d/I4L_sp_option.rc.config
I4L_VERBOSE=yes
and in /etc/ppp/ioptions
uncomment debug.
This should give enough information in the /var/log/message file.
If you try to connect to otelo you will find that your computer
is sending a string containing <PAP> and otelo sends <CHAP> indicating
that you have to change the protocol from PAP to CHAP.
To change the protocol you have to add
user otelo in /etc/ppp/options.ipp0
add
# client server secret IP addresses
"otelo" * "online"
to /etc/ppp/chap-secrets and delete the corresponding line in
/etc/ppp/pap-secrets.
Start isdnctrl dail ippp0 and watch /var/log/messages. If you seen see
IP addresses you made it.
Otherwise read some of the links in the Weekly ISDN FAQ of E.Corry.
Now you have a connection to your provider and you may want to use the
Netscape Navigator.
First another problem needs to be solved:
If no traffic is on the line it will be cut and the default route will
be deleted.
(You will find the time-out in /etc/rc.config.d/I4L_option.rc.config
I4L_IDLETIME)
The file /etc/ppp/ip-up (ip-down is only a link to ip-up) has to be
modified:
BASENAME=`basename $0`
INTERFACE=$1
DEVICE=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5
case "$BASENAME" in
ip-up)
/sbin/route add default gw $REMOTEIP dev $INTERFACE
#/sbin/init.d/route start $INTERFACE
;;
ip-down)
/sbin/route add default gw $REMOTEIP dev $INTERFACE
#/sbin/init.d/route start $INTERFACE
;;
*)
;;
esac
(from http://www.suse.de/sdb/de/html/isdn-defroute.html (dynamic IP-
numbers))
Now you can start
isdnctrl dial ippp0
startx (kde)
Netscape
I hope it works with you!
In case of problems check-out http://www.suse.de
deutsch: http://www.franken/de/users/klaus/DE-ISDN-HOWTO
English: http://www.wurtel.demon.nl
French: http://www.perso.wanadoo.fr/philippe.latu
Kurt-Erich Finger
Sent via Deja.com http://www.deja.com/
Before you buy.
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@listserv.isdn4linux.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body.

View File

@ -1,149 +0,0 @@
From: Philippe Le Foll <phillf@iu-vannes.fr> Subject: Re: Namesserver Config
To: isdn4linux@hub-wue.franken.de
Date: Wed, 30 Oct 1996 19:09:10 +0100 (MET) Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
I send to some people a small set of shell and example in order to set up a local name server on a Linux box.
I translate in aproximative english the README, which should in any case be easier to read that the french version.
Some people ask be for seting this in an ftp site unfortunately my university did not open yet an anonymous ftp.
phillf@iu-vannes.
Author: Philippe Le Foll: 30-oct-96
e-mail: phillf@iu-vannes.fr
All these shells are coming from Rennes Hight Brittany University they generate from /etc/hosts the DNS database, I modify them in order to run on my linux box.
(c) This is public program and you use them at your own risk
they will probably not run without some adaptation to your site.
All this example refer to the following configuration ------------------------------------------------------------
---------------
| to Internet |
--------------
|
|
dial-out/PPP
(dynamic IP number)
|
|
+------------------------+ +----------------------------+
| | | |
| DNS server | | DNS slave |
| Linux 2.x | | Linux or NT |
| name: bisig | | name fridu |
| | | |
| pppd [IP] | | |
| leafnode [news] | | Netcape [html+news+mail] |
| harvest [html cache]| | Eudora [mail] |
| popd [mail] | | |
| metahtml [local http]| | |
+------------------------+ +----------------------------+
200.200.200.1 200.200.200.1
| | +----------------------------------------------|---------------------------+
Unregistered 200.200.200" network, "domain sene.bzh"
Note:
1) This configuration give to all Slaves computer the impression
to be officially onto Internet without really be registrated.
2) It allows to run a cache even when INTERNET dial-up connection
is down.
3) It obviously read news during the night, but this is an other story.
To Do in order to install DNS
------------------------------
If you are running a DNS at home like me you probably have to choose for an unregistrated domain name as me.
Running on an official Internet network does not change anything except that you don't have to worry about your name and your net number.
- If you don't want to place your DNS data base in
/var/etc/named/DNS you will have to hack the shell
almost everything is hard coded
- create the destination directory /var/etc/named/DNS
- Copy all etc/*header* file in /var/etc/named/DNS then
adapt them to your site [here: network is 200.200.200].
- Allow named to start at boot time, for this remove comment
before named lines in /etc/rc.d/rc.inet2
- copy etc/named.boot file in /etc adapt it to your site
primary & forwarders lines syntax is:
PRIMARY myDomainename [here sene.bzh] headerPathName [here:sene.bzh.header.db]
FORWARDERS IP_NUMBER for your DNS parent [usually your provider].
example
primary sene.bzh /var/etc/named/DNS/sene.bzh.header.db
forwarders 194.51.217.1 194.51.3.49
- Normally /etc/resolv.conf is not mandatory, nevertheless
I place my local domain name in with the following line.
domain sene.bzh
- .cache directive refer to a standard file that you should have no
trouble with. Syntax is:
cache . /var/etc/named/DNS/named.root
NOTE: You can retrieve a more update named.root file true FTP
FTP.RS.INTERNIC.NET. (But for this named should work !!!)
- Build/update your /etc/hosts file. WARNING: all your local hosts
should have as main name host.YourDomainName INCLUDING localhost.YourDomainName
[see example in etc/hosts]
- Generate your DNS data base, this is the only thing you should have to
do at each /etc/hosts change. In fact this job is done automatically
with the following shell, syntax
make_db YourDomainName [ex: make_db sene.bzh]
make_in-addr.arpa Net_Value.._in-addr.arpa [ex: make_in-addr.arpa 200.200.200._in-addr.arpa]
nota: These two commands should generate you the two following files
YourDomainName.db & Net_Value.in-addr.arpa.db
in /var/etc/named/DNS. Both file are include from your
header.db files.
- If you have secondary computers that use your local server,
just write the two following line in there /etc/resolv.conf
domain sene.bzh [where sene.bzh is your domaineName]
nameserver 200.200.200.1 [where 200.200.200.1 is your local DNS]
WARNING: NameServer should be an IP number and not a symbolic name
and this even if it is declare in your /etc/hosts.
- It is now time to start your name server, by just typing in:
named
- Check your name server is effectively working
dnsquery -h your_host_name
WARNING: Even if your dialup line with INTERNET is broken your
name server should answer you. The only time it should
timeout is when you type in a wrong name, it with case it
should try reaching a forwarder.
Good Luck
Kenavo
phillf@iu-vannes.fr
ps: Sorry for the English, if someone want to set it up in real english
I will be please to replace my own README with a better one.
--------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,136 +0,0 @@
Return-Path: owner-isdn4linux@hub-wue.franken.de
Return-Path: <owner-isdn4linux@hub-wue.franken.de>
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id SAA05994; Thu, 15 May 1997 18:44:02 +0200
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0wS0qb-000oQya; Thu, 15 May 97 15:45 MET DST
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0wS0yX-001IV8a; Thu, 15 May 97 15:53 MET DST
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0wS0yR-001IV7E; Thu, 15 May 97 15:53 MET DST
Received: from lion.euromedia.nl by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0wS0pO-000BnEC; Thu, 15 May 97 15:44 MET DST
Received: from localhost (barry@localhost)
by lion.euromedia.nl (8.8.5/8.8.5) with SMTP id OAA01009
for <isdn4linux@hub-wue.franken.de>; Thu, 15 May 1997 14:44:01 +0100
Date: Thu, 15 May 1997 15:44:01 +0200 (MET DST)
From: Barry Lagerweij <barry@euromedia.nl>
Reply-To: Barry Lagerweij <barry@euromedia.nl>
To: isdn4linux@hub-wue.franken.de
Subject: static *AND* dynamic IP addresses
Message-ID: <Pine.LNX.3.94.970515134954.48A-100000@lion.euromedia.nl>
MIME-Version: 1.0
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Length: 4060
Hi everyone,
I've been running ipppd with isdn4linux very succesful so far, using
dynamic IP addresses. Just create ippp0 and ippp1 with isdnctrl, and bind
each of them to a port, and use ifconfig to configure ippp0 and ippp1 to a
certain IP-address.
When a call comes in, ipppd will select either ippp0 or ippp1, and use
that IP address. But now I want all my regular callers to get a dynamic IP
address, but a few of the callers should be assigned a static IP address.
I've been trying everything, and finally I came up with the answer :
1) create the interfaces with isdnctrl:
---cut-here---
/sbin/ifconfig $DEVICE down
$ISDNBIN delif $DEVICE # Create new interface 'DEVICE'
$ISDNBIN addif $DEVICE # Create new interface 'DEVICE'
$ISDNBIN addphone $DEVICE in \* # Set incoming phone-number
$ISDNBIN eaz $DEVICE $LOCAL_NUMBER # Set local EAZ ..
$ISDNBIN l2_prot $DEVICE hdlc # for sync PPP: set Level 2 to HDLC
$ISDNBIN l3_prot $DEVICE trans # not really necessary, 'trans' is default
$ISDNBIN encap $DEVICE syncppp # encap the IP Pakets in PPP frames
$ISDNBIN huptimeout $DEVICE 600 # Hangup-Timeout is 600 sec.
$ISDNBIN chargehup $DEVICE off # Hangup before next Charge-Info
$ISDNBIN pppbind $DEVICE 0
---cut-here---
2) Then I start the ipppd :
---cut-here---
/sbin/ipppd \
-vjccomp -ac -pc \
mru 1524 \
-bsdcomp \
-detach \
debug \
auth \
+pap \
useifip \
proxyarp \
login \
ms-dns $LOCAL_IP \
domain euromedia.nl \
ipcp-accept-remote \
$DEVICE $DEVICE2 &
---cut-here---
Please note the 'useifip' and 'ipcp-accept-remote'. If the client offers a
IP-address that is acceptable for ipppd, but ipppd does not
'ipcp-accept-remote', that IP-address is NAK-ed by ipppd (I think this is
a bug!!!), so I must add 'ipcp-accept-remote'.
The nifty stuff is done in 'auth-up' and 'ip-up' :
auth-up:
---cut-here---
#!/bin/sh
if [ $2 = staticuser ]; then
/sbin/ifconfig $1 194.183.96.3 pointopoint 194.183.96.227 metric 1
else
if [ $1 = ippp0 ]; then
/sbin/ifconfig $1 194.183.96.3 pointopoint 194.183.96.225 metric 1
elif [$1 = ippp1 ]; then
/sbin/ifconfig $1 194.183.96.3 pointopoint 194.183.96.226 metric 1
fi
fi
if [ $2 = routeuser1 ]; then
/sbin/route del 194.183.120.0
/sbin/route add -net 194.183.120.0 netmask 255.255.255.252 $1
elif [ $2 = routeuser2 ]; then
/sbin/route del 194.183.120.8
/sbin/route add -net 194.183.120.8 netmask 255.255.255.248 $1
elif [ $2 = routeuser2 ]; then
/sbin/route del 194.183.120.16
/sbin/route add -net 194.183.120.16 netmask 255.255.255.252 $1
fi
---cut-here---
As you can see, I have one static-IP address user. All other callers are
assigned a IP-address based on the isdn-device (ippp0 or ippp1).
Furthermore, I have three callers that need to be assigned a pool of
IP-addresses. (a subnet of 4 or 8 addresses). This is used for ISDN
routers, like the Ascend or 3com. All of these routes are configured
dynamically when that user logs-in, and deleted as soon as the user hangs
up.
Since ipppd is started with 'useifip', ipppd will use the IP-address that
has just been assigned by ifconfig (in auth-up) !!!
Finally, the route to the interface itself is made, in ip-up :
---cut-here---
#!/bin/sh
/sbin/route add -host $5 $1
---cut-here---
In auth-down and ip-down the route is deleted. This allows me to have
static and dynamic IP-addresses, based on the username, and to have extra
routes added to the device, based on the username.
I don't know if this is the correct way to do it, but it works for me !
PS: only a few users are allowed ISDN access. So I've modified pathnames.h
to point to '/etc/ippp' instead of '/etc/ppp'. This way I can have a
different PPP setup for analog and ISDN callers.
Barry Lagerweij
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,157 +0,0 @@
Replied: Sat, 04 Sep 1999 09:11:46 +0200
Replied: "dev "
Return-Path: POPmail
X-Envelope-From: <Ola@Sigurdson.SE>
X-Envelope-To: <hessler@wi-inf.mhessler.de>
X-Delivery-Time: 936100367
Received: from hsun6.wi-inf.uni-essen.de (hsun6.wi-inf.uni-essen.de [132.252.52.7])
by post.webmailer.de (8.9.3/8.8.7) with ESMTP id NAA17635
for <hessler@wi-inf.mhessler.de>; Tue, 31 Aug 1999 13:52:43 +0200 (MET DST)
Received: from abaco.to.com (abaco.to.com [194.221.235.40])
by hsun6.wi-inf.uni-essen.de (8.8.8/8.8.8) with ESMTP id NAA08801
for <hessler@wi-inf.uni-essen.de>; Tue, 31 Aug 1999 13:53:23 +0200 (MET DST)
Received: from Sigurdson.SE (t4o79p57.telia.com [62.20.201.177])
by abaco.to.com (8.9.1/8.9.1) with ESMTP id NAA11117
for <hessler@isdn4linux.de>; Tue, 31 Aug 1999 13:53:48 +0200
Received: from Sigurdson.SE (IDENT:ola@ws001019.warholm.sigurdson.se [192.168.1.19])
by Sigurdson.SE (8.9.3/8.9.3) with ESMTP id NAA03344
for <hessler@isdn4linux.de>; Tue, 31 Aug 1999 13:52:39 +0200
Sender: ola@Sigurdson.SE
Message-ID: <37CBC1FF.B5B1535D@Sigurdson.SE>
Date: Tue, 31 Aug 1999 13:52:31 +0200
From: Ola Sigurdson <Ola@Sigurdson.SE>
Organization: OS System
X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.12-i686-SMP i686)
MIME-Version: 1.0
To: Matthias Hessler <hessler@isdn4linux.de>
Subject: GSM over V.110 to Linux (Re: V.110)
References: <199908282216.AAA02037@mathes.mhessler.de>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hello,
Matthias Hessler wrote:
> I have good news for you: I think the FAQ is lying, and actually,
> V.110 is supported now. However, since I have not tried it, and it's
> not widly used (and has been implemented not too long ago), I don't
> know how to configure it, and how well it works. But have a look for
> yourself - the code is in isdn_v110.c.
Ok, thanks (I should of course have checked the latest kernel first...
I was running 2.2.9).
> I'll correct the FAQ - thanks for the catch! And I'm happy on any
> feedback how well it works for you...
Works! (See below)
Please find enclosed the pppd (async ppp, *not* sync) config file that
works for us. Feel free to use it in the FAQ.
If I get the time I'll revise it and submit it as a mini-HOWTO.
For now, it is at the current URL:
http://www.oltom.com/Linux/Docs/GSM%20over%20V.110%20Mini-HOWTO.txt
/Ola Sigurdson
--
Email: Ola@Sigurdson.SE Office tel: +46 46 37 01 24
-------------------------------------------------------------------
http://www.oltom.com/Linux/Docs/GSM%20over%20V.110%20Mini-HOWTO.txt
-------------------------------------------------------------------
V.110 works very well for incoming GSM connections from a Palm Pilot!
(After some detective work for V.110 and service parameters.)
Observe that the GSM operator must have a V.110 enable net for this
to work.
The main benefit compared to traditional GSM-data is that connection
setup is
much faster. Also transmission delay and error rate is slightly lower
with
V.110
In non-V.110 GSM the data call is routed through the operator's
net to a modem-pool. From there the call goes out as an ordinary
anlogue call over the PSTN to the dial-in server.
For V.110 GSM the data call goes to the operator's switch, is converted
to
V.110 and routed over ISDN to the dial-in ISDN-card.
Call setup and data transfer is digital end-to-end.
GSM over V.110 Micro-HOWTO:
------------------------------------------------------------------------------
Get a kernel with V.110 and ISDN-support. 2.2.12 works for us.
Test your ISDN setup according to /usr/src/Documentation/isdn/*
Use the standard async PPP daemon on an /dev/ttyIx device.
Example config files are provided below.
The main trick to get GSM and V.110 working is the S19=0 register
setting.
(The isdn4l code sets it to 197 by default. Is this correct?)
The config has been tested with the Swedish Comviq (Tele2) operator,
Palm III,
Option Snap-On adapter, Eicon Diva 2.01 PCI, Redhat 6.0, Kernel 2.2.12.
Possibly other operators or hardware require different settings.
Note the "noccp" and "require-pap" option that disables compression and
CHAP, which the Palm III cannot handle.
If you use devices that can handle these protocols, remove the
corresponding
options.
Parameters to change according to local setup:
----------------------------------------------
/dev/ttyI0 Device you want to use for incoming GSM calls.
If unsure, leave it.
0123456789 Your MSN for incoming GSM calls.
DialInIP:PalmIP IP address of ppp interface on dialin server,
IP address that should be assigned to Palm device.
(If you use symbolic instead of numeric names
they must be defined in the DNS.)
palm Name for finding secret for Palm device in /etc/ppp/pap-secrets
dialin Name for finding secret for Palm device in
/etc/ppp/pap-secrets
PASSWORD Your PPP PAP password
---------- /etc/ppp/options.ttyI0 -------------
/dev/ttyI0
lock
connect '/usr/sbin/chat -t 1 "" "AT&F" "OK"
"AT&E0123456789&R9600S19=0S0=1" "OK"'
idle 300
persist
passive
crtscts
modem
DialInIP:PalmIP
nodefaultroute
proxyarp
ms-dns 192.168.0.1
noccp
noipx
auth
require-pap
remotename palm
name dialin
----- /etc/ppp/pap-secrets ---------------------
palm dialin PASSWORD PalmIP
----- /etc/inittab -----------------------------
I0:35:respawn:/usr/sbin/pppd /dev/ttyI0 nodetach
# nodetach required for things started from init
------ Modem init string for Palm -------------
AT&FX4+CBST=71,0,1

View File

@ -1,199 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA39566; Wed, 5 Feb 1997 23:59:59 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id AAA19017; Thu, 6 Feb 1997 00:01:02 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vsDB9-000oJwa; Wed, 5 Feb 97 20:38 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vsD9H-001IXPa; Wed, 5 Feb 97 20:36 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vsD99-001IXFE; Wed, 5 Feb 97 20:36 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vsDA1-000BikC; Wed, 5 Feb 97 20:37 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vsD93-001IXFE; Wed, 5 Feb 97 20:36 MET
To: isdn4linux@hub-wue.franken.de
Xref: oops de.alt.comm.isdn4linux:1392
From: Jens Brambring <jens.brambring@p-net.de>
Newsgroups: de.alt.comm.isdn4linux
Subject: Re: IPX/SPX ueber isdn4linux und WIN95
Date: Wed, 05 Feb 1997 21:30:18 +0100
Organization: Customer of EUnet Germany; Info: info@Germany.EU.net
Lines: 159
Distribution: world
Message-Id: <32F8EDDA.32EE@p-net.de>
References: <32F53265.5E65@p-net.de>
Nntp-Posting-Host: peu-11.d.eunet.de
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.01Gold [de] (Macintosh; I; 68K)
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Hallo, es geht!!!!
Voraussetzungen unter Linux:
isdn4linux
mgetty oder aehnliches
pppd mit ipx-Unterstuetzung
dip/diplogin
Kernel mit IPX-Protocol und Full ipx internal network auf yes gesetzt
und PPP Unterstuetzung
Vorausetzungen unter WIN95:
ISDN-Karte
DFUE-Netzwerk
Modememulator unter WIN95 der X75 oder HDLC verwenden kann
(im Telspowerpack4 dabei, muesste aber auch mit CFOS oder
aehnlichem gehen?!)
Beschreibung:
Kernel erzeugen.
Einen pppd compilieren und installieren,
indem im Makefile die Zeile DEFINE IPX_CHANGE = 1 eingefuegt ist.
Von isdn4linux benoetigt man nur die ttyI ports also sollte die
Einrichtung und das
Starten unproblematisch sein!
Danach muss man mgetty auf eines der ttyI-devices legen .
Beispiel inittab-Eintragsergaenzung:
I1:123:respawn:/usr/sbin/mgetty -x20 ttyI1
Dann muss die Konfiguration fuer das ttyI-device in mgetty.config
ergaenzt
werden:
port ttyI1
debug 3
modem-type data
speed 38400
init-chat "" ATZ OK AT&EX OK ATS0=1 ATS14=0
Das X steht fuer die nummer, auf der der Anruf angenommen werden soll
(bei euro die ganze Nummer ohne Vorwahl, bei 1tr6 die
Endgeraetenummer)
Die Null hinter ATS14= bedeutet, das wir die Emulation auf X75
stellen
Dann richtet man eine Datei /etc/ppp/options und/oder
/etc/ppp/options.ttyI1 ein
Hier mein Beispiel:
-detach
192.9.215.80:192.9.215.70
defaultroute
mru 1524
debug
/dev/ttyI1
ipx-routing 2
ipxcp-max-failure 20
ipx-node 4:5
ipx-network 0x3000
Die Beschreibung der einzelnen Punkte findet sich in den man-pages
zum pppd.
ipx-network ist die Adresse des Netzwerkes in dem die jeweilige
Netzwerkkarte
zu finden ist und ipx-node gibt die Adressen der angeschlossenen
Rechner in diesem
Netzwerk an, diese Einstellungen scheinen Notwendig zu sein, die
Werte sind sind
ansich beliebig.
Danach richtet man sich einen Benutzer ein dessen startshell auf
/usr/sbin/diplogin
eingetragen ist (/etc/passwd).
Jetzt muss noch die Datei /etc/diphosts editiert werden:
Benutzer::192.9.215.80:192.9.215.70:255.255.255.0::PPP,296
Der Benutzer ist der, den wir eben eingerichtet haben.
Der Linuxrechner sollte dann neu gestartet werden.
Danach richtet man auf dem Ethernetinterface das ipx-Protokoll ein:
ipx_interface add -p eth0 802.2 33000
Der letzte Wert stell wieder eine Netzwerknummer dar, die mit der
auf dem Novell-Server
uebereinstimmen muss, genauso wie das Protokoll (802.2).
Diese Nummern kann man am Novell-Server feststellen wenn man sich
die autoexec.ncf anschaut.
Das Protokoll steht in der Zeile, wo der Netzwerkkartentreiber
geladen wird und die
Netzwerknummer steht an der Stelle, wo ipx an die Netzkarte gebunden
wird.
Wenn man jetzt slist aufruft muesste ansich der Novell-Server
angezeigt werden.
Danach wird ipxd (aus dem ipxripd) gestartet. das sollte es auf
Linux-Seite gewesen sein.
ipx_interface und ipxd sollten automatisch beim Starten des Rechners
gestartet werden.
(Wenn der ipxd mit der option -d gestartet wird gibt er Meldungen
auf dem Monitor aus,
die man auswerten kann, ob alles laeuft)
WIN95:
Ich gehe jetzt einfach davon aus, dass das DFUE-Netzwerk einsatzfaehig
ist
und ipx/spx an das DFUE-Netzwerk gebunden ist.
Man macht eine neue Verbindung, wobei das Modem der Modemimulation oder
dem
dem entsprechendne com-port fuer die Modemimulation zugewiesen wird.
Unter Eigenschaften waehlt man dann bei Typ des Servers PPP,Win95,NT
internet
(habe jetzt gerade nicht die genauen Beschreibung im Kopf, aber so
aehnlich ist das,
ist glaube ich auch die default Einstellung)
Beim Protokoll waehlt man ipx/spx.
Dann gibt es noch die Option Scripts:
Hier gibt man den Namen des Scriptes ein, der die Verbindung aufbauen
soll!
Hier mein Beispiel-script:
proc main
; Set the port settings so we can wait for
; non-gibberish text.
waitfor "login:"
transmit "Benutzer^M"
waitfor "Password:"
transmit "Passwort"
transmit "^M"
waitfor "PPP"
endproc
Benutzer ist wieder der Benutzer und Password das entsprechende
Password.
Das sollte es gewesen sein?!
Jetzt kann man eine Verbindung ueber das DFUE-Netzwerk herstellen, dann
sollte man
einen Moment warten (kann schon mal 10 Sekuden dauern), und der
Novell-Server sollte in der Netzwerkumgebung erscheinen!
Auf Linux seite kann man noch mit cat /proc/net/ipx_interfaces
feststellen ob ein ipx_interface aif ppp0 eingerichtet wurde (sollte
automatisch passieren)
Im Notfall das script auf WIN95 im Einzelschrittmodus ausfuehren lassen.
Ciao, Jens
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,71 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA57806; Sat, 8 Feb 1997 02:28:15 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id CAA05402; Sat, 8 Feb 1997 02:29:21 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vszst-000oHTa; Sat, 8 Feb 97 00:39 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vszrK-001IX0a; Sat, 8 Feb 97 00:37 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vszrD-001IWvE; Sat, 8 Feb 97 00:37 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vszrI-000BnoC; Sat, 8 Feb 97 00:37 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vszr5-001IWvE; Sat, 8 Feb 97 00:37 MET
To: isdn4linux@hub-wue.franken.de
Xref: oops de.alt.comm.isdn4linux:1463
From: Jens Brambring <jens.brambring@p-net.de>
Newsgroups: de.alt.comm.isdn4linux
Subject: Re: IPX/SPX ueber isdn4linux und WIN95
Date: Sat, 08 Feb 1997 01:26:50 +0100
Organization: Customer of EUnet Germany; Info: info@Germany.EU.net
Lines: 31
Distribution: world
Message-Id: <32FBC837.340A@p-net.de>
References: <32F53265.5E65@p-net.de>
Nntp-Posting-Host: peu-18.d.eunet.de
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.01Gold [de] (Macintosh; I; 68K)
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Hallo,
zu Eurer Information, mit dem ipppd 2.2.7 geht es jetzt auch:-)
Ich musste aber noch in der Datei ipxcp die Zeile 354 aendern!
alt: wo->neg_router=1
neu: wo->neg_router=6
Danach kommt eine saubere Verbindung zwischen dem
WIN95-Rechner und dem Linux-Rechner zustande :-))
Es sind auch keine scripts mehr auf der Win95-Seite notwendig!
Ihr muesst aber nach geschlossener verbindung das ipx_interface, dass
vom ipppd eingerichtet wird wieder loeschen, am besten in der Datei
ipx-down,
sonst kriegt Ihr nur einmal eine Verbindung hergestellt!!
Hier meine Datei /etc/ppp/ioptions:
-detach
192.9.215.80:192.9.215.70
defaultroute
mru 1524
debug
/dev/ippp1
+ipx
ipx-routing 2
ipxcp-max-failure 20
ipx-node 4:5
ipx-network 0x3000
Ciao, Jens!
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,107 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA96884; Sun, 9 Feb 1997 15:55:20 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id PAA01990; Sun, 9 Feb 1997 15:56:26 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vtYgt-000oPHa; Sun, 9 Feb 97 13:49 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vtIhQ-001IXqa; Sat, 8 Feb 97 20:44 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vtIhK-001IXoE; Sat, 8 Feb 97 20:44 MET
Received: from frog.informatik.uni-stuttgart.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vtIgU-000Bo1C; Sat, 8 Feb 97 20:43 MET
Received: from localhost (hgfelger@localhost)
by frog.informatik.uni-stuttgart.de (8.8.5/8.8.4) with SMTP
id UAA00991 for <isdn4linux@hub-wue.franken.de>; Sat, 8 Feb 1997 20:42:39 +0100
X-Authentication-Warning: frog.informatik.uni-stuttgart.de: hgfelger owned process doing -bs
Date: Sat, 8 Feb 1997 20:42:39 +0100 (CET)
From: Hartwig Felger <hgfelger@trick.informatik.uni-stuttgart.de>
X-Sender: hgfelger@frog.informatik.uni-stuttgart.de
To: isdn4linux-Mialinglist <isdn4linux@hub-wue.franken.de>
Subject: ipppd with IPX... Geht <freu!!!!>
Message-Id: <Pine.LNX.3.95.970208202145.771B-100000@frog.informatik.uni-stuttgart.de>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Salut,
mit hilfe des Patch von Jens Brambring und, wenn man mehr als einmal
einw=E4hlen m=F6chte, meines Workaround geht jetzt sowohl Dialin von Linux =
als
auch von Win95, jeweils mit Linux als Server.
Der Einzeilerpatch von Jens Brambring war:
auf ipppd 2.2.7-debug anzuwenden!
in ipxcp.c Ziele 354
- wo->neg_router=3D1
+ wo->neg_router=3D6
Ohne diesen Patch passiert schlimmes mit eurem Logfile (ich sag nur
Bl=E4hungen!)
Damit es =F6fer als einmal geht mu=DF im /etc/ppp/ipx_down eine Zeile
eingef=FCgt werden (ich habe aber den Parameterkommentar noch dazu gelegt):
# args are: interface-name tty-device speed network-number
# local-IPX-node-address remote-IPX-node-address
# local-IPX-routing-protocol remote-IPX-routing-pro=AD
# tocol local-IPX-router-name remote-IPX-router-name
# ipparam pppd-pid
# example: ippp0 /dev/ippp0 38400 ...
# interface=3D$1 line=3D$2 speed=3D$3 localaddr=3D$4 remoteaddr=3D$5
logger -t ipx-down -p local2.info $*
/usr/bin/ipx_interface del $1 EtherII
Wenn durch die letzte Zeile nicht das IPX-Interface gel=F6scht wird, steht
es das n=E4chste mal im Weg!
Ich denke, da=DF das in den ipppd wandern mu=DF (Michael???). Nach einem Bl=
ick
in die message-Logs mu=DF ich sagen, da=DF der Jenssche-Patch zwar tut, abe=
r
wohl auch nur als Workaround anzusehen ist. Er f=FChr dazu, da=DF kein
Routing-Protokoll vereinbart wird, was aber nicht st=F6rt. Ich konnte
zumindest alles tun. Ob sich jetzt aber zwei LAN ohne Routing-Protokoll
verbinden lassen wei=DF ich nicht (kann ich auch eben nicht pr=FCfen, da ic=
h
zu Hause kein LAN hab - das Finanzamt macht ja schon bei einem
Rechner ...).
Damit Linux zu Linux tut, mu=DF ein zweites IPX-Interface aufgesetzt werden=
=2E
Notfalls das dummy0. Das meldet man dann als primary an (Option -p im
ipx_interface-Befehl). Das sorgt eben f=FCr ein Prim=E4res und erm=F6glicht=
,
sobald die Leitung steht dem ipxd (aus ipxripd-0.7) zu starten (er braucht
mindestens zwei IPX-Interfaces zum starten). Danach gehen slist und
ncpmount!!!=20
Wenn die Leitung abgebaut und sp=E4ter wieder aufgebaut wird, mu=DF ipxd ni=
cht
neu gestartet werden. Nach ca 30 Sekunden hat der ipxd das neue
IPX-Interface erkann.
Der ipxd startet nat=FCrlich nicht von selbst. Damit man das zweitemal nich=
t
so lange (30 Sec.) warten mu=DF kann man ein ipx-up schreiben, welches
pr=FCft, ob ipxd l=E4uft und ihm ein HUP schicken, dann sieht er sofort das
neue Interface, oder sonst startet.
Wenn die Leitung abgebaut und sp=E4ter wieder aufgebaut wird, mu=DF ipxd ni=
cht
neu gestartet werden. Nach ca 30 Sekunden hat der ipxd das neue
IPX-Interface erkann.
Gru=DF Hartwig ;-)
768/CA2159D9 Hartwig Felger <hgfelger@trick.informatik.uni-stuttgart.de>
Fingerprint: 18 49 5E 6E 4E 47 3D F5 28 3E 11 C9 05 26 F3 46
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,123 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA25458; Mon, 10 Feb 1997 02:33:01 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id CAA16866; Mon, 10 Feb 1997 02:34:07 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vtj9I-000oKia; Mon, 10 Feb 97 00:59 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vtj8I-001Ibia; Mon, 10 Feb 97 00:58 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vtj8D-001IbgE; Mon, 10 Feb 97 00:58 MET
Received: from frog.informatik.uni-stuttgart.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vtj7p-000BikC; Mon, 10 Feb 97 00:57 MET
Received: from localhost (hgfelger@localhost)
by frog.informatik.uni-stuttgart.de (8.8.5/8.8.4) with SMTP
id AAA00744 for <isdn4linux@hub-wue.franken.de>; Mon, 10 Feb 1997 00:57:17 +0100
X-Authentication-Warning: frog.informatik.uni-stuttgart.de: hgfelger owned process doing -bs
Date: Mon, 10 Feb 1997 00:57:16 +0100 (CET)
From: Hartwig Felger <hgfelger@trick.informatik.uni-stuttgart.de>
X-Sender: hgfelger@frog.informatik.uni-stuttgart.de
Cc: isdn4linux-Mialinglist <isdn4linux@hub-wue.franken.de>
Subject: Re: IPX / callback und anderes mit neuem ipppd
In-Reply-To: <Pine.LNX.3.95.970208201737.771A-100000@frog.informatik.uni-stuttgart.de>
Message-Id: <Pine.LNX.3.95.970210004715.538A-101000@frog.informatik.uni-stuttgart.de>
Mime-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="8323584-669190516-855532636=:538"
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--8323584-669190516-855532636=:538
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
Salut,
On Sat, 8 Feb 1997, Hartwig Felger wrote:
> Sorry,
> On Sat, 8 Feb 1997, Raphael Leiteritz wrote:
>=20
> > | Sorry beim Bauen ist mir eingefallen, da=DF f=FCr den USE_MS_DNS ein =
kleiner
> > | Patch n=F6tig ist:
> > | -------------o<------------
> > | pp4i4k-2.2.6g-alpha/ipppd.2.2.6g/ipcp.h
> > | 58a59,60
> > |> /*@@@ added by dy */
> > |> u_int32_t winsaddr[2]; /* Primary and secondary MS WINS entrie=
s */
> > | -------------->o-----------
> > Hattest Du denn ansonsten Erfolg? Bei mir hat es naemlich immer
> > noch nicht geklappt (s. meine mail an die Liste).
> das war wohl nur ein Patch um copilieren zu k=F6nnen. Irgendwo in meinem
> Win95 mu=DF wohl noch ein Verweis auf den Firmen-DNS sein, denn ich kann =
mit
> Namen arbeiten. Wenn ich ins Log schaue, steht da aber =FCberall REJ. Ich
> konnte aber weder in der Registry noch in irgendeiner .INI was finden. Di=
e
> Frage w=E4re nat=FCrlich, ob Win95 auch nicht einfach den Rechner nimmt, =
wo
> man sich gerade eingew=E4hlt hat. Da ist bei uns auch der DNS drauf. ????
>=20
> Gru=DF Hartwig :-(
>=20
> 768/CA2159D9 Hartwig Felger <hgfelger@trick.informatik.uni-stuttgart.de>
> Fingerprint: 18 49 5E 6E 4E 47 3D F5 28 3E 11 C9 05 26 F3 46
Ich habe heute 'mal die pppd-2.2.0f mit dem ipppd verglichen, bez=FCglich
des MS-DNS und MS-WINS. Ich habe dann das ipppd angepa=DFt und siehe da die
Logs sagen nicht mehr REJ. Ich mich dann per IPX eingew=E4hlt. Nachdem ich
vorher alle =FCbrigen festen DNS-Eintragungen aus win95 entfernnt hatte,
ging der Zugriff perfekt. Der restliche Patch ist angeh=E4ngt!
Achtung: damit IPX mit ipppd und win95 =FCberhaupt geht, m=FCssen die beide=
n
Workarounds eingebracht werden, die ich zusammen schon gemailt habe.
Viel Spa=DF ;-)
P.S.: Ich habe heute schon meine Killerapplikation per ipppd/IPX-Dialin
laufen lassen: NWADMIN f=FCr einen NW4.10. Das Laden des Programms hat zwar
fast 5 Minuten gedauert, aber dann kann man arbeiten. Ich werde mir das
Programm eben lokal installieren.. Dieser Test impliziert, da=DF =FCber
diese Verbindung auf NDS zugegriffen werden kann.
768/CA2159D9 Hartwig Felger <hgfelger@trick.informatik.uni-stuttgart.de>
Fingerprint: 18 49 5E 6E 4E 47 3D F5 28 3E 11 C9 05 26 F3 46
--8323584-669190516-855532636=:538
Content-Type: APPLICATION/octet-stream; name="patch-ms-dns.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970210005716.538B@frog.informatik.uni-stuttgart.de>
Content-Description: gziped patch f|r option.c
H4sICN1h/jIAA3BhdGNoLW1zLWRucwCdlG1r2zAQgD+3v+IIjNqu3cQJSZaG
DMbGIFBKoIwNSgmurcQCxxKS0qyU/PedFPktTZu0+mL5dPfodG+e5wHjirJc
XsVXTNDl2d06h1/kEWAE4fC627nuDiEcjYbnQRBUuvtqg+v+aKfmNZf+h25n
5HfDr2AEmrMTjAD3wTmAVJGiMdBcgSSKch6JaAXz+cxxUObHaSTQ1nXHr3R5
xGPxzFWpfEiJJhk5iZayLGGLxUm6SS6jJBEHdS/3dDf0HeUGWBATgH9cMMXe
fdRaErqg/JjOggqpjqit3j/mm4wtGxqHctzrD/zeoF/luNcfomBY5Fivl5bN
bcuH0K/leuufnbU9LQD0VcaCYkrNCVEEA9UuAUXCkdDx6xWACCTMvs/QTsoN
E4kEkpsjktQJuhqq+/Fn60NjIcZUjKIrAhldUQWOJDHLE+nWQbZaSpb938cZ
oH5ZUV2Ge5C4kgGWVQm0JVYDIunn7R1oKZESFkyASglwQsSFBEy3pl1WNF14
Ja6owibvz/QosHAvZ1iZiNORbxRqQdTuURk9YvCms78/ZuBEeaK3jVcGlvJp
TEmyPdDyO37VEc34IyuOsszkGg8d17xxOjNPlnW3qmapeFaASOToaBiBNl8I
toJorVIUoZ8aKsiKKROwgzMw7PZx5vUGtSkYdocoGozqPYIL8w4T8Jz1HPut
150r8NyUB9/SuXZ6bBW3VSToAhzKYz7Hl7KNHdL3RiIzph6ubCXddx5gMoGO
Cy/VbScbar/GtroKu02Uq5PMrM9AMoziR28PP3f7vtkWv3YrML0iByc009oe
tD196jUmdmBaV/eEFhWN4hDpGt32m7Nez0oonSoGfiSWT9ryxfpRpVjbFY5K
JdaxHhhSEaR4KR9Xrhs/JngdUaYenB20sNW1sFOZQBC65U32yEk5Gi/1tJLq
8TnHCWsBrra4/X1z07DRaxfiORGCCadF86coo0k5M6oxffFFXphOsJPHGrb8
Jq6xms7bZbPTqYm31dYG4O3+eJXto/1RJK3eIM1SO8mykcQjRfq2YdkkH/Qg
/KwHNcMi2OVoqTeKPfgPxzKysjUKAAA=
--8323584-669190516-855532636=:538--
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,156 +0,0 @@
From: Torsten Hentschel <Torsten.Hentschel@DInet.de> Subject: Re: ISDN - POOL
To: isdn4linux@hub-wue.franken.de
Date: Sun, 10 Nov 1996 14:15:22 +0100 (MET) Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
Hallo Georg!
> nachdem ich I4L nun seit 8 Monaten erfolgreich und voellig _ohne_ Probleme
> betreibe (Hut ab vor den Entwicklern), ist noch eine einzige Geschichte,
> die ich gerne geloest haette.
Jau, ueber die Arbeit der I4L-Entwickler auch meinen Dank. Das Zeug ist wunderbar.
> Ich betreibe I4L Router, die verschiedene Subnetze verbinden. Dies sind aber
> alles feste routen, ich benutze _kein_ pppd oder ipppd. ISDN Device mit isdnctrl
> definieren und mit ifconfig / route einrichten - fertig. Die Gegenstellen
> waehlen sich auf eine feste Nummer rein, diese muss dann natuerlich frei sein.
>
> Dies laeuft alles ganz hervorragend, jetzt aber die Frage:
>
> Ich benutze einen "eigenen" NTBA nur fuer I4L, waere es moeglich, das dieser als
> Pool fungiert ?
> Ich meine, ich definiere 10 IP Verbindungen und gebe jeder (secure on) eine
> Eingehende Nummer. Die Gegenstellen bekommen alle 3 Rufnummern und waehlen diese
> der Reihe nach durch.
Genau sowas haben wir hier an zwei Standorten realisiert.
Gerne beschreibe ich Dir Moeglichkeiten und Probleme.
Auch wir haben das hier ohne ipppd gemacht, weil der leider noch so ein paar Tuecken hat.
Wenn ich recht verstehe hast Du momentan folgende Konstellation (habe neben S0 jeweils eine Beispiel-Telephonnummer geschrieben, drunter und drueber stehen beispielhafte Namen fuer die ISDN-Devices).
"draussen" "pool"
Router A 8989 S0 <------ISDN--\ raw0 \
+---> SO 3434 |
Router B 7676 S0 <------ISDN--/ raw1 | ein Master-Router
|
Router C 6565 S0 <------ISDN--\ raw2 | ein Master-Router
+---> SO 6565 |
Router D 2332 S0 <------ISDN--/ raw3 | ein Master-Router
|
Router E 6344 S0 <------ISDN--\ raw4 | ein Master-Router
+---> SO 3454 |
Router F 1023 SO <------ISDN--/ raw5 /
Die Router draussen waehlen sich also auf Deinem zentralen Router ein. Bisher hast Du dafuer die ISDN-Nummern bei den Routern draussen so verteilt, dass kein Konflikt durch "Besetzt" entstehen kann.
Bei den Beispiel-Routern sei vereinbart, dass sie alle Ihr ISDN-Device mit "raw0" benannt haben. Auch werde ich annehmen, dass alle in derselben Orstnetzkennzahl liegen.
Nun habe ich Dich so verstanden, dass Du auf Deinem Master-Router die Kosten fuer die einzelnen Basis-Anschluesse senken willst, indem Du auf jedem Basisanschluss mehr als zwei Rechner einwaehlen laesst.
Am liebsten auf allen drei beispielhaften Anschluessen mit 6 Kanaelen gleich 10 externe Router auf einmal. Bei 10 Routern ist noch recht selten, dass alle 6 Kanaele des Master-Routers gleichzeitig besetzt sind, wenn man eine "gemaessigte" Benutzung voraussetzt.
> Am einfachsten waere dies zu realisieren, wenn die Slave Devices einen Anruf
> annehmen, auch wenn der Master _NICHT_ aktiv ist. Die Master Rufnummer waere in
> diesem Fall durch einen Anruf auf eben dieser Nummer von einer anderen
> Gegenstelle blockiert.
Nee, mit slave-Devices solltes Du das nicht probieren. Dafuer sind die nicht gedacht.
> Oder ich kann einem Device mehrere MSN zuweisen, oder ich kann es so aufsetzen,
> das es _immer_ rangeht, bzw wenn secure = true ist.
Ja, genau das ist mein Vorschlag.
Konkret haette ich dafuer den folgenden Vorschlag:
a) Bei allen externen Routern muessen alle Nummern der
SO-Anschluesse des Master-Routers eingetragen werden.
Jedesmal, wenn Du zentral einen S0-Anschluss aufnimmst,
bedeutet das auf den externen Routern ein wenig arbeit.
Also bei jedem Router draussen:
vorwahl="2932" # ohne Null!
for number in 3434 6565 3454
do
isdnctrl addphone raw0 in ${vorwahl}${number}
isdnctrl addphone raw0 out ${number}
done
b) Bei den ISDN-Netzinterfacen raw0 bis raw5 kannst Du nur eine
MSN angeben. Auf jedem Euro-ISDN-Basisanschluss liegen
aber mehrere MSNs und die sind auch noch alle verschieden.
Bei 1TR6 war das anders und deshalb funktionierte das damals
mit der Realisierung einer Einwaehlreihenfolge ganz problemlos.
Die EAZs von 1TR6-Anschluessen waren naemlich alle einziffrig
und wenn alle externen Router dieselben Durchwahlnummern verwendet
haben (mit derselben angehaengten EAZ), dann hat automatisch
jedes Netzinterface auf allen SO-Anschluessen reagiert.
Aus diesem Grunde scheint eine sehr nette und durchdachte
Sache von Fritz Elfert in das ISDN-Basissystem von Linux
eingefuegt worden zu sein: Das EAZ-MSN-Mapping.
Fuer die Treiber der einzelnen S0-Anschluesse auf dem
zentralen Router hast Du ja mit dem insmod Namen vergeben.
Ich nehme mal an, die Namen sind wie folgt vergeben:
MSN Treibername
3434 bri0
6565 bri1
3454 bri2
BRI kommt von basic rate interface und ist die englische
Bezeichnung fuer den Steckanschluss eines ISDN-Graetes.
Für die Treiber setzt Du nun die folgenden Befehle ab:
isdnctrl mapping bri0 "-,3434,3435,3436"
isdnctrl mapping bri1 "-,6565,6566,6567"
isdnctrl mapping bri2 "-,3454,3455,3456"
Das bedeutet nun, dass ein auf der Nummer 3434 ankommender
Ruf nun bei den Netzinterfaces und den ttyI-Interfaces
die MSN 1 liefert und nicht mehr die MSN 3434. Ebenso
klingelt ein Ruf auf 6565 nicht mehr auf MSN 656, sondern
auf MSN 1 und der Ruf auf 3454 auch.
Nun stell auf allen Netzinterfaces Deines zentralen Routers
diese "virtuelle" MSN ein:
isdnctrl eaz raw0 1
isdnctrl eaz raw1 1
isdnctrl eaz raw2 1
isdnctrl eaz raw3 1
isdnctrl eaz raw4 1
isdnctrl eaz raw5 1
Bei dem "isdnctrl mapping" entscheidet die Position der "echten"
MSN ueber die EAZ die sie liefert. Die Position "0" ist durch
ein Minuszeichen unbelegt gelassen, da dies der "global call" ist.
Bitte benutz den global call vorerst nicht, solange Du ihn nicht
genauer kennst (alle nicht identifizierten Rufe auf unbekannter
EAZ landen auf dem "global call" mit der Nummer "0"; der klingelte
bei 1TR6 dann bei allen am selben Bus angeschlossenen Geraeten).
Nun siehst Du auch, dass ich beim Mapping noch mehr Nummern mit
angegeben habe. Hier in Deutschland werden EURO-ISDN-Anschluesse
meist mit 3 MSNs ausgeliefert. Diese drei MSNs kannst Du natuerlich
auf verschiedene EAZs mappen. Dadurch ergibt sich folgender Spiel-
raum: Draussen kannst Du router stehen haben, die verschiedene
Protokolle haben und diese anhand der angerufenen Nummer unterscheiden
(z.B. konfigurierst Du alle Netzinterfaces fuer rawip auf EAZ=1,
alle fuer syncppp auf EAZ=2 und alle fuer X.75 auf EAZ=3).
Hoffentlich ist es das, was Du gesucht hast.
Jedenfalls war ich von diesen Moeglichkeiten von I4L wahnsinnig begeistert. Cisco kann sowas (Multi-Protkoll auf einem dialer rotary group) nicht ansatzweise. ;-)
Gruesse,
Torsten
--
http://www.DInet.de/
/\ von-Siemens-Str. 12
/ \ Delta Internet GmbH 59757 Arnsberg
/ \ Netzwerkdienst & Vertrieb Tel. +49 2932 91 61 32 /______\ Fax. +49 2932 91 61 91 --------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,156 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA76880; Sat, 30 Nov 1996 13:44:05 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id NAA01959; Sat, 30 Nov 1996 13:44:57 +0100
Received: from hub-wue.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vTliY-000oIPa; Sat, 30 Nov 96 10:28 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vTlho-000Boba; Sat, 30 Nov 96 10:27 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vTlil-001IYWa; Sat, 30 Nov 96 10:28 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vTlii-001IYVE; Sat, 30 Nov 96 10:28 MET
Received: from giovanni.rhein-neckar.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vTlge-000BobC; Sat, 30 Nov 96 10:26 MET
Message-Id: <m0vTlgM-000rArC@giovanni.rhein-neckar.de>
From: girardi@giovanni.rhein-neckar.de (Norbert J. Girardi)
Subject: Re: routes?
To: isdn4linux@hub-wue.franken.de
Date: Sat, 30 Nov 1996 10:25:58 +0100 (MET)
Cc: uwe.tetzlaff@t-online.de
In-Reply-To: <m0vTby7-0000fJC@ermail02.btx.dtag.de> from "Uwe Tetzlaff" at Nov 29, 96 10:11:00 pm
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Reply-To: isdn4linux@hub-wue.franken.de
Status:
>
> Moins..
>
> Ich hab hier in der Firma 2 Rechner W95 192.168.254.2 Ne2000
> LinuX 192.168.254.1 3Com 509
> Zu Hause habe ich einen Rechner LinuX 192.168.255.1 Teles S0-16.3
>
> Also zu meinem Problem : ich teste mit ping die Verbindung :
>
> von LinuX zu Hause <-> LinuX Firma via isdn0 = geht.
> von W95 Firma <-> LinuX Firma via eth0 = geht.
> von W95 Firma <-> LinuX zu Hause via eth0 -> isdn0 = geht nicht !
> von LinuX zu Hause <-> W95 Firma via isdn0 -> eth0 = geht nicht !
>
>
> Sicherlich voellig off topic denn ich tippe auf ein Problem bei meinen routes.
>
Es waere sicher hilfreich gewesen wenn Du die 'routes' mitgeschickt
haettest ;-)
OK, versuchen wir's trotzdem mal.
Nennen wir Linux at home -> lihome = 192.168.255.1 ,
Linux at work -> liwork = 192.168.254.1 ,
W95 at work -> work95 = 192.168.254.2 .
Also, bei mir wuerde die '/etc/hosts' auf allen Rechnern _so_ aussehenen:
# ----------------- [schnippel] --------------------------
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#
# For loopbacking.
127.0.0.1 localhost
192.168.255.1 lihome
192.168.254.1 liwork
192.168.254.2 work95
# End of hosts.
# ----------------- [schnippel] --------------------------
Die '/etc/networks' auf allen Rechnern :
========================================
# ----------------- [schnippel] --------------------------
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
homenet 192.168.255.0
worknet 192.168.254.0
# End of networks.
# ----------------- [schnippel] --------------------------
Ich benutze fuer die statischen routes eine Datei in /etc/rc.d
in die ich alle routes eintrage, und die aus /etc/rc.d/rc.inet1
aufgerufen wird.
Die /etc/rc.d/rc.routes auf lihome:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig isdn0 lihome pointopoint liwork
/sbin/route add liwork isdn0
/sbin/route add default gw liwork isdn0
# Alles was raus soll geht per default ueber isdn0
# ----------------- [schnippel] --------------------------
Die /etc/rc.d/rc.routes auf liwork:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig eth0 liwork
/sbin/route add -net worknet eth0
# Alles was von worknet kommt und nach worknet soll
# muss ueber eth0
/sbin/ifconfig isdn0 liwork pointopoint lihome
/sbin/route add liwork
/sbin/route add default gw liwork isdn0
# Alle anderen gehen per default ueber isdn0
# !!!! Klappt nur wenn auch der Kernel mit
# IP FORWARDING/GATEWAYING kompiliert wurde !!!!
# ----------------- [schnippel] --------------------------
Fuer W95 tue ich mal so als sei es ein Linux, d.h.
die Uebersetzung in W95 Syntax bleibt dem Leser ueberlassen :-)
Die /etc/rc.d/rc.routes auf work95:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig eth0 work95
/sbin/route add liwork
/sbin/route add default gw liwork eth0
# alles geht per default ueber eth0 nach liwork
# der sorgt dann fuer die Verteilung
# ----------------- [schnippel] --------------------------
- Norbert
--
Norbert J. Girardi < girardi@giovanni.rhein-neckar.de >
Voice: +49 621 493417 (h) +49 621 381-3260 (w)
Neckarstr. 17, D-68549 Ilvesheim, Germany
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

Binary file not shown.

View File

@ -1,120 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA62050; Tue, 28 Jan 1997 01:28:05 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id BAA13753; Tue, 28 Jan 1997 01:29:02 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0voydq-000oJ3a; Mon, 27 Jan 97 22:31 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0voyhI-001Idqa; Mon, 27 Jan 97 22:34 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0voyhD-001IdoE; Mon, 27 Jan 97 22:34 MET
Received: from mail.space.net by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0voyad-000BlxC; Mon, 27 Jan 97 22:27 MET
Received: from euler.space.net ([194.59.182.7]) by mail.space.net with SMTP id <30273-3309>; Mon, 27 Jan 1997 22:28:57 +0100
Received: by euler.space.net (Smail3.1.29.1 #4)
id m0voyZy-000ZzNC; Mon, 27 Jan 97 22:27 MET
Received: from lx01.temic (isdn4@lx01.temic [192.9.216.171]) by temic-ech.spacenet.de (8.6.12/1.02KKe) with ESMTP id WAA14625; Mon, 27 Jan 1997 22:22:33 +0100
Received: (from isdn4@localhost) by lx01.temic (8.6.12/1.02KKe) id WAA24950; Mon, 27 Jan 1997 22:20:41 +0100
Message-Id: <Mutt.19970127222041.isdn4@lx01.temic>
Date: Mon, 27 Jan 1997 22:20:41 +0100
From: isdn4@temic-ech.spacenet.de (Karsten Keil)
To: chrk@netfire.aball.de (Christian Kleinfeld)
Cc: isdn4linux@hub-wue.franken.de
Subject: Re: Standleitung mit I4L ?
References: <32ECE75C.7C9CE872@netfire.aball.de>
X-Mailer: Mutt 0.58.1
Mime-Version: 1.0
In-Reply-To: <32ECE75C.7C9CE872@netfire.aball.de>; from Christian Kleinfeld on Jan 27, 1997 18:35:24 +0100
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Christian Kleinfeld writes:
> bestimmt steht das die Antwort in einer Doku oder FAQ, leider habe ich
> in den Dokumenten keine richtigen Hinweise gefunden deshalb poste ich
> einfach mal hier.
Du hast recht es steht nicht drin, weil es das noch nicht offiziell gibt.
> Ich moechte mit meiner TelesS0 16.0 (LinuX 2.0.25, i4l mit oder ohne
> HiSax ist egal da als Modul eingebunden <grin>) auf ueber D64S
Egal nicht geht nur mit HiSax2.0.
> Standleitung zum Provider gehen, naja Standleitung ist auch schon bis
> ins Haus gelegt und kostet Geld ;(. Meine eigentlich Frage kommt jetzt.
> Gibt es irgendwelche besonderheiten bei der Konfiguration auf eine
> Standleitung wenn ja welche ?
Also seit ca. 1 Woche laeuft HiSax mit Standleitung, unten kommt die
Anleitung.
>
> Hat schon jemand erfahrung damit gehabt ?
Es laeuft bei jemanden, der sich bestimmt auch noch bei Dir meldet mit
einer Cisco als Gegenstelle. Wichtig KeepAlive bei Cisco ausschalten !!!
Falls Du Prbleme hast, Mail an meine Adresse keil@temic-ech.spacenet.de,
dann gibt es Telefonsupport.
Fuer den leased Mode ist eine vorab version aus dem CVS Entwickler tree
notwendig, Anleitung war im November vom Fritz auf der Liste, Du bekommst
eine Kopie per extra Mail.
Anleitung zur Installation des isdn trees.
1. Einen 2.0.X kernel mit HiSax 1.X (wichtig mit HiSAX !)
2. ins CVS isdn wechseln und
./std2kern -d
aufrufen
4. Im kernel make (menu)config;make dep; make clean; make modules
Hier ein Beispielscript zum leased mod, module werden direkt aus dem
kernel geladen (kein make module_install notwendig)
Alle Telefonnummern sind erlaubt, sie spielen keine Rolle.
#!/bin/sh
cd /usr/src/linux/modules
/sbin/insmod -m isdn.o > /tmp/isdn/isdn.map
/sbin/insmod -m hisax.o type=3 io=0x180 protocol=1 irq=10 id=HiSax \
> /tmp/isdn/hisax.map
/bin/cat /System.map /tmp/isdn/isdn.map /tmp/isdn/hisax.map | \
sort > /tmp/isdn/System.map
# Full debug nur fuer tests , muss wenns geht runtergesetzt werden
/sbin/telesctrl HiSax 1 0xffff
/sbin/telesctrl HiSax 11 0xff
# normal debug
#/sbin/telesctrl HiSax 1 0x31
#/sbin/telesctrl HiSax 11 0x01
# Setzen in leased Mode
/sbin/telesctrl HiSax 5 0
# interface
/sbin/isdnctrl addif isdn0
# wichtig
/sbin/isdnctrl huptimeout isdn0 0
# binde Interface an 1. BChannel (,1 fuer 2.)
/sbin/isdnctrl bind HiSax,0
# dummy
/sbin/isdnctrl eaz isdn0 1
/sbin/isdnctrl l2_prot isdn0 hdlc
# dummy
/sbin/isdnctrl addphone isdn0 out 2
/sbin/isdnctrl addphone isdn0 in 3
/sbin/isdnctrl l3_prot isdn0 trans
# nur bei cisco
#/sbin/isdnctrl encap isdn0 cisco-h
# interface starten
/sbin/ifconfig isdn0 192.1.1.1 up
# route zur Gegenstelle
/sbin/route add 192.1.1.2 isdn0
mv /tmp/isdnctrl.log /tmp/isdnctrl.log.o
cat /dev/isdnctrl >/tmp/isdnctrl.log &
--
Dipl.Ing. Karsten Keil Microcontroller Developement
email: keil@temic-ech.spacenet.de Temic Semiconducters GmbH
Any opinions in this posting are my own and not those of my present
or previous employers.
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,98 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA92926; Wed, 12 Feb 1997 18:49:14 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id SAA23322; Wed, 12 Feb 1997 18:50:16 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vudjc-000oIya; Wed, 12 Feb 97 13:24 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vudg4-001ITGa; Wed, 12 Feb 97 13:20 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vudfw-001ITEE; Wed, 12 Feb 97 13:20 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vudfL-000BlxC; Wed, 12 Feb 97 13:19 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vudft-001ITEE; Wed, 12 Feb 97 13:20 MET
To: isdn4linux@hub-wue.franken.de
Xref: oops de.alt.comm.isdn4linux:1555
Newsgroups: de.alt.comm.isdn4linux
From: keil@temic-ech.spacenet.de (Karsten Keil)
Subject: Re: Isdn4Linux an Standleitung?
X-Newsreader: TIN [version 1.2 PL2]
Organization: temic
Message-Id: <E5HLEu.Kn@temic-ech.spacenet.de>
References: <5ds4i9$9ut$1@News.CoLi.Uni-SB.DE>
Date: Wed, 12 Feb 1997 11:04:06 GMT
Lines: 63
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Joerg Dorchain (dorchain@mpi-sb.mpg.de) wrote:
: Ist es möglich mit, mit einer Teles- (oder auch sonstigen Karte),
: Isdn4Linux an einer Standleitung zu betreiben? Genauer gesagt an einer
: SoFMV-Verbindungen (Die Variante mit 1 B-Kanal).
: Falls ja, kann mir jemand eine Kurzanleitung schicken?
Ist mit dem HiSax aus dem CVS Tree moeglich.
Wie Du an den CVS tree kommst ging ein paar mal ueber die Liste.
(Das letzte Mal mit Subject: Re: Absturz des ISDN
am 5 Feb 1997.)
Anleitung zur Installation des isdntrees.
1. Einen 2.0.X kernel mit HiSax 1.X (wichtig mit HiSAX)
2. ins CVS isdn wechseln und
./std2kern -d
aufrufen
4. Im kernel make (menu)config;make dep; make clean; make modules
Hier ein Beispielscript zum leased mod, module werden direkt aus dem
kernel geladen (kein make module_install notwendig)
Alle Telefonnummern sind erlaubt, sie spielen keine Rolle.
#!/bin/sh
cd /usr/src/linux/modules
/sbin/insmod -m isdn.o > /tmp/isdn/isdn.map
/sbin/insmod -m hisax.o type=3 io=0x180 protocol=1 irq=10 id=HiSax \
> /tmp/isdn/hisax.map
/bin/cat /System.map /tmp/isdn/isdn.map /tmp/isdn/hisax.map | \
sort > /tmp/isdn/System.map
# Full debug nur fuer tests , muss wenns geht runtergesetzt werden
/sbin/telesctrl HiSax 1 0xffff
/sbin/telesctrl HiSax 11 0xff
# normal debug
#/sbin/telesctrl HiSax 1 0x31
#/sbin/telesctrl HiSax 11 0x01
# Setzen in leased Mode
/sbin/telesctrl HiSax 5 0
# interface
/sbin/isdnctrl addif isdn0
# wichtig
/sbin/isdnctrl huptimeout isdn0 0
# binde Interface an 1. BChannel (,1 fuer 2.)
/sbin/isdnctrl bind HiSax,0
# dummy
/sbin/isdnctrl eaz isdn0 1
/sbin/isdnctrl l2_prot isdn0 hdlc
# dummy
/sbin/isdnctrl addphone isdn0 out 2
/sbin/isdnctrl addphone isdn0 in 3
# interface starten
/sbin/ifconfig isdn0 192.1.1.1 up
# route zur Gegenstelle
/sbin/route add 192.1.1.2 isdn0
mv /tmp/isdnctrl.log /tmp/isdnctrl.log.o
cat /dev/isdnctrl >/tmp/isdnctrl.log &
--
Dipl.Ing. Karsten Keil Microcontroller Developement
email: keil@temic-ech.spacenet.de Temic Semiconducters GmbH
Any opinions in this posting are my own and not those of my present
or previous employers.
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,87 +0,0 @@
Return-Path: a0037@stud.uni-bayreuth.de
Newsgroups: de.alt.comm.isdn4linux
Subject: Re: LZS: Max will es nicht annehmen
Reply-To: Juergen Leising <a0037@stud.uni-bayreuth.de>
On Sat, Mar 06, 1999 at 04:52:45PM +0100, Karsten Gessner wrote:
> kann mal jemand die Schritte in Kurzform posten,
> die zu einer lauffähigen Version der lzscomp führen "müssten" !
Hi -
- das Ganze geht nur fuer kernel 2.1.x / 2.2.x
- Neue Dateien von http://www.ibh-dd.de/~beck/stuff/lzs4i4l/ holen
- ccp.c in das ipppd-Unterverzeichnis der isdn4k-utils kopieren
- isdn_lzscomp.c nach /usr/src/linux-2.2.1/drivers/isdn kopieren (oder welcher
kernel eben verwendet wird)
- /usr/src/linux-2.2.1/drivers/isdn/Makefile editieren: Wenn das ISDN-Subsystem
modular gebaut ist, sieht das Makefile dann so aus:
ifeq ($(CONFIG_ISDN),m)
M_OBJS += isdn.o
O_TARGET += isdn.o
O_OBJS += isdn_net.o isdn_tty.o isdn_v110.o
OX_OBJS += isdn_common.o
ifdef CONFIG_ISDN_PPP
O_OBJS += isdn_ppp.o
M_OBJS += isdn_bsdcomp.o
M_OBJS += isdn_lzscomp.o
endif
- kernel neu kompilieren
- isdn-utilities neu kompilieren
- zusaetzlich beim ISDN-Module laden muessen die Kompressions-Module auch noch
geladen werden, z. B.
/sbin/insmod isdn_bsdcomp
/sbin/insmod isdn_lzscomp comp=8 debug=3
comp und debug je nach Bedarf aendern; hierzu das README des obigen URLS lesen
- /etc/ppp/ioptions.ipppx (je nach dem, welcher ipppd einen kompressionsfaehigen peer
ansprechen soll)
z. B.
bsdcomp 15,15
lzs 1:4
1 ist die Zahl der histories (so 'was wie frames), 4 der checkmode (Fehlerkorrektur)
aber diese Werte haengen ganz vom peer ab; welche Werte sind richtig?
- Hierzu wieder das README lesen
- Debugging hoch genug einstellen, um die Kommunikation zwischen peer und eigenem
Rechner verfolgen zu koennen; demgemaess die Werte fuer die Module aendern/einstellen.
- kann der peer kein ccp: Pech gehabt
- ist der peer eine pre-RFC-Ascend: Pech gehabt.
Wer fuer diese beiden Faelle eine Loesung hat - mail an mich, bitte.
Tschuess, Juergen.
--
*****************************************************************
* Juergen Leising, E-Mail: juergen.leising@stud.uni-bayreuth.de *
* http://www.stud.uni-bayreuth.de/~a0037/ *
*****************************************************************
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]
--
I have seen her. That is enough, perhaps.
Pug smiled. "You are a rare man."
Raymond E Feist - The King's Buccaneer
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@listserv.isdn4linux.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body.

View File

@ -1,292 +0,0 @@
Date: Tue, 29 Oct 1996 03:57:50 +0000 (GMT) From: Rainer May <r_may@khavi.desaster.heide.de> X-Sender: r_may@kahvi.desaster.heide.de To: isdn4linux@hub-wue.franken.de
Subject: i4l und Masquerading
X-Flags: MN
Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
Nachdem ich leichtsinnig genug irgendwo mal verkuendet hatte, dass ich hier ein LAN hinter einem Linux-Server mit i4l bei meinem Provider einspeise, platzte mein Postfach aus den Naehten. Bevor ich alles immer wieder aufs Neue abtippe, hab' ich das Procedere in einer Art FAQ aufgeschrieben.
Vielleicht interessiert sich ja wer dafuer. Wer den Text in irgendwelche Webpages aufnehmen, ausdrucken und aufs Klo haengen oder sonstwas damit machen will, meinen Segen hat er.
Rainer
###########################
isdn4linux und IP-Masquerading im LAN
-------------------------------------
Problem: "Ich habe ein lokales Netzwerk (LAN), in dem Rechner
der verschiedensten Plattformen - Win95, Win311, NT,
Amiga (AmiTCP) und MacIntosh (MacTCP) - ueber einen
Linux-Router mit der Aussenwelt verbunden werden
sollen. In der Linux-Maschine steckt eine ISDN-
Karte. Von meinem Provider bekomme ich dynamisch
eine IP-Adresse zugewiesen, wenn die Verbindung auf-
gebaut wird. Nun moechte ich aber nicht nur vom
Linux-Router direkt, sondern von jedem Rechner im
LAN ins Internet kommen. Wie?"
Loesung: "Die meiste Arbeit ist auf Linux-Seite zu erledigen.
Zunaechst einmal braucht man einen Kernel mit ein-
gebautem IP-Forwarding und Masquerading. D.h., bei
"make config" muessen folgende Fragen mit "Y" be-
antwortet werden:
Prompt for development and/or incomplete code/drivers Y
Enable loadable module support Y
Networking support Y
Network firewalls Y
TCP/IP networking Y
IP: forwarding/gatewaying Y
IP: firewalling Y
IP: masquerading Y
PPP (point-to-point) support (wenn PPP zum Provider) Y
SLIP (serial line) support Y
Ethernet (10 or 100Mbit) (oder Arcnet oder ...) Y
ISDN support [1] M
Support synchronous PPP (wenn ipppd benutzt wird) Y
HiSax SiemensChipSet driver support M
(dann den HiSax fuer die ISDN Karte waehlen)
Anschliessend den Kernel wie ueblich mit "make dep",
"make clean", "make zImage", "make modules" und
"make modules_install" bauen.
Auf das Installieren von PPP und der ISDN-Treiber
wird an anderer Stelle ausfuehrlich eingegangen.
Hier geht es weiter, wenn folgende Voraussetzungen
erfuellt sind:
* Das ISDN-Subsystem laeuft, d.h., von Linux aus
kann eine Verbindung zum Provider hergestellt
werden.
* Das lokale Netzwerk (Ethernet usw.) laeuft auch,
vorzugsweise unter Verwendung "freier" IP-
Adressen (z.B. 192.168.xx.xx), und der Linux-Host
kann von allen anderen Rechnern im LAN erreicht
werden (z.B. per ping).
Nun gilt es, zweierlei zu erreichen:
* Zugriffe von einem beliebigen Rechner im LAN
auf eine nicht-lokale IP-Adresse sollen den
Linux-Router veranlassen, eine Verbindung zum
Provider aufzubauen; und
* Der Linux-Router soll zwar die Rechner im LAN
mit dem Provider verbinden, diesem gegenueber
aber verheimlichen, dass nicht der Router
selbst Empfaenger/Absender der entsprechenden
IP-Pakete ist.
Beginnen wir mit dem zweiten Punkt. Dieses "Ver-
heimlichen" hat nichts damit zu tun, dass man
seinen Provider hintergehen will (obwohl man auf
diese Weise auch selbst Provider spielen und
seine Kunden klammheimlich ueber _einen_ billigen
"Privat-Zugang" ins Internet bringen kann), son-
dern mit technischen Notwendigkeiten. Denn nur
das Interface des Linux-Rechners, das die Verbin-
dung zum Provider herstellt, bekommt von diesem
eine IP-Adresse verpasst, die der Provider auch
kennt. Traegt z.B. der Router im LAN die lokale
IP-Adresse 192.168.1.1, und ein anderer Rechner
die 192.168.1.2, dann kennt der Provider diese
Adressen ja nicht. Er weist z.B. dem PPP-Inter-
face des Routers die Adresse 123.234.345.99 zu -
und nur bei Paketen aus dem Internet, die an
diese Nummer adressiert sind, weiss er auch, an
wen er die Pakete schicken soll. Daher muss der
Router Pakete von anderen Rechnern im LAN "mas-
kieren" - mit seiner eigenen, dynamisch zugewie-
senen Adresse (und dabei natuerlich Buch darueber
fuehren, was an wen von wem kam, um die Antwort-
Pakete richtig zuzustellen).
Zum Glueck ist diese Funktion in den Linux-Kernel
=>2.0.0 schon eingebaut (s.o.) - sie nennt sich
"IP-Masquerading". Vereinfacht ausgedrueckt geht
das so:
Ein LAN-Rechner schickt ein Paket ab, das neben
IP-Nummer und Ziel-Port des Empfaengers auch die
"Absender-Adresse" in Form einer IP-Nummer und
eines Antwort-Ports traegt. Der maskierende
Router nun ersetzt die Absender-IP durch seine
eigene und den Ruecksende-Port durch einen freien
aus seinem Fundus. Unter dieser "freien" Port-
nummer werden die originalen Absender-Daten ge-
speichert. Kommt nun ein Antwort-Paket aus dem
Internet an diesen Port, werden dessen Empfaenger-
Adresse und -Port mit der gespeicherten Ruecksende-
Adresse ueberschrieben und an den LAN-Rechner wei-
tergeleitet. Paket fuer Paket.
Leicht einsehbar ist uebrigens, dass dieses Verfahren
nur mit Diensten funktioniert, bei denen auch eine
Ruecksende-Adresse angegeben wird. Dazu gehoeren
u.a. telnet, http, ftp, irc (eingeschraenkt), nicht
aber Echo (ping).
Zurueck zur Praxis. Damit das Masquerading auch
bei FTP und IRC funktioniert, werden zunaechst
zwei Module geladen:
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_irc
Dann werden die Forward-Rules des Kernel zum
Masquerading gezwungen:
/sbin/ipfwadm -F -a m -P all -S 192.168.123.0/24 -D 0.0.0.0/0 -b [2]
In diesem Beispiel werden im LAN die IP-Adressen
192.168.123.1 bis 192.168.123.254 benutzt. Legen
wir zur Vereinfachung fest, der Linux-Router habe
dabei die Adresse 192.168.123.1
Obige Zeile bewirkt, dass IP-Pakete, die von
192.168.123.x ausgehen und an wenauchimmer gerichtet
sind, maskiert werden. Das hat den Nachteil, dass
auch innerhalb des LAN fleissig drauflosmaskiert
wird, was man aber durch Einfuegen weiterer Rules
vermeiden kann. "man ipfwadm" sei hier zur Lektuere
empfohlen.
Das "Verstecken" des LAN vor dem Provider haben wir
nun erreicht. Jetzt gilt es, bei Bedarf einen auto-
matischen Verbindungsaufbau zu erzwingen.
Dafuer ist es zunaechst noetig, die anderen Rechner
im LAN dazu zu bringen, alle fuer "Ausserhalb" be-
stimmten IP-Pakete an den Linux-Router zu uebergeben
und diesem die Weiterleitung zu ueberlassen.
Nichts leichter als das: Sowohl bei den verschiedenen
Windows-Versionen, als auch beim AmiTCP und beim
MacTCP gibt es in der Konfiguration den Stichwort
"Default-Gateway" oder nur "Gateway". Hier ist die
_lokale_ IP-Adresse des Routers einzutragen (denn
die spaetere Adresse, die vom Provider kommt, ist
ja erstens noch nicht bekannt und aendert sich zwei-
tens bei jedem Anruf).
Letzter Schritt ist dann, das "dial-on-demand" ein-
zurichten. In Verbindung mit isdn4linux gibt es dafuer
zwei Moeglichkeiten:
* Man verwendet synchrones PPP fuer die Verbindung
zum Provider, also den "ipppd". Dann ist nichts
weiter zu tun als dafuer zu sorgen, dass immer
die Default-Route des Routers auf das entsprechende
ipppx-Interface weist. Vorsicht: Beim Verbindungs-
abbau loescht der Kernel diese Route! Sie muss
also z.B. in der Datei /etc/ppp/ip-down neu gesetzt
werden.
Das Risiko bei diesem Verfahren sind Programme auf
den LAN-Rechnern, die mehr oder weniger regelmaessig
Nameserver-Requests, Keepalive-Pakete oder ARP-
Broadcastings erzeugen - dann stellt naemlich der
Router jedesmal eine Verbindung zum Provider her.
Die Telekom wird's danken.
Uebrigens kann es passieren, dass manche aus dem
LAN initiierte Verbindungen recht lange auf Antwort
warten. Ich weiss nicht, ob Kernel oder ipppd das
"ausloesende" Paket verschlucken, oder die Antwort
darauf unterschlagen; ich weiss aber, dass es
hilft, z.B. bei Netscape wenige Sekunden nach
Anforderung der ersten Seite auf den "roten Knopf"
zu druecken und die Seite nochmals anzufordern.
Wie bereits erwaehnt: Die Konfiguration des ipppd
wird an anderer Stelle ausfuehrlicher und kompeten-
ter erklaert, als ich es koennte [3]
* Benutzt man asynchrones ppp oder gar SLIP/CSLIP
fuer die Verbindung zum Provider, kann man das
Programm "diald" [4] verwenden. Es bietet zudem
den Vorteil, extrem stark konfigurierbar zu sein;
so kann man z.B. festlegen, dass zwischen 0900
und 1200 grundsaetzlich keine Verbindung aufgebaut
wird, dass Nameserver-Anfragen eine Verbindung zwar
nicht aufbauen, aber offenhalten koennen u.v.m.
Wer sich mit diesen Konfigurationsmoeglichkeiten
nicht herumschlagen mag, braucht das indes auch
nicht - die Default-Konfiguration kann man ohne
Gefahr fuer Leib und Geldboerse uebernehmen :-)
So. Wenn jetzt das Masquerading eingerichtet wurde.
Wenn der Linux-Router auf allen LAN-Rechnern als
Gateway eingetragen wurde. Wenn ein "ping abc.edu",
eingetippt auf der Console des Routers, eine Verbin-
dung zum Provider aufbaut. _Dann_ sollte damit auch
fuer alle Rechner im LAN der Weg ins Internet frei sein.
Troubleshooting:
Problem: "Alles schoen und gut. Aber wenn ich z.B. von der
W95-Kiste aus mit Netscape eine Seite aufrufe,
bekomme ich als Antwort nur "unknown host" Loesung: "Was ist denn auf der "Win95-Kiste" als Nameserver
eingetragen? Sofern auf dem Router kein eigener
NS laeuft, muss natuerlich auf allen LAN-Rechnern
der NS des Providers eingetragen sein."
Problem: "Die Adressen werden jetzt aufgeloest, aber statt
der gewuenschten Seite bekomme ich die Meldung
"no route to host"!"
Loesung: "Bitte pruefen:
* Ist auf dem LAN-Rechner der Linux-Router als
Gateway eingetragen (manche "Betriebssysteme"
muss man komplett resetten, bevor Sie da eine
Aenderung mitbekommen)?
* Liegt auf dem Router die Default-Route auf dem
"Bereitschafts-Interface" zum Provider (z.B.
auf ippp0 bei synch. PPP, oder auf sl0 bei
diald (auch wenn die "echte" Verbindung nachher
per ppp0 geht - diald benutzt ein SLIP-Interface
als "Tuerklingel") ?
* Erzwingt der Provider die Verwendung von Proxies?
Dann muessen die IP-Adressen der Provider-Proxies
auch in den entsprechenden Programmen der LAN-
Rechner eingetragen sein!
Problem: "Warum sind bei diesem FAQ keine ausfuehrlichen
Beispielscripte fuer ipppd, diald usw.?" Loesung: "Weil dies eine FAQ ist und keine eierlegende
Wollmilchsau. Ein Beispiel fuer diald haengt
trotzdem hinten dran."
Problem: "Was muss ich fuer diese supertolle FAQ bezahlen?" Loesung: "Wenn es nach meiner Frau ginge, mindestens 250
Mark - so hoch veranschlagt sie den Abend, den ich
mit Schreiben verbrachte und der ihr daher entging.
Da es aber nicht nach meiner Frau geht, sondern nach
mir ;-), steht die FAQ unter GPL. Kost' also nix."
################################################################
[1] Wer mag, kann die ISDN-Treiber natuerlich auch direkt in den
Kernel einbauen, anstatt sie als Module zu verwenden.
[2] Das Programm ipfwadm gibt es per Anon-FTP als
ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.0.tar.gz
[3] Bernhard Hailer hat das Ganze auf seinen www-Seiten sehr
ausfuehrlich und verstaendlich beschrieben. Die URL ist
http://www.chemie.uni-muenchen.de/ac/boehm/beh.html
################################################################
Beispielscripte fuer die Verwendung von isdn4linux mit diald. Die verbindung zum provider wird per X75 aufgebaut, das Protokoll ist dann PPP, ohne PAPpy/CHAPpy usw. Ein einfacher Login. Und Telefonnummer, Name sowie Passwort sind natuerlich gefaelscht :-)
-------------------
# zuerst wird - gleich beim Booten - diald "scharf gemacht" #
# /etc/rc.d/rc.diald
/usr/sbin/diald /dev/ttyI4 -m ppp local 192.168.90.9 remote 192.168.90.1 \
defaultroute dynamic modem crtscts lock connect "chat -v -f \
/etc/ppp/chat.provider"
#
-------------------
#
# /etc/ppp/chat.provider
#
TIMEOUT 240 "" AT&E1234 OK ATD047110815 ogin: Puser sword: topsecret #
-------------------
--------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,122 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA15640; Sun, 5 Jan 1997 18:04:15 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id SAA22736; Sun, 5 Jan 1997 18:05:24 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vgt53-000oLra; Sun, 5 Jan 97 14:57 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vgt3F-001IV9a; Sun, 5 Jan 97 14:55 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vgt3C-001IV8E; Sun, 5 Jan 97 14:55 MET
Received: from wildsau.idv.uni-linz.ac.at by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vgt3I-000BmIC; Sun, 5 Jan 97 14:55 MET
Received: (from herp@localhost) by wildsau.idv.uni-linz.ac.at (8.6.12/8.6.9) id OAA19933 for isdn4linux@hub-wue.franken.de; Sun, 5 Jan 1997 14:52:07 +0100
From: Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at>
Message-Id: <199701051352.OAA19933@wildsau.idv.uni-linz.ac.at>
Subject: ip-masq, sample setup
To: isdn4linux@hub-wue.franken.de
Date: Sun, 5 Jan 1997 14:52:07 +0100 (MET)
X-Mailer: ELM [version 2.4 PL25]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
since there have been question about ip-masquerading recently, here
is a sample setup. note: this is no isdn-setup anymore (it was before),
but the machine now has two ethernet cards (the customer bought a leased
line). note also that there is a particular network which stupidly has
been setup as internal network allthough the numbers have already been
officially assigned elsewhere. thanks to "daten technik" for this
very clever network design ... :-(
some words to the configuration: the maschine has two network cards,
one for the internal network, one with a real IP address.
eth0: 10.0.0.0 internal
eth0:1 192.34.0.0 "internal"
eth1: x.x.x.x external, real address
you may find the setup for the masquerading part a bit strange.
however, I chosed to configure that based on network cards, not on
ip-numbers. this can be done using the "-W" option from ipfwadm.
so, the last lines below read "accept all traffic from card
1 unchanged, but masquerade it on card 2". this makes sense, since card 2
is the only one with a real ip-addess.
-----------------------------------------------------------------------------
#!/bin/sh
iw=/sbin/ipfwadm
h=linux.xxxxxxx.co.at
#
# start with a clean configuration...
#
$iw -If
#
# default policy: paranoid...
#
$iw -Ip deny
#
# allow only ICMP ECHO REPLY from outside.
# this allows us to ping other hosts, but disables
# others to ping ourselves.
#
$iw -Ia accept -S 0/0 0 -D $h -P icmp -W eth1
$iw -Ia deny -S 0/0 -D $h -P icmp -W eth1
#
# allow incoming smtp connections from outside (internet)
# force local users to use mail-relay
#
$iw -Ia accept -S 0/0 -D xxx.xxx.xxx.xx smtp -P tcp -W eth1
$iw -Ia accept -S 0/0 -D 192.34.70.254 smtp -P tcp -W eth0
$iw -Ia accept -S 0/0 -D 10.0.0.1 smtp -P tcp -W eth0:1
$iw -Ia accept -S 0/0 -D 127.0.0.1 smtp -P tcp -W lo
$iw -Ia deny -S 0/0 -D 0/0 smtp -P tcp
#
# loopback, eth0 and eth0:1 is allowed to do (nearly) everything, of course ...
#
$iw -Ia accept -S 0/0 -D 0/0 -W lo
$iw -Ia accept -S 0/0 -D 0/0 -W eth0
$iw -Ia accept -S 0/0 -D 0/0 -W eth0:1
#
# domain may only speak with domain
#
$iw -Ia accept -S 0/0 domain -D $h domain -P tcp -W eth1
$iw -Ia accept -S 0/0 domain -D $h domain -P udp -W eth1
#
# allow incoming traffic once the connection has been built.
# - note: this is the same as the cisco-keyword "established"
#
# nota bene: since we already accept everything from lo, eth0 and eth0:1,
# it is not (seems not to be) neccessary to check the SYN flag, too.
#
$iw -Ia accept -S 0/0 -D $h -k -W eth1
#
# allow yyyyyy to do some service
#
$iw -Ia accept -S yyyyyyy.yyyyyy.co.at -D $h -W eth1
#
# allow yyyyyy ftp
#
$iw -Ia accept -S ftp.yyyyyy.co.at -D $h -W eth1
$iw -Ia accept -S ftp.yyyyyy.co.at -D $h -W eth1
#
$iw -Ia accept -S $h -D 0/0 -W eth1
#
# now for the masquerading part
#
$iw -Ff
$iw -Fp deny
$iw -Fa accept -S 0/0 -D 0/0 -W eth0
$iw -Fa accept -S 0/0 -D 0/0 -W eth0:1
$iw -Fa masquerade -S 0/0 -D 0/0 -W eth1
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,142 +0,0 @@
Sender: Okane@em.uni-frankfurt.de
Date: Fri, 08 Nov 1996 20:31:01 +0100
From: "Robert O'Kane" <okane@em.uni-frankfurt.de> Organization: OTHERSPACE
To: Matthias Hessler <hessler@wi-inf.uni-essen.de> Subject: Re: Though put over multiple ISDN channels
Matthias Hessler wrote:
>
> Hi Robert,
>
> ich kann Dir bei den Durchsatzproblemen nicht helfen, allerdings wuerden wir
> uns gerne freuen, wenn wir die FAQ um ein paar Hinweise zum Channel-Bundling
> erweitern koennten (es kommt immer wieder zu Fragen in dieser Richtung).
>
> Koenntest Du uns Deine Konfigurationsskripte zukommen lassen? Oder gar
> einige Frage/Anwort-Paare - um anderen beim Ueberwinden der schwierigsten
> Huerden zu helfen?
>
> Vielen Dank.
>
> Matthias
Hello,
Attached is the script I use to setup multiple channels to be used as 1 network device. Mind you the throughput isn't really great. So it might not be worth the effort until we can get the network device to feed more data to the ISDN device.
Please feel free to add this to the FAQ if you like.
Bob.
--
---------------------------------------------- Unfortunatly, I find language (like politics) necessary for humans.
Leider finde Ich Sprache (wie Politik) fuer die Menschen notwendig.
---------------------------------------------- Robert O'Kane
OTHERSPACE
Founding Member and Linker
URL : http://www.rz.uni-frankfurt.de/~okane email: okane@em.uni-frankfurt.de
---------------------------------------------- Ok, here is a script used to set up multiple isdn "devices" to be used as one for a network.
LOTS here were picked up from the Isdn$Linux Mail list ;-}
Maybe someone else can use things in here.
Included:
startisdn <- script to setup the ISDN and network devices
NOTE: 1: Depending on your setup (modules, card_id's, etc..) you
: may want to bind the devices to certain cards/channels
: so things work the way you want.
2: I couldn't get any 'real' speed up. The maximum throughput
: I got was arround 10K - 12K. YMMV (You mileage may vary)
##################################################################### #####################################################################
: /usr/local/isdn/startisdn
#! /bin/sh
#####################################
## Startup script for ISDN network.
##
## On "other" machine, reverse REMOTE and LOCAL ##
REMOTE_IP="machine2"
REMOTE_NUMBER0="xxxxxx35"
REMOTE_NUMBER1="xxxxxx36"
REMOTE_NUMBER2="xxxxxx38"
REMOTE_NUMBER3="xxxxxx39"
LOCAL_IP="machine1"
LOCAL_NUMBER0="xxxxxx46"
LOCAL_NUMBER1="xxxxxx47"
LOCAL_NUMBER2="xxxxxx49"
LOCAL_NUMBER3="xxxxxx50"
CHANNELS="1 2 3"
SYSPATH="/sbin"
ISDNCTRL="/sbin/isdnctrl"
ENCAP="rawip"
DEVICE="isdn0"
SLAVE="isdnsl"
case "$1" in
start)
### install modules if not there, ASSUME teles irq bug
### found in the original teles driver.
if [ ! "`lsmod | grep teles`" ]; then
echo "teles module NOT found: INSTALLING"
modprobe telesall
sleep 1
rmmod telesall
sleep 1
modprobe telesall
fi
$ISDNCTRL addif $DEVICE
$ISDNCTRL eaz $DEVICE $LOCAL_NUMBER0
$ISDNCTRL addphone $DEVICE in "*$REMOTE_NUMBER0"
$ISDNCTRL addphone $DEVICE out $REMOTE_NUMBER0
$ISDNCTRL l2_prot $DEVICE x75i
$ISDNCTRL l3_prot $DEVICE trans
$ISDNCTRL encap $DEVICE $ENCAP
$ISDNCTRL huptimeout $DEVICE 60
$ISDNCTRL chargehup $DEVICE off
$ISDNCTRL ihup $DEVICE off
$ISDNCTRL secure $DEVICE on
$ISDNCTRL sdelay $DEVICE 15
for i in $CHANNELS ; do
$ISDNCTRL addslave $DEVICE $SLAVE$i
$ISDNCTRL eaz $SLAVE$i $[LOCAL_NUMBER$i]
$ISDNCTRL addphone $SLAVE$i in "*$[REMOTE_NUMBER$i]"
$ISDNCTRL addphone $SLAVE$i out $[REMOTE_NUMBER$i]
$ISDNCTRL l2_prot $SLAVE$i x75i
$ISDNCTRL l3_prot $SLAVE$i trans
$ISDNCTRL encap $SLAVE$i $ENCAP
$ISDNCTRL huptimeout $SLAVE$i 30
$ISDNCTRL chargehup $SLAVE$i off
$ISDNCTRL ihup $SLAVE$i off
$ISDNCTRL secure $SLAVE$i on
$ISDNCTRL sdelay $SLAVE$i 15
done
$SYSPATH/ifconfig $DEVICE inet $LOCAL_IP \
pointopoint $REMOTE_IP metric 1
$SYSPATH/route add -host $REMOTE_IP $DEVICE
;;
stop)
$SYSPATH/ifconfig $DEVICE down
$ISDNCTRL delif $DEVICE
;;
hangup)
$ISDNCTRL hangup $DEVICE
;;
*)
echo "$0 : <start|stop|hangup>"
exit 1
;;
esac
#####################################################################

View File

@ -1,133 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA65252; Wed, 12 Feb 1997 08:00:58 +0100
Received: from anna-atm.rz.uni-frankfurt.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id IAA07066; Wed, 12 Feb 1997 08:02:04 +0100
Received: from bob.renderserve.de (actually dialin055.rz.uni-frankfurt.de)
by amalia-atm.rz.uni-frankfurt.de with Local SMTP (PP);
Wed, 12 Feb 1997 05:02:14 +0000
Sender: Okane@em.uni-frankfurt.de
Message-Id: <330125B3.5921AC58@em.uni-frankfurt.de>
Date: Wed, 12 Feb 1997 03:06:43 +0100
From: "Robert O'Kane" <okane@em.uni-frankfurt.de>
Organization: OTHERSPACE
X-Mailer: Mozilla 3.01Gold (X11; I; Linux 2.0.29 i586)
Mime-Version: 1.0
To: Matthias Hessler <hessler@wi-inf.uni-essen.de>
Cc: joe@odel.on.ca, isdn4linux@hub-wue.franken.de
Subject: Re: MP
References: <199702111612.RAA03177@james.mathes.uni-essen.de>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Status:
Matthias Hessler wrote:
>
> Hi Joe,
>
> On Mon, 10 Feb 1997 17:48:23 -0500 (EST), joe@odel.on.ca wrote:
> > Hi ISDN4Linux'ers. I have a two Spellcaster BRI cards and two
> > linux boxes. One box is at my ISP's side and the other is in my office.
> > I have obtained and compiled ISDN4LINUX, spellcasters I4L driver without
> > many problems. I have ISDN support compiled into the kernel as well as
> > SyncPPP support and load the driver (sc.o) with modprobe with no problems.
> > I have a couple of questions I hope aren't too stupid. I have a feeling
> > they have been answered in German, but unfortunately I don't (yet) speak
> > or read German very well so please excuse my ignorance.
>
> No worries - you are very welcome to write in English.
>
> I'm not using the MP stuff, but I got the script from Robert O'Kane
> that he uses. It is appended at the end. From the first look it
> doesn't look too much different - but maybe you find something.
>
> As far as I understand the ipppd can dial out on demand (if the route
> exists and ip packages are coming). Or you can trigger the dialing
> with "isdnctrl dial". Very strange that you have to do latter at
> _both_ stations. That sounds very wrong.
>
Hello, (Robert here :-0 )
The scripts I sent in are for the "built-in" function of ISDN4Linux
when
using the rawip/ethernet/... encapsulation. PPP (SyncPPP) encapsulation
doesnt
seem to be supported for the "automatic" functions of I4L!
MIXING THE SLAVE (autodial/autohangup) functions with SyncPPP doesn't
work:
1: reliably- relying on the auto hangup appears to work until the 2nd
-> 5th
time. Then the kernel gets "a bit" disturbed.
2: Not at all- auto dial never works with syncPPP. As far as I know
(and can
see), the only way to add channels to SyncPPP is to
MANUALLY
"addlink" and "removelink" the devices. Of course you
need to
have the devices pre-defined for the I4L system and for
the PPP
program.
I am still looking over (and into) these issues and hope to have more
later.
But for now I must say that the scripts I sent to the FAQ (and the
list?) are
for the rawip/ethernet encapsulations. SyncPPP is another animal (user
space)
and will require other links between the system (kernel) and the ppp
program
(user space).
I am also still (ja ja...) porting the ITK Columbus Card driver from
Frank Mohr
to the HiSax device driver system. (Thanks Karsten!!)
> > I have read the faq but I don't seem to be able to make it work.
>
> Did you get the right FAQ? There is an english version available on:
> ftp://ftp.franken.de/pub/isdn4linux/FAQ
> and:
> http://www.lrz-muenchen.de/~ui161ab/www/isdn/
> which also contains some bug fixes for the MPPP stuff. Also there are
> two ways of using multiple links with isdn4linux. One is with ipppd,
> the other is with rawip.
>
> More we can't say without more logging. If you can't locate your
> problem just log the handshaking of the ipppd (see FAQ how to do
> that). Then we can say more.
>
>
> Other than that I'm VERY interested in hearing about this spellcaster
> BRI card - and the driver you were talking about. Can you please
> send me more info on that so that we can incorporate it into the
> FAQ? There are often questions about isdn4linux in America and so
> far we don't have any information about what works and what works
> not... :-(
> Please, already a www link would help very much... Are there more
> cards available but the spellcaster? How expensive is it and are you
> using the EURO-ISDN standard?
>
> Bye,
> Matthias
>
<patch stuff deleted as it doesn't help here: See appropriate FAQ >
-Happy ISDN'ing
-Robert O'Kane
--
----------------------------------------------
Robert O'Kane
OTHERSPACE
Founding Member and Linker
URL : http://www.rz.uni-frankfurt.de/~okane
email: okane@em.uni-frankfurt.de
----------------------------------------------

View File

@ -1,104 +0,0 @@
From owner-isdn4linux@listserv.isdn4linux.de Sun Oct 29 22:16:25 2000
Return-Path: <owner-isdn4linux@listserv.isdn4linux.de>
Received: from localhost (mathes@localhost [127.0.0.1])
by athlet.mhessler.de (8.8.8/8.8.8) with ESMTP id WAA02008
for <mathes@localhost>; Sun, 29 Oct 2000 22:16:25 +0100
X-Envelope-From: <owner-isdn4linux-outgoing@server-007.to.com>
X-Envelope-To: <subscribe@i4l.mhessler.de>
X-Delivery-Time: 971869541
Received: from post.strato.de
by fetchmail-4.6.0 POP3
for <mathes/localhost> (single-drop); Sun, 29 Oct 2000 22:16:25 MET
Received: from server-007.to.com (server-007.to.com [194.221.235.10])
by post.webmailer.de (8.9.3/8.8.7) with ESMTP id NAA01812
for <subscribe@i4l.mhessler.de>; Wed, 18 Oct 2000 13:44:42 +0200 (MET DST)
Received: by server-007.to.com (Postfix)
id B5E8F13CE0; Wed, 18 Oct 2000 13:43:26 +0200 (CEST)
Delivered-To: isdn4linux-outgoing@server-007.to.com
Received: by server-007.to.com (Postfix, from userid 88)
id AA80813CE4; Wed, 18 Oct 2000 13:43:26 +0200 (CEST)
Delivered-To: isdn4linux@listserv.isdn4linux.de
Received: from inonet.com (unknown [212.117.66.174])
by server-007.to.com (Postfix) with ESMTP id 3DA2513CE0
for <isdn4linux@listserv.isdn4linux.de>; Wed, 18 Oct 2000 13:43:26 +0200 (CEST)
Received: from 12er.inonet.com [62.158.199.41] by inonet.com with ESMTP
(SMTPD32-5.01) id AEBD4CE00AA; Wed, 18 Oct 2000 13:51:25 +03d0
Received: from inonet.com (laser.inonet.com [192.168.0.11])
by 12er.inonet.com (8.8.8/8.8.8) with ESMTP id NAA00393;
Wed, 18 Oct 2000 13:07:39 +0200
Message-ID: <39ED8AFA.35AB9D5E@inonet.com>
Date: Wed, 18 Oct 2000 13:35:22 +0200
From: Matthias Lenhardt <mlenhardt@inonet.com>
Organization: InoNet Computer GmbH
X-Mailer: Mozilla 4.61 [en] (X11; I; Linux 2.2.10 i686)
X-Accept-Language: de-DE, en
MIME-Version: 1.0
To: Tom Sedge <tom@cognality.com>, isdn4linux@listserv.isdn4linux.de
Subject: Re: Nokia 7110 -> ISDN questions
References: <Pine.LNX.4.21.0010181225000.31029-100000@behemoth.cognality.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: owner-isdn4linux@listserv.isdn4linux.de
Precedence: bulk
X-Loop: isdn4linux
Tom Sedge wrote:
>
> Hi,
>
> I'm trying to get a Nokia 7110 calling in to a Linux ISDN box, but am a
> little confused (even after reading the V.110 Mini-FAQ).
>
> I want to WAP browse directly from the phone, there is no PDA connected to
> it.
Hi Tom,
unfortunately, I can't tell you why your configuration doesn't work, but
I
can show you mine. It allows me to dail into a Linux box with the Nokia
7110 mobile and access local WAP contents:
/etc/inittab:
# ISDN Dialin for WAP
# Settings for Nokia 7110
i0:23:respawn:/usr/sbin/mgetty -m '""
AT&B512&E<YourMSN>&X0S14=4S19=197&R9600 OK' -s 38400 /dev/ttyI0
/etc/mgetty+sendfax/login.config:
/AutoPPP/ - root /usr/sbin/pppd file /etc/ppp/wap.conf
/etc/ppp/wap.conf:
-vjccomp -ac -pc -vj
name <Hostname>
192.168.1.200:192.168.1.201
netmask 255.255.255.0
ipcp-accept-local
ipcp-accept-remote
noauth
nodetach
noipx
mru 296
proxyarp
lock
asyncmap 0
idle
60
Hope that helps,
Matthias
--
<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>
Matthias Lenhardt - Software Ingenieur
mail:mlenhardt@inonet.com
InoNet Computer GmbH
http://www.inonet.com/
Computers are like air conditioners:
They stop working properly if you open windows.
<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@listserv.isdn4linux.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body.

View File

@ -1,111 +0,0 @@
Date: Sat, 19 Oct 1996 02:21:45 +0200
X-Sender: sw0001@aixrs1.hrz.uni-essen.de To: isdn4linux@hub-wue.franken.de
From: Matthias Hessler <hessler@wi-inf.uni-essen.de> Subject: RE: options files
Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
At 17:57 18.10.1996 +0200, you wrote:
>Matthias Hessler <hessler@wi-inf.uni-essen.de> ha escrito a
>isdn4linux@hub-wue.franken.de:
>
>> well, isdnctrl does not quite assign interface ipppx to /dev/ipppx by
>> default (e.g. interface ippp3 to /dev/ippp3). I'm not entirely sure how
>it
>> does its assignements, but I think it takes interface ipppx and binds it
>to
>> the first available /dev/ipppx, starting x with 0 and counting up (e.g.
>your
>> interface ippp3 gets bound to /dev/ippp0 because there is an ipppd
>already
>> waiting there)
>> Which leads to your problem: you want interface ippp3 _exclusively_ bound
>to
>> /dev/ippp3 because you want only your ipppd configured for /dev/ippp3
>> answering all the traffic from your interface ippp3.
>
>Hi Matthias
>
>Ok; for clarifying scripts (and my concepts :) I name net interfaces
>isdn0..isdn3, but when I try to launch ipppd, it tells me there must be at
>least ippp0 configured (???) Does it means i have to configure interfaces
>twice (one time for ipppX and other for isdnX)?
No.
Here is what happened: You named your net interfaces isdn0..isdn3 and did not use the pppbind option. Now isdnctrl has no clue that it should connect those interfaces to any /dev/ippp* .
If you name your net interfaces ippp0..ippp3, then isdnctrl _automatically_ recognizes (by the name of those interfaces) that those should be connected to the /dev/ippp* . It does it (if I'm not wrong about that default behavior) when data arrives by connecting a net interface to the first available /dev/ippp* .
Let's say if data arrives on net interface ippp3, it tries to connect it to /dev/ippp0, if that is available. If not (already another connection going on?), it tries /dev/ippp1, and so on.
As you have two ipppd's with different options running that is not what you want, because you can never tell in advance which data will be answered by which ipppd.
No matter how the name of your net interfaces is, if you use the "isdnctrl pppbind" option, you can tell isdnctrl to _always_ connect some netinterface with some /dev/ippp* . E.g.:
isdnctrl pppbind isdn3 2
tells isdnctrl to always put data from net interface isdn3 to /dev/ippp2.
That is very handy, if you want to have a special ipppd lurking on /dev/ippp2 that should get all that traffic from isdn3.
Isdnctrl acts like a switch board.
Default behaviour (using net interfaces ippp0 and ippp1): =========================================================
Kernel---------+
| |
Net interface ippp0 ippp1 (isdnctrl addif ippp*)
| |
| |
Isdnctrl (by default, to next available device
=> no isdnctrl pppbind necessary)
| |
| |
Device /dev/ippp0 /dev/ippp1 /dev/ippp2 /dev/ippp3
| | | |
ipppd ipppd ipppd ipppd
Default behaviour (using net interfaces isdn0, isdn1, isdn2, isdn3): ====================================================================
Kernel------+----------+----------+
| | | | Net interface isdn0 isdn1 isdn2 isdn3 (isdnctrl addif ippp*)
isdnctrl (no connection from isdn* to any /dev/ippp*,
because: name of net interface is not "ippp*")
Device /dev/ippp0 /dev/ippp1 /dev/ippp2 /dev/ippp3
| | | |
ipppd ipppd ipppd ipppd
Behavior using "isdnctrl pppbind" (A):
======================================
Kernel------+----------+----------+
| | | | Net interface isdn0 isdn1 isdn2 isdn3 (isdnctrl addif isdn*)
|
| Isdnctrl +-------+ (isdnctrl pppbind isdn3 2)
|
| Device /dev/ippp0 /dev/ippp1 /dev/ippp2 /dev/ippp3
| | | |
ipppd ipppd ipppd ipppd
Behavior using "isdnctrl pppbind" (A):
======================================
Kernel------+----------+----------+
| | | | Net interface isdn0 isdn1 isdn2 isdn3 (isdnctrl addif isdn*)
|
| Isdnctrl +-------+ (isdnctrl pppbind isdn2 1)
|
|
Device /dev/ippp0 /dev/ippp1 /dev/ippp2 /dev/ippp3
| | | |
ipppd ipppd ipppd ipppd
I hope that's correct. Please correct me if I'm wrong...
Bye,
Matthias
**************************************************************** Matthias Heßler Email: hessler@wi-inf.uni-essen.de Gelsenkirchener Str. 67 Tel. : 0201-8915964 45141 Essen Fax. : 0201-8915965 ****************************************************************
--------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,64 +0,0 @@
Return-Path: POPmail
Return-Path: <owner-isdn4linux@hub-wue.franken.de>
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id BAA15222; Wed, 2 Apr 1997 01:42:14 +0200
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0wC9b7-000oMha; Tue, 1 Apr 97 21:52 MET DST
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0wC9Zz-001Ib6a; Tue, 1 Apr 97 21:50 MET DST
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0wC9Zv-001Ib5E; Tue, 1 Apr 97 21:50 MET DST
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0wC9a3-000Bm6C; Tue, 1 Apr 97 21:50 MET DST
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0wC9Zr-001Ib5E; Tue, 1 Apr 97 21:50 MET DST
To: isdn4linux@hub-wue.franken.de
Xref: oops de.alt.comm.isdn4linux:2619
From: Tillmann Steinbrecher <tst@darmstadt.netsurf.de>
Newsgroups: de.alt.comm.isdn4linux
Subject: pppcosts 0.04 (Telefonkostenanzeige für PPP) jetzt auch für ISDN!
Date: Tue, 01 Apr 1997 18:09:58 +0200
Organization: http://people.frankfurt.netsurf.de/tst/
Lines: 25
Message-ID: <33413356.E22991E@darmstadt.netsurf.de>
Reply-To: tst@darmstadt.netsurf.de,0050763@telmi.de
NNTP-Posting-Host: board-49.darmstadt.netsurf.de
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 4.0b2 (X11; I; Linux 2.0.28 i586)
X-Priority: 3 (Normal)
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Content-Type: text/plain; charset=us-ascii
Hi,
die neue Version von pppcosts (Programm zur Kostenberechnung
für PPP-Verbindungen, zeigt Online-Zeit und Telefonkosten
z.B. in einem kleinen Fenster an) ist jetzt verfügbar.
Sie funktioniert jetzt auch mit ISDN, deshalb das Announcement
hier.
Wer Interesse hat:
http://people.darmstadt.netsurf.de/tst/pppcosts.htm
Ist demnächst auch auf SunSite; zur Zeit noch im
Incoming-Verzeichnis, später dann auch in
sunsite.unc.edu /pub/Linux/system/network/serial/
pppcosts-0.04.tgz (20K).
ciao - Till
--
_____ ___ _____
|_ _| / __|_ _| Tillmann Steinbrecher - tst@darmstadt.netsurf.de
| | _ \__ \ | | _ Pager 0050763@telmi.de http://till.home.ml.org
|_|(_)|___/ |_|(_) "Black holes are where God divided by zero."
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,80 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA57240; Mon, 3 Feb 1997 02:10:16 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id CAA02823; Mon, 3 Feb 1997 02:11:22 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vrBVK-000oIZa; Mon, 3 Feb 97 00:39 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vrBSm-001IbJa; Mon, 3 Feb 97 00:36 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vrBSf-001IbGE; Mon, 3 Feb 97 00:36 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vrBTn-000Bm0C; Mon, 3 Feb 97 00:37 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vrBSa-001IbGE; Mon, 3 Feb 97 00:36 MET
To: isdn4linux@hub-wue.franken.de
Xref: oops de.alt.comm.isdn4linux:1297
From: Jens Brambring <jens.brambring@p-net.de>
Newsgroups: de.alt.comm.isdn4linux
Subject: IPX/SPX ueber isdn4linux und WIN95
Date: Mon, 03 Feb 1997 01:33:41 +0100
Organization: Customer of EUnet Germany; Info: info@Germany.EU.net
Lines: 41
Distribution: world
Message-Id: <32F53265.5E65@p-net.de>
Nntp-Posting-Host: peu-62.d.eunet.de
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.01Gold [de] (Macintosh; I; 68K)
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Status:
Hallo, es geht!!!!
Man muss nur den normalen pppd auf einem isd4linux ttyIx verwenden!
(Setzt natuerlich einen mgetty oder aehnliches auf dem device voraus)
Zunaechst habe ich mir einen User ppptest eingerichtet dessen
startshell auf /usr/sbin/diplogin eingetragen ist (/etc/passwd),
Inhalt der Datei diphosts in /etc:
ppptest::192.9.215.80:192.9.215.70:255.255.255.0::PPP,296
Inhalt der Datei /etc/ppp/options:
-detach
192.9.215.80:192.9.215.70
defaultroute
mru 1524
debug
/dev/ttyI1
ipx-routing 2
ipxcp-max-failure 20
ipx-node 4:5
ipx-network 0x3000
Hierbei scheint die Angabe von ipx-network sehr wichtig zu sein!!!!!
Die ip-Adressen koennen vermutlich entfallen!
Dann legt man auf den ethernetstrang ein normales ipxinterface an
und startet ipxd (aus dem ipxripd).
Unter Windows muss dann beim DFUE-Netzwerk noch ein entsprechendes
script eingerichtet
werden und dann sollte es eigentlich funken.
Bin leider schon etwas Muede vom ganzen Probieren, werde eventuell noch
mal eine
Ausfuehrliche Beschreibung senden.
Bin aber fuer alle Fragen offen!
Ciao, Jens
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,156 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA76880; Sat, 30 Nov 1996 13:44:05 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id NAA01959; Sat, 30 Nov 1996 13:44:57 +0100
Received: from hub-wue.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vTliY-000oIPa; Sat, 30 Nov 96 10:28 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vTlho-000Boba; Sat, 30 Nov 96 10:27 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vTlil-001IYWa; Sat, 30 Nov 96 10:28 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vTlii-001IYVE; Sat, 30 Nov 96 10:28 MET
Received: from giovanni.rhein-neckar.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vTlge-000BobC; Sat, 30 Nov 96 10:26 MET
Message-Id: <m0vTlgM-000rArC@giovanni.rhein-neckar.de>
From: girardi@giovanni.rhein-neckar.de (Norbert J. Girardi)
Subject: Re: routes?
To: isdn4linux@hub-wue.franken.de
Date: Sat, 30 Nov 1996 10:25:58 +0100 (MET)
Cc: uwe.tetzlaff@t-online.de
In-Reply-To: <m0vTby7-0000fJC@ermail02.btx.dtag.de> from "Uwe Tetzlaff" at Nov 29, 96 10:11:00 pm
X-Mailer: ELM [version 2.4 PL24]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Reply-To: isdn4linux@hub-wue.franken.de
Status:
>
> Moins..
>
> Ich hab hier in der Firma 2 Rechner W95 192.168.254.2 Ne2000
> LinuX 192.168.254.1 3Com 509
> Zu Hause habe ich einen Rechner LinuX 192.168.255.1 Teles S0-16.3
>
> Also zu meinem Problem : ich teste mit ping die Verbindung :
>
> von LinuX zu Hause <-> LinuX Firma via isdn0 = geht.
> von W95 Firma <-> LinuX Firma via eth0 = geht.
> von W95 Firma <-> LinuX zu Hause via eth0 -> isdn0 = geht nicht !
> von LinuX zu Hause <-> W95 Firma via isdn0 -> eth0 = geht nicht !
>
>
> Sicherlich voellig off topic denn ich tippe auf ein Problem bei meinen routes.
>
Es waere sicher hilfreich gewesen wenn Du die 'routes' mitgeschickt
haettest ;-)
OK, versuchen wir's trotzdem mal.
Nennen wir Linux at home -> lihome = 192.168.255.1 ,
Linux at work -> liwork = 192.168.254.1 ,
W95 at work -> work95 = 192.168.254.2 .
Also, bei mir wuerde die '/etc/hosts' auf allen Rechnern _so_ aussehenen:
# ----------------- [schnippel] --------------------------
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#
# For loopbacking.
127.0.0.1 localhost
192.168.255.1 lihome
192.168.254.1 liwork
192.168.254.2 work95
# End of hosts.
# ----------------- [schnippel] --------------------------
Die '/etc/networks' auf allen Rechnern :
========================================
# ----------------- [schnippel] --------------------------
#
# networks This file describes a number of netname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
#
loopback 127.0.0.0
homenet 192.168.255.0
worknet 192.168.254.0
# End of networks.
# ----------------- [schnippel] --------------------------
Ich benutze fuer die statischen routes eine Datei in /etc/rc.d
in die ich alle routes eintrage, und die aus /etc/rc.d/rc.inet1
aufgerufen wird.
Die /etc/rc.d/rc.routes auf lihome:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig isdn0 lihome pointopoint liwork
/sbin/route add liwork isdn0
/sbin/route add default gw liwork isdn0
# Alles was raus soll geht per default ueber isdn0
# ----------------- [schnippel] --------------------------
Die /etc/rc.d/rc.routes auf liwork:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig eth0 liwork
/sbin/route add -net worknet eth0
# Alles was von worknet kommt und nach worknet soll
# muss ueber eth0
/sbin/ifconfig isdn0 liwork pointopoint lihome
/sbin/route add liwork
/sbin/route add default gw liwork isdn0
# Alle anderen gehen per default ueber isdn0
# !!!! Klappt nur wenn auch der Kernel mit
# IP FORWARDING/GATEWAYING kompiliert wurde !!!!
# ----------------- [schnippel] --------------------------
Fuer W95 tue ich mal so als sei es ein Linux, d.h.
die Uebersetzung in W95 Syntax bleibt dem Leser ueberlassen :-)
Die /etc/rc.d/rc.routes auf work95:
===================================
# ----------------- [schnippel] --------------------------
/sbin/ifconfig eth0 work95
/sbin/route add liwork
/sbin/route add default gw liwork eth0
# alles geht per default ueber eth0 nach liwork
# der sorgt dann fuer die Verteilung
# ----------------- [schnippel] --------------------------
- Norbert
--
Norbert J. Girardi < girardi@giovanni.rhein-neckar.de >
Voice: +49 621 493417 (h) +49 621 381-3260 (w)
Neckarstr. 17, D-68549 Ilvesheim, Germany
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,115 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA773032; Wed, 4 Dec 1996 19:25:55 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id TAA04351; Wed, 4 Dec 1996 19:27:00 +0100
Received: from hub-wue.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vVFcT-000oJ0a; Wed, 4 Dec 96 12:36 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vVFZi-000Boma; Wed, 4 Dec 96 12:33 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vVFbR-001IV5a; Wed, 4 Dec 96 12:35 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vVFbO-001IV3E; Wed, 4 Dec 96 12:34 MET
Received: from dino.nus.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vVFYU-000BomC; Wed, 4 Dec 96 12:31 MET
Received: from localhost (nils@localhost [127.0.0.1]) by dino.nus.de (8.7.6/8.7.3) with ESMTP id MAA09043 for <isdn4linux@hub-wue.franken.de>; Wed, 4 Dec 1996 12:35:02 +0100
Date: Wed, 4 Dec 1996 12:35:02 +0100 (MET)
From: Nils Rennebarth <nils@nus.de>
To: isdn4linux@hub-wue.franken.de
Subject: Re: ISDN-Problem
In-Reply-To: <199612031939.UAA07539@mail.germanlloyd.de>
Message-Id: <Pine.LNX.3.95.961204114817.1062I-100000@dino.nus.de>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Reply-To: isdn4linux@hub-wue.franken.de
Status:
On Tue, 3 Dec 1996, Martin Bauer wrote:
>Moin moin,
>
>ich habe da ein kleines Problem:
>
[Emma und Gegenstelle unterhalten sich prima, aber von keinem Rechner im
Netz der Gegenstelle geht es zu Emma]
Emma:
eth0 inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0
isdn0 inet addr:192.168.11.1 P-t-P:192.168.11.3
>
>Kernel IP routing table
>Destination Gateway Genmask Flags Metric Ref Use =
Iface
>172.20.1.4 0.0.0.0 255.255.255.255 UH 0 0 11 =
isdn0
>192.168.11.3 0.0.0.0 255.255.255.255 UH 0 0 3 =
isdn0
>192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 =
eth0
>0.0.0.0 192.168.11.3 0.0.0.0 UG 0 0 2 =
isdn0
>
>
>
>Die Gegenstelle:
>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
eth0 inet addr:172.20.1.4 Bcast:172.20.255.255 Mask:255.255.0.0
isdn0 inet addr:192.168.11.3 P-t-P:192.168.11.1 Mask:255.255.255.0
>Kernel IP routing table
>Destination Gateway Genmask Flags Metric Ref Use =
Iface
>192.168.11.1 0.0.0.0 255.255.255.255 UH 0 0 15 =
isdn0
>192.168.10.0 192.168.11.1 255.255.255.0 UG 0 0 3 =
isdn0
>172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 39 =
eth0
>0.0.0.0 172.20.1.1 0.0.0.0 UG 0 0 3 =
eth0
Es ist kein ISDN Problem, es ist ein routing Problem.
"Gegenstelle" bekommt =FCber ISDN ein Paket mit 192.168.11.3 als Gateway,
wei=DF aber routing-technisch nicht, das es das selber ist.
!! Allein durch Einrichten eines Point-to-Point Interfaces
!! wei=DF ein Rechner noch nicht, da=DF IP-Pakete an die auf seiner Seite
!! konfigurierte Adresse auch an ihn sind.
Mit anderen Worten: es fehlt auf "Gegenstelle" der Befehl
route add -host 192.168.11.3 dev isdn0
N.B.: Warum machst Du es nicht einfacher, wenn Du Point-to-Point routen
verwendest:
auf Emma:
ifconfig isdn0 192.168.10.1 pointopoint 172.20.1.4 -arp -broadcast
route add -host 172.20.1.4
route add default gw 172.20.1.4
auf Gegenstelle:
ifconfig isdn0 172.20.1.4 pointopoint 192.168.10.1 -arp -broadcast
route add -host 192.168.10.1
route add -net 192.168.10.0 gw 192.168.10.1
Nils
--
\ / | Nils Rennebarth
--* WINDOWS 42 *-- | Schillerstr. 61=20
/ \ | 37083 G=F6ttingen
| ++49-551-71626
Micro$oft's final answer | http://www.nus.de/~nils
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,82 +0,0 @@
Return-Path: POPmail
Return-Path: <owner-isdn4linux@hub-wue.franken.de>
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id WAA09672; Sat, 5 Apr 1997 22:37:34 +0200
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0wDaF3-000oMna; Sat, 5 Apr 97 20:31 MET DST
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0wDaEr-001IWda; Sat, 5 Apr 97 20:30 MET DST
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0wDaEo-001IUzE; Sat, 5 Apr 97 20:30 MET DST
Received: from dinet.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0wDaE6-000BmHC; Sat, 5 Apr 97 20:30 MET DST
Received: (from todd@localhost) by dinet.de (8.8.5/8.8.5/DInet-DIS-1) id UAA22630; Sat, 5 Apr 1997 20:29:40 +0200
From: Torsten Hentschel <Torsten.Hentschel@DInet.de>
Message-Id: <199704051829.UAA22630@dinet.de>
Subject: Re: Windows => Linux => ISDN => WWW Wo gibt es eine Anleitung ?
To: C.Reiser@t-online.de
Date: Sat, 5 Apr 1997 20:29:40 +0200 (MET DST)
Cc: isdn4linux@hub-wue.franken.de
In-Reply-To: <E85snA.3It@temic-ech.spacenet.de> from "Karsten Keil" at Apr 5, 97 09:49:58 am
X-NCC-RegID: de.delta
X-Organization: DI Delta Internet GmbH
X-Phone: +49 2932 916 132
X-Fax: +49 2932 916 232
X-Mailer: ELM [version 2.4 PL24]
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by dinet.de id UAA22630
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Content-Type: text/plain; charset=US-ASCII
> Christian Reiser (C.Reiser@t-online.de) wrote:
> : Wo gibt es Informationen wie man ein Windows 3.11 (Ethernet-)Netzwerk=
=20
> : (mit Novell-Server) mit Netscape =FCber einen Linux-Server mit ISDN
> : ans WWW anbinden kann. Bevorzugt w=E4re eine Linux-Proxy L=F6sung.
>=20
> : Hardware-Eckdaten:
> : Netzwerkkarten: 3Com507
> : 14 Clients: 16 Mb; dx2/50 Dos 6.22; Windows wird aus dem Server
> : gestartet
> : 1 Novell-Server: Novell 3.11
> : 1 Linux-Server : 16 MB; dx2/50; SUSE 4.4; Kernel 2.0.25; Hisax 1.2;=20
> : Fritz-Card
> Du brauchst auf den Novell Clients einen TCP/IP Protocol Stack z.B. Nov=
ell
> LAN Workplace, oder einen anderen, der auf die ODI Treiber aufsetzt.
> Ohne den geht garnichts.
> Wenn das laeuft, sollte es genuegend Anleitungen geben, entweder ueber =
Proxy
> oder ueber Masquerading ueber die Linuxbox ins Internet zu kommen.
Man braucht gar nicht Novell etwas Geld in den Rachen werfen.
Den TCP/IP-Stack kann man von Microsoft fuer Windows 3.11 auch
kostenlos bekommen (und Windows95 hat ihn eingebaut):
http://www.microsoft.com/kb/softlib/mslfiles/TCP32B.EXE
Nur eines gibt es zu beachten: Ausser TCP/IP darf kein weiteres
Protokoll durch das Microsoft Netzwerk eingebunden werden.
Denn IPX wuerde sofort mit den Treibern von Novell hapern.
Ansonsten laeuft das hier bei einem unserer Kunden wunderbar,
in einer sehr aehnlichen Konfiguration.
Gruesse,
Torsten Hentschel
--=20
http://www.DInet.de/
/\ von-Siemens-Str. 12=20
/ \ Delta Internet GmbH 59757 Arnsberg
/ \ Netzwerkdienst & Vertrieb Tel. +49 2932 91 61 32=20
/______\ Fax. +49 2932 91 61 91
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,137 +0,0 @@
X-Sender: dekay@xplor.ipf.de
References: <m0vIIrY-000LHmC@scorpio.in-berlin.de> from "Gernot Zander" at Oct 29, 96 07:26:08 pm
Date: Wed, 30 Oct 1996 19:05:55 +0200
To: isdn4linux@hub-wue.franken.de, michael@abadonna.franken.de From: Darko Krizic <dekay@ipf.de>
Subject: Sounds erzeugen für vgetty/vboxgetty Cc: maze@frankfurt.netsurf.de
Sender: owner-isdn4linux@hub-wue.franken.de Reply-To: isdn4linux@hub-wue.franken.de
Ich möchte hier ein paar Erfahrungen mit vboxgetty zusammenzählen, insbesondere im Zusammenhang mit dem Erzeugen von Messages (Sounds)
Sound-Format
------------
Das Format ADPCM-4 generiert beim Aufzeichnen wesentlich kleinere Dateien als die Formate uLaw oder aLaw, deswegen ist dieses Format vorzuziehen.
Vorteil von uLaw ist allerdings, daß es dem au-Format entspricht und so direkt mit cat sound.au >/dev/audio angehört werden kann, allerdings gibt es zwei Probleme:
- Das ist nur interessant für Leute, die auch am Linux-Rechner sitzen und dieser eine Soundkarte besitzt. Viele Leute verwenden den Linux-Rechner als "echten" Server, der weder Monitor noch Soundkarte hat.
- Die aufgezeichneten Samples haben einen sehr schwachen Pegel, den man theoretisch mit
autopvf <x.msg | pvfamp 5 | pvftoau >x_laut.msg
verstärken könnte, allerdings muß man sich dann sowieso mit den pvf-Tools befassen und kann dann auch gleich auf ADPCM-4 umsteigen.
Aufzeichen über Telefon
-----------------------
Wie in der i4l-FAQ beschrieben ist es ohne Probleme möglich sich selbst auf den Anrufbeantworter zu sprechen und die entsprechende Datei in das Verzeichnis /var/spool/vobx/<user>/incoming/standard.msg zu kopieren.
Allerdings ist die Qualität bei weitem nicht ausreichend, unter anderem, weil sich am Anfang und Ende Geräusche oder Pausen befinden.
Selbst Dateien generieren
-------------------------
Ich habe einen Macintosh, der unter anderem die Möglichkeit bietet, Sound von Audio-CDs ohne Verluste per SCSI auf die Festplatte zu kopieren und nachträglich auf andere Samplegeschwindigkeit und Bitbreite zu konvertieren, z.B. "16bit, 44kHz -> 8bit, 22kHz". Desweiteren kann ich mit dem Mikrofon Sounds und am Ende alle Sounds manipulieren und mixen. Die beste Voraussetzungen für verrückte Ansagen.
Das Format, das der Macintosh verarbeitet ist AIFF. Dieser Standard wird auch von SGI und anderen namhaften Herstellern verwendet, allerdings konnte ich unter Linux kein Programm finden, das dieses Format versteht. Auf dem Macintosh gibt es allerdings das Programm "SoundApp", welches nach und von Suns .au konvertieren und ADPCM wenigstens abspielen kann. Anmerkung: Dummerweise nennt SoundApp das au-Format "NeXT", weil dieses Format dort verwendet wird, allerdings habe ich lange gebraucht, um herauszufinden, daß es dasselbe wie au ist.
Ich nehme mal an, daß unsere Windows-Freunde ähnliche Fähigkeiten haben.
Das Windows-Hausformat nennt sich WAV. Auch dieses Format kennen die PVF-Tools nicht, aber ich denke mal, daß es unter Windows ähnliche Werkezeuge gibt, die sogar ADPCM-4 generieren können.
Ich weiß nicht, wie man unter Linux Sounds aufzeichnen kann und welches Format diese haben, allerdings wird es wohl Sun-AU-Format haben, so daß der weitere Text auf für Linux-Benutzer interessant ist.
Sounds für vboxgetty konvertieren
---------------------------------
Wie bereits oben beschrieben, empfehle ich den Betrieb mit ADPCM-4. Bei mgetty befindet sich die pvf-Toolsammlung, welche Soundformate konvertieren und manipulieren kann, allerdings gab es Probleme mit den Formaten, die vboxgetty generiert hatte (ADPCM-4). Gegen dieses Problem gibt es Patches, allerdings enthält die neuste Version von mgetty (0.99 Okt02 und wahrscheinlich auch ein paar ältere) bereits die Programme "zyxeltopvf" und "pvftozyxel[234]", mit welchen genau diese Formate konvertiert werden können.
Mein Macintosh liefert die Sounds 22254Hz. Um daraus einen entsprechenden Sound in ADPCM-4 zu generieren verwende ich folgende Kommendozeile:
autopvf <standard.au \
| pvfspeed 2.73 \
| pvfamp 0.2 \
| pvftozyxel4 >standard.msg
autopvf konvertiert dan au-Sound nach pvf. pvfspeed ändert die Samplingrate auf 8000 (22554 / 8000 = 2.73), damit die Geschwindigkeit wieder stimmt.
pvfamp 0.2 senkt den Pegel auf 20%, weil der Sound sonst total verzerrt klingt, schließlich kennt das Telefon nur Frequenzen zwischen 300 und 3000Hz. Zuletzt legt pvftozyxel4 den Sound im richtigen Format ab.
Dadurch, daß weder Rauschen noch Klacken zu hören sind, klingen so generierte Ansagen einfach klasse. Wer etwas mit Sound-Manipulationsprogrammen spielen kann, der kann tolle Effekte generieren, allerdings sollte man damit wegen des beschränten Frequenzbandes echt sparsam umgehen, sonst versteht der Anrufende nichts.
Nachbarbeiteitung von aufgezeichneten Nachrichten ------------------------------------------------- Ich möchte, daß meine Nachrichten in ein auf dem Macintosh abspielbaren Format konvertiert werden und an eine e-mail an mich attached werden sollen. Ich konvertiere den Sound nach au mit folgenden Befehlen:
zyxeltopvf <sound.pvf \
| pvfamp 5
| pvfcut 0.2 0.2 \
| pvftoau 8000 >sound.au
zyxeltopvf konvertiert den aufgezeichneten Sound nach pvf und pvfamp verstärkt diesen auf das fünffache, weil der Pegel (s.ganz.o) sehr schwach ist. pvfcut schneidet 0.2 Sekunden vorne und hinten ab, weil man hinten z.B. das Auflegen des Telefons hört. Scheinbar zeichnet vboxgetty schon auf, während der Beep-Ton abgespielt wird, weil dieser ganz am Anfang zu hören ist. Die 8000 nach dem pvtoau ist sehr wichtig, weil diese sorgt, daß die Frequenz in den au-Header geschrieben wird, damit das abspielende Programm auch die richtige Rate spielt!
Namen des Anrufenden in der Mail
--------------------------------
vboxgetty kennt den Namen des Anrufenden, während es die Nachricht aufzeichnet, dummerweise wird dieser Name nicht an das Programm "-p /usr/local/vbox/new_voice" mit übergeben. Ich habe deswegen einen (very dirty) hack von vboxgetty erzeugt, welches als 4ten Parameter den Namen an new_voice übergibt, damit ist es möglich, daß das Subject der generierten Mail aussieht wie "Voice from Darko Krizic" oder zumindest "Voice from Unknown". Da bei internationalen Calls zumindest die Landeskennung übergeben wird, kann eine Nachricht aus USA ein Subject wie "Voice from USA" haben.
Ich bitte hiermit den Autor von vbox selbst die Änderungen zu machen.
Beispiel für ein new_voice-Script
---------------------------------
Das Nachfolgende Shellscript hat bei mir den Namen /usr/local/vbox/new_voice und in der Inittab hängt noch "-p /usr/local/vbox/new_voice" als Parameter, damit dieses Programm nach dem Aufzeichnen einer Nachricht aufgerufen wird.
Die Datei wird nach .au konvertiert und als MIME-encoded Message an den Benutzer für den die Nachricht aufgezeichnet wurde, geschickt. Ich verwende übrigens mimeencode nicht. Wenn diese Mail von Eudora auf dem Macintosh empfangen wird, wird der Sound als Icon angezeigt. Ein Doppelklick reicht aus, um den Sound abzuspielen.
#! /bin/sh
#
# Creates a new MIME-encoded mail to the user with an attached .au file # Written 1996 by Darko Krizic
PATH="${PATH}:/usr/local/vbox"
TMP="/tmp/vboxmime.$$"
ME="`basename $0`"
mailer="/usr/sbin/sendmail -t"
bound="NewVoice_-${$}${$}"
type="audio/ulaw"
file="${1}"
id="${2}"
user="${3}"
name="${4}"
date="`date +%y%m%d%H%M`"
newname=${date}-${id}.au
if [ -z "$name" ]
then
name=$id
fi
echo "\
Subject: Voice from $name
From: root@xplor.ipf.de (Voice Subsystem) To: $user
Content-type: multipart/mixed; boundary=\"$bound\"
--$bound
Content-Type: text/pain
A new voice has arrived
Sender ID: $id
Name: $name
File: $file
--$bound
Content-Type: application/octet-stream; name=\"$newname\" Content-transfer-encoding: x-uuencode
" >$TMP
/usr/local/bin/zyxeltopvf <$file \
| /usr/local/bin/pvfamp 5 \
| /usr/local/bin/pvfcut 0.2 0.2 \
| /usr/local/bin/pvftoau 8000 \
| /usr/bin/uuencode $newname >>$TMP
#rmdcutheader <$file | uuencode $newname >>$TMP echo "--$bound--" >>$TMP
$mailer -t <$TMP
#cat $TMP
rm $TMP
Anmerkungen: Es handelt sich dabei nur um ein Beispiel, welches ich schnell für mich zusammengehackt habe. Wenn jemand Anmerkugen und Ideen hat, soll ich bei mir melden. Ich erwähne nochmal: Das Script funktioniert zwar auch so, allerdings macht es erst richtig sinn, wenn vboxgetty als 4ten Parameter den Namen des Anrufenden übertragt, sonst ist das Subject immer "Voice from Unkown".
Darko Krizic
----------------------------------------------------------------------- Darko Krizic Phrankphurt Germany mailto:dekay@xplor.ipf.de
--------------------------------------------------- To remove yourself from this mailing list send email to majordomo@hub-wue.franken.de containing "unsubscribe isdn4linux <your_email_address>" in the message body [-vg]

View File

@ -1,51 +0,0 @@
Return-Path: POPmail
Return-Path: <owner-isdn4linux@hub-wue.franken.de>
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id WAA09582; Tue, 15 Apr 1997 22:57:36 +0200
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0wHCfe-000oPka; Tue, 15 Apr 97 20:09 MET DST
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0wHChM-001IXYa; Tue, 15 Apr 97 20:11 MET DST
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0wHChI-001IXUE; Tue, 15 Apr 97 20:11 MET DST
Received: from hertz.ikp.physik.th-darmstadt.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0wHCem-000BmHC; Tue, 15 Apr 97 20:08 MET DST
Received: (from bon@localhost) by hertz.ikp.physik.th-darmstadt.de (8.8.3/8.8.3) id UAA00262; Tue, 15 Apr 1997 20:07:43 +0200
Date: Tue, 15 Apr 1997 20:07:43 +0200
Message-Id: <199704151807.UAA00262@hertz.ikp.physik.th-darmstadt.de>
From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
To: Thomas Haas <haas@studi.unizh.ch>
Cc: isdn4linux@hub-wue.franken.de
Subject: Re: modem.inf fuer i4l
In-Reply-To: <Pine.LNX.3.95.970415171412.805A-100000@peecee.haaseng.ch>
References: <Pine.LNX.3.95.970415171412.805A-100000@peecee.haaseng.ch>
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Content-Type: text/plain; charset=us-ascii
>>>>> "Thomas" == Thomas Haas <thaas@haaseng.ch> writes:
Thomas> Hallo Mit NetModem/IP von http://www.tactical-sw.com/ kann ich
Thomas> nun endlich die ttyIxx von Win95 aus uebers Netz nutzen. Cool.
Thomas> Weiss jemand, wie eine win95-inf-Datei fuer Modems aussehen
Thomas> muss? Ich moechte gerne so eine inf-Datei fuer den
Thomas> i4l-Modem-Emulator (ttyIxx) basteln, oder hat das schon jemand
Thomas> gemacht?
Vielleicht hilft Dir weiter wie Kevin Wells ein Inf-File fuer ein
Nullmodemadapter geschrieben hat:
http://www.vt.edu:10021/K/kewells/net/
Uwe Bonnes bon@elektron.ikp.physik.th-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,143 +0,0 @@
Return-Path: POPmail
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA86280; Sun, 22 Dec 1996 17:10:31 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id RAA20385; Sun, 22 Dec 1996 17:11:29 +0100
Received: from hub-wue.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0vbmno-000oJba; Sun, 22 Dec 96 13:14 MET
Received: from oops.franken.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vbmKK-000Bp3a; Sun, 22 Dec 96 12:44 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0vbmGb-001ISMa; Sun, 22 Dec 96 12:40 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0vbmGX-001ISKE; Sun, 22 Dec 96 12:40 MET
Received: from outmail.zdv.uni-tuebingen.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0vblye-000Bp3C; Sun, 22 Dec 96 12:21 MET
Received: from mailserv.uni-tuebingen.de by outmail.zdv.uni-tuebingen.de (4.1/ZDV-Uni-Tuebingen-1.0)
id AA05580; Sun, 22 Dec 96 12:21:42 +0100
Received: from commlink.zdv.uni-tuebingen.de by mailserv.uni-tuebingen.de
with SMTP (PP); Sun, 22 Dec 1996 12:21:34 +0100
Received: (from pecrm01@localhost)
by commlink.zdv.uni-tuebingen.de (8.6.12/8.6.12) id MAA11944;
Sun, 22 Dec 1996 12:21:31 +0100
Date: Sun, 22 Dec 1996 12:21:29 +0100 (MEZ)
From: Michael Ruder <michael.ruder@uni-tuebingen.de>
To: isdn4linux@hub-wue.franken.de
Subject: ISDNLOG und SAMBA: Versand von WinPopup-Meldungen
Message-Id: <Pine.HPP.3.91.961222122056.11937A-100000@commlink.zdv.uni-tuebingen.de>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
Reply-To: isdn4linux@hub-wue.franken.de
Status:
Hallo!
Da sind sie endlich, die Skripte fuer den Versand von WinPopUp-Meldungen.
In die isdnlog.conf wird als allgemeines Event das START_Ring-Skript
eingetragen, dass bei eingehenden Anrufen einmal aufgerufen wird und mit
Send_WinPopup eine Meldung verschickt.
Ausserdem habe ich sowohl bei Connect als auch bei Hangup bei meinem
Provider ein Skripte eingetragen: ZDV_Connect und ZDV_Hangup. Diese
beiden senden ebenfalls mit Send_WinPopup einen Hinweis, dass die
ISDN-Leitung gerade auf- bzw. abgebaut wird. (Allerdings nur, wenn eine
Datei /etc/isdnlog/isdn.debug existiert, so kann man dies relativ leicht
an und abschalten.)
Das Hauptskript Send_WinPopup versendet mit smbclient die eigentlichen
Messages, in diesem Fall an die Rechner "mizar" und "alcor" (Das sollte
der TCP/IP-Name (aus dem Nameserver) der jeweiligen Rechner sein, oder
falls mit WINS gearbeitet wird, kann es auch der im Windows-Netzwerk
eingetragene Name sein, am Besten nimmt man an beiden Stellen den
gleichen Namen.)
Die Meldung im ersten Parameter wird an das Programm gepiped, da
smbclient sie normalerweise von der Tastatur einlesen wuerde. Ausserdem
kann man mit -U noch einen Absender angeben, den WinPopup anzeigt.
Auf den jeweiligen Rechnern muss WinPopup (3.11/95) oder der
Nachrichtendienst (NT) gestartet sein.
Als kleine Ergaenzung: Auch auf Linux-Rechnern kann man die WinPopups
empfangen, dann muss man allerdings im smb.conf die entsprechende Zeile
eintragen und ein Skript anlegen, was die Meldung irgendwie anzeigt oder
loggt.
Falls noch weiteres Interesse an der Konfiguration von Samba besteht,
kann ich auch gerne mal meine Konfig-Dateien posten.
Ich hoffe Ihr koennt was damit anfangen, die Skripte sind nicht gerade
elegant, aber ich hab sowas noch nicht oft gemacht.
Viel Spass,
-Michael
---- isdnlog.conf ----
MYMSNS=4
MYPREFIX=07472
START=IR=/etc/isdnlog/START_Ring $1 $2 $3;
MSN1 Telefon 1 -
MSN2 Telefax 1 -
MSN3,1 Michael 1 -
MSN4,7 Teles 1 -
PROVIDER ZDV_Internet 1 ippp0 OC=/etc/isdnlog/ZDV_Connect; OH=/etc/isdnlog/ZDV_Hangup;
---- START_Ring ---
#!/bin/sh
# Michael Ruder
#
# Version: 08.10.96
#
# /etc/isdnlog/START_Ring
#
/etc/isdnlog/Send_WinPopup 'Eingehender Anruf von '$2' auf '$3'.' &
# if test $3="IRGENDEINE_NUMMER"; then
# isdnctrl dial ippp0
# fi
---- Send_WinPopup ----
#!/bin/sh
# Michael Ruder
#
# Version: 08.10.96
#
# /etc/isdnlog/Send_WinPopup
#
echo $1 | smbclient -M mizar -U ISDN-Administrator >/dev/null
echo $1 | smbclient -M alcor -U ISDN-Administrator >/dev/null
---- ZDV_Connect ----
#!/bin/sh
# Michael Ruder
#
# Version: 08.10.96
#
# /etc/isdnlog/ZDV_Connect
#
if test -e "/etc/isdnlog/isdn.debug"; then
/etc/isdnlog/Send_WinPopup 'Die ISDN-Leitung wird aufgebaut.' &
fi
---- Auschnitt aus smb.conf ----
[global]
message command = mv %s %s.working; echo WinPopup-Message from %f@%m for %t: > %s; cat %s.working >> %s; wall %s; rm %s %s.working &
-Michael
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
< Michael Ruder, Fax +49-7472-91382, email: Michael.Ruder@Uni-Tuebingen.DE >
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

Binary file not shown.

View File

@ -1,18 +0,0 @@
Da auf meinen Arbeitsplatzrechner i.d.R. kein LinuX laeuft, habe ich zwei
CGI-Skripte (Perl) (+2 weitere Shellscripte) gebastelt, die einem den
Zugriff auf seine eigenen Anrufe per WWW-Browser ermoeglichen. Die Perlscripte gehoeren ins CGI-Verzeichnis
(des Users), die anderen beiden koennen irgendwo liegen. Die Scripte greifen
auf die Umgebungsvariable $REMOTE_USER des http-Servers zu. Es ist also
notwendig, dass sich der User gegenueber dem Server authentifiziert !
Weiterhin muessen die Scripte mit User-Rechten laufen. Der aktuelle
Apache 1.2b4 sollte das zwar koennen. Da das ihm beiliegende "suexec" jedoch
bei mir nicht richtig lief, habe ich es etwas geaendert (habe ich auch
beigelegt).
Gruss
Marc
____________________________________________________________________
Marc Neitzner | marc@zeus.han.de | Tel.: 0511-2714507
Alte Ziegelei 7 | neitzner@rvs.uni-hannover.de | Fax : 0511-2714537
30419 Hannover | |

View File

@ -1,82 +0,0 @@
Return-Path: owner-isdn4linux@hub-wue.franken.de
Received: from hsun6.wi-inf.uni-essen.de by aixrs1.hrz.uni-essen.de (AIX 4.1/UCB 5.64/4.03)
id AA44892; Mon, 10 Mar 1997 19:02:05 +0100
Received: from rachael.franken.de by hsun6.wi-inf.uni-essen.de (SMI-8.6/SMI-SVR4)
id TAA14192; Mon, 10 Mar 1997 19:03:40 +0100
Received: from oops.franken.de by rachael.franken.de with smtp
(Smail3.1.29.1 #8) id m0w43xj-000oHda; Mon, 10 Mar 97 13:13 MET
Received: by oops.franken.de (Linux Smail3.1.29.1 #1)
id m0w43vH-001ITva; Mon, 10 Mar 97 13:11 MET
Received: from hub-wue.franken.de by oops.franken.de with smtp
(Linux Smail3.1.29.1 #1) id m0w43vB-001ITuE; Mon, 10 Mar 97 13:11 MET
Received: from ki.comcity.de by hub-wue.franken.de with smtp
(Smail3.1.29.1 #1) id m0w43wO-000BoNC; Mon, 10 Mar 97 13:12 MET
Received: from commgate.local.comcity.de by ki.comcity.de (SMI-8.6/SMI-SVR4)
id OAA13546; Mon, 10 Mar 1997 14:08:01 -0100
Received: from [194.25.34.206] by commgate.local.comcity.de with ESMTP id S.000357002404 for <dimi@wiesbaden.netsurf.de>,...; Mon, 10 Mar 1997 13:12:39 +0100
Received: from widor2.comcity.de (vwidor@widor2.comcity.de [192.168.1.2]) by widor1.comcity.de (8.7.5/8.7.3) with SMTP id MAA00192; Mon, 10 Mar 1997 12:52:10 +0100
Message-Id: <3323F56B.4FEA8D7@rd.comcity.de>
Date: Mon, 10 Mar 1997 12:50:03 +0100
From: Volker Widor <vwidor@ki.comcity.de>
Organization: -
X-Mailer: Mozilla 3.01Gold (X11; I; Linux 2.0.29 i586)
To: Dimitrios Dimitrakos <dimi@wiesbaden.netsurf.de>
Cc: isdn4linux@hub-wue.franken.de
Subject: Re: T-Online BTX
References: <331A14C0.5AFA30E1@wiesbaden.netsurf.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 8bit
Sender: owner-isdn4linux@hub-wue.franken.de
Precedence: bulk
bei mir leuft XCept-1.1.2.
(allerdings komischerweise nur in SW)
ich habe aber ISDN beim kompilieren von XCept ausgeschaltet.
dann noch in init.cept folgendes:
---------------------------------------------------------
hangupstring "~+++~ATH0^M"
connectstring "64000/X.75"
nodialtonestring "NO DIALTONE^M"
nocarrierstring "NO CARRIER^M"
busystring "BUSY^M"
opendevice 9600 "/dev/ttyI2"
send "AT&F^M"
sleep 1
send "AT&D2^M"
send "ATQ0^M"
send "ATV1^M"
send "ATS2=255^M"
send "AT&X1^M"
send "AT&E000000^M" #<-- eaz eintragen!
send "ATD01910^M"
wait 10
---------------------------------------------------------
und schon lueppt das!
nur eine frage, wo wir gerade dabei sind:
wenn ich den ceptd von einem anderen rechner aus nutzen will, und den
benutzer in users.cept
freigegeben habe, scheitert ceptd mit der fehlermeldung (ueber syslog):
serverhost ceptd[160]: warning: can't verify hostname:
gethostbyname(clientname) failed
serverhost ceptd[160]: refused connect from name@clienthost
falls da jemand sagen kann, was man da machen kann, waere ich sehr
dankbar.
(das muss wohl irgendwo im socket.c in ceptd liegen)
--
/ Volker Widor - Kiewittsholm 6a - D-24107 Ottendorf /
/ Tel.: +49 431 583572 Fax: +49 431 583502 /
/ E-Mail: vwidor@rd.comcity.de /
---------------------------------------------------
To remove yourself from this mailing list send
email to majordomo@hub-wue.franken.de containing
"unsubscribe isdn4linux <your_email_address>" in
the message body [-vg]

View File

@ -1,276 +0,0 @@
========
Newsgroups: uninews.comp
Subject: Mit Crosspoint an der Uni pollen.
From: mklose@UNI-DUISBURG.DE (Michael Klose)
Date: 28 Jul 1996 23:26:00 +0200
Hallo!
Ich wollte was erklären (siehe Betreff):
Für die Leute, die nicht wissen, was Crosspoint (ab hier mit XP abgekürzt)
ist, hier ein kleiner Ausschnitt aus der Dok:
-------------------------------------------------------------------------
CrossPoint ist eine Multinetz-Pointsoftware. Oder ausführlicher:
CrossPoint ist ein Programm, mit dem Sie auf sehr bequeme Weise
Daten mit Mailboxen austauschen und insbesondere elektronische Post
(E-Mail) versenden, empfangen und verwalten können. Wichtig ist
dabei, daß CrossPoint verschiedene, technische Mailbox-(Netz)-
Standards unterstützt. Dadurch benötigen Sie für verschiedene Netze
nur EIN Programm mit einer einheitlichen Benutzeroberfläche. Wichtig
ist auch, daß CrossPoint nicht nur den kleinsten gemeinsamen Nenner
der verschiedenen Netze bildet, sondern Ihnen zusätzlich ermöglicht,
die Features einzelner Netze voll auszunutzen. Dazu zählen z.B. das
Bestellen von Dateien im FidoNet, Löschnachrichten im Usenet und das
Nachrichtenstatus-System im MausNet.
-------------------------------------------------------------------------
Crosspoint bietet aber leider nur für Usenet eine Möglichkeit per UUCP zu
pollen, nicht mit einer PPP oder SLIP Verbindung.
Es geht aber trotzdem, und zwar mit einem Zusatztool (UKA_PPP), welches
sogar Freeware ist.
Leider funktioniert UKA_PPP nicht richtig unter NT :-(( Windows 95 weiß
ich nicht, ich kann nur sagen, daß es unter DOS und Win 3.11 läuft.
Warum also Crosspoint benutzen?
Crosspoint ist IMHO der beste Maileditor, den es gibt, er ist nicht nr für
e-Mail, sondern auch ein Newsreader. Ich habe bisher noch kein einziges
Programm gesehen, welches solch einen Funktionsumfang hat. Sogar PGP
Unterstützung ist eingebaut, MIME sowieso (obwohl hier eines der wenigen
Schwachstellen in XP liegt, er beherrscht keine Multipart MIME Mails).
Vor allem kann man es für fast alle Netze einsetzten: ich verwende es für
meine beiden Fido Adressen, für meine Internetaccounts und für den T-
Online Zugang meines Vaters.
Wer XP noch nicht hat, kann es sich z.B. bei mvmpc9.ciw.uni-karlsruhe.de
holen zusammen mit UKA_PPP. (Egal ob mit FTP oder WWW).
Benötigt werden folgende Pakete:
XP311-1.EXE
XP311-2.EXE
XP311-U.EXE (so heißt das DIng glaube ich - auf jednen Fall der UUCP Teil)
Wer es noch für FIDO nutzen möchte auch noch:
XP311-F.EXE
Fangen wir an:
Wer XP schon installiert hat für Fido, der braucht nur die UUZ.EXE aus dem
UUCP Paket - eine erneute Registrierung (falls nur für Fido regristriert)
ist nicht erforderlich, so steht es jedenfalls in der DOK von UKA_PPP.
Was ist UKA_PPP?
UKA_PPP ist ein Paket, welches es ermöglicht unter DOS eine PPP/SLIP/CSLIP
Verbindung aufzubauen, und womit man den POP, SMPT und NEWS Server
ansprechen kann. Zusätzlich beigefügt ist ein Telnet und Ftp Client.
BTW: UKA_PPP bekommt man am besten direkt beim Autor: Wieder:
mvmpc9.ciw.uni-karlsruhe.de
Aktuell ist die Version 1.51.
Möchte man, daß sich UKA_PPP ins Verzeichnis \DFUe installiert (Umlaute im
Verzeichnisnamen stören UKA_PPP zwar nicht, aber falls man später PGP
installieren möchte, dann ist es empfehlenswert gleich ein Verzeichnis
ohne Umlaute zu wählen, da PGP diese nicht mag).
Wo waren wir? Verzeichnic anlegen:
md \DFUe
cd \DFUe
[Verzeichnis, wo die UKA_PPP.EXE steht]\UKA_PPP
Jetzt entpackt UKA_PPP alle seine Installationsdateien.
Jetzt die SETUP.BAT laufen lassen.
Es richtet automatisch ein Unterverzeichnis für UKA_PPP ein.
Es erscheint jetzt ein Setup Bildschirm:
Jetzt 'Default' angeben.
Jetzt werden zuerst nach den Schnittstellenparameter gefragt:
Falls das Modem an COM2 hängt, 2F8 angeben, falls an COM1 3F8.
Wenn COM2, dann IRQ3 sonst IRQ4.
Bei der Baudrate 57600 angeben.
Bei der Initstring verwendet man am besten ATZ (ENTER)
Dann verwendet das Modem die gespeicherten Einstellungen.
Jetzt muß man die Anwahlstring des Internetproviders angeben.
Falls Pulswahl ATDP02033789353 btw. Tonwahl: ATDT02033789353
Dann fragt er uns nach dem Protokoll. PPP wählen.
Beim Packettreiberinterrupt, einfach ENTER drücken um die
Defaulteinstellung von 61h zu nehmen.
Jetzt bekommen wir einen neuen Bildschirm. Es steht zwar geschrieben, daß
wir die Infos erst später eingeben müssen, aber wir geben sie jetzt
trotzdem ein.
Dommain Suffix ist bei uns: uni-duisburg.de
IP OF Nameserver ist bei uns: 134.91.3.16
Unser IP ist egal, weil die wegen der PPP Verbindung dynamisch zugewiesen
wird, hier einfach ENTER drücken.
Unsere Gateway ist 134.91.4.1, da wir uns über die 0203/3789353 eingewählt
haben. Irgendwie bekomme ich bei der 0203/378950 keine PPP Verbindung zu
Stande mit UKA_PPP, unter Windows habe ich auch nur diese Nummer
konfiguriert, die andere habe ich noch gar nicht versucht.
Und er soll natürlich den internen Packet Treiber verwenden. :-))
Als nächstes werden die Server für die E-Mail konfiguriert:
POP Srever ist der Rechner, auf dem das Home Verzeichnis liegt, bei mir
e45-hrze.uni-duisburg.de
POP USER ID ist der Loginusername, bei mir sl652kl
POP PASSWORD ist das Passwort, was es bei mir ist, sage ich nicht! :-)
Jetzt fragt er nach dem SMPT Server. Das ist bei uns die unidui.uni-
duisburg.de
Timeserver haben wir nicht, also 0 eingeben. Den Vorgeschlagenen Server
der Uni Karlsruhe können wir nicht benutzen, da wir mit unserer PPP
Verbindung keine Rechner außerhalb der Uni ohne Proxies ansprechen können
:-(((
Time Offset ist -1.
Jetzt wieder Default eingeben (also 3).
News ist als Newsserver OK, also ENTER eingeben.
Nein, jetzt keine Newsgroup abbonnieren.
YARN brauchen wir nicht zu installieren, also n.
Jetzt möchte er eine Probeverbindung aufbauen, um das Login zu 'lernen'. y
für Ja eingeben.
Jetzt baut er eine Verbindung auf. Bei der Frage Host: einfach PPP und
Enter eingeben, eine Sekunde warten, bis komische Zeichen erscheinen
(dürfte dann fat sofort passieren), dann ALT-X drücken.
UKA_PPP meldet sich jetzt akustisch, daß er es geschafft hat eine PPP
Verbindung aufzubauen.
Jetzt solange ENTER drücken, bis wir am Bildschirm sind, wo er wieder
fragt Compuserve, Default oder T-Online steht. Hier natürlich wieder
Default wählen.
Jetzt kommt eine Fehlermeldung, naja, eigentlich nur eine Warnung, daß wir
Online sind, einfach mit ENTER weiter.
Jetzt landen wir im Hauptmenü von UKA_PPP. UKA_PPP ist jetzt fertig
installiert.
Testweise kann man sich eine Telnetverbindung aufbauen zu seinem
Homeverzeichnis.
Auf jeden Fall sollte man nicht vergessen aufzulegen! :-)
Den größten Schritt haben wir jetzt hinter uns. Jetzt muß UKA_PPP nur noch
in Crosspoint eingebunden werden.
Das ist aber gar nicht so schwer.
Unter EDIT/BOXEN eine neue ZCONNECT Box anlegen.
Boxname: UNI-DUISBURG (eigentlich egal)
Username: Der alias oder falls nicht vorhanden, die Benutzerkennung.
(bei mir: mklose)
Kommentar: (beliebig), bei mir Uni-Duisburg Account
MAPS-NAME: Spielt keine Rolle, egal was hier steht.
Realname: Dein ECHTER Name mit Vor und Nachname. Bei mir Michael Klose
Domain: .DE
Jetzt auf den neuen EIntrag gehen, und (E)DIT/(P)oint.
Unter Pointname hier die Benutzerkennung eingeben (bei mir sl652kl). Der
Rest ist egal (einfach so lassen)
Unter (E)dit/(D)iverses unter Eingangsfilter (da steht als Überschrift
Filter dann da drunter Eingang und Ausgang, der Eingangsfilter ist
wichtig) folgendes eintragen:
[UKA_PPP VERZEICHNIS]\x_script.exe xpnews
Das ist bei diesem Bildschirm alles, was eingestellt werden muß.
Jetzt unter /(E)dit/(S)ysopmode folgendes eintragen:
Eingangspuffer: [UKA_PPP Verzeichnis]\INFILE.Z
Ausgangspuffer: [UKA_PPP Verzeichnis]\OUTFILE.Z
Herzlichen Glückwunsch! Crosspoint ist jetzt für den Uni Zugang
eingerichtet! Jetzt kann man ganz normal unter /Netcall/Einzeln pollen!
Newsgroups kann man aber nicht an/abbestellen in Crosspoint. Das An/
Absbestellen von Newsgroups geht über die UKA_PPP Programme SUBSCRIBE und
UNSUBSCRIBE oder so ähnlich. Einfacher ist es ins UKA_PPP Verzeichnis zu
gehen, und die Batchdatei GO aufzurufen:
Jetzt unter:
Setup/Server kann man Unsubscribe oder Subsrcribe wählen.
Dieses macht vor dem ersten poll wenig Sinn, da UKA_PPP sich noch keine
Newsgroupliste geholt hat.
------------- Kleine Anmerkung(en) --------------------------------------
Wundert EUch nicht darüber, daß zuerst die ganzen Newsgroup Messages in
/Junk wandern. Dieses liegt am folgendem:
Wenn eine Mail in *einem* Brett kommt, und dieses Brett noch nicht
existiert, so legt XP das neue Brett an.
Kommen aber nur tausend Crosspostings, weiß XP nicht in welcher Gruppe er
es hinlegen soll, da er keine Lust hat tausend Bretter anzulegen.
Meistens gibt es aber doch ein paar Mails, die nur zu der bestellten
Newsgroup gehören, und dann auch ein Brett angelegt wird.
Falls mehrere der Bretter, wo die Mail cross gepostet ist, in XP angelegt
sind, so ist der Artikel in jeder von diesen zu sehen.
Das nur so als kleien Anmerkung. ich habe auch zuerst gedacht, daß UKA_PPP
Scheiße baut, ist aber nicht so.
BTW: Für XP kann ich noch dringend den Filter Crosssecretary empfehlen.
Ciao!
Michael
Fido: 2:2446/301.7 [PGP KEY per EB]
Internet: mklose@uni-duisburg.de ET 2. Semester
...Diese Zeile ist Werbefrei und Unzensiert!

3184
FAQ/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(i4lfaq.sgml)
dnl Set default installation directory
if test -r ../.config ; then
source ../.config
TARGET_DIR=$CONFIG_FAQDIR
else
TARGET_DIR=./out
fi
dnl Checks for programs.
AC_PROG_INSTALL
AC_PATH_PROG(C_TAR, tar,,$PATH:/usr/sbin:/sbin:/usr/local/bin)
AC_PATH_PROG(C_ZIP, zip,,$PATH:/usr/sbin:/sbin:/usr/local/bin)
AC_PATH_PROG(C_GZIP, gzip,,$PATH:/usr/sbin:/sbin:/usr/local/bin)
AC_PATH_PROG(C_SGML2HTML, sgml2html,sgml2html-not-found-or-installed,$PATH:/usr/sbin:/sbin:/usr/local/bin)
AC_PATH_PROG(C_SGML2TXT, sgml2txt,sgml2txt-not-found-or-installed,$PATH:/usr/sbin:/sbin:/usr/local/bin)
if test "$C_SGML2HTML" = "sgml2html-not-found-or-installed" ; then
AC_MSG_ERROR(sgml2html not found please install it.)
fi
dnl Check where to install.
AC_ARG_WITH(dest,[ --with-dest=DIR set installation directory], \
TARGET_DIR="$withval",)
AC_SUBST(TARGET_DIR)
AC_OUTPUT(Makefile)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +0,0 @@
#!/bin/sh
exit 0

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
$Id: LEGAL.ipppcomp,v 1.1 1999/11/04 23:12:31 he Exp $
In certain countries, distributing or using the software contained
in the 'ipppcomp' directory might conflict with patent law or the
GNU General Public License, Version 2 (GPL). If this applies,
you might need to modify this software package or take other actions
prior to re-distributing this package. If in doubt, ask for legal
advice.
Please read the section 'PATENT ISSUES' of ipppcomp/README.LZS
and the GPL (as present in the file COPYING) for details.

261
Makefile
View File

@ -1,261 +0,0 @@
# $Id: Makefile,v 1.65 2008/08/31 11:38:16 keil Exp $
#
# Toplevel Makefile for isdn4k-utils
#
.EXPORT_ALL_VARIABLES:
export I4LVERSION = 3.22
all: do-it-all
LIBDIR:=/usr/lib
#
# Make "config" the default target if there is no configuration file.
#
# Following line is important for lib and isdnlog (sl).
export ROOTDIR=$(shell pwd)
ifeq (scripts/autoconf.mk,$(wildcard scripts/autoconf.mk))
include scripts/autoconf.mk
do-it-all: subtargets
else
CONFIGURATION = config
do-it-all: config
endif
EXTRADIRS = isdnlog/tools/zone isdnlog/tools/dest
BUILD_ONLY :=
SUBDIRS :=
ifeq ($(CONFIG_ISDNLOG),y)
SUBDIRS := $(SUBDIRS) lib $(EXTRADIRS) isdnlog
BUILD_ONLY := isdnlog/tools/cdb
else
ifeq ($(CONFIG_CTRL_CONF),y)
SUBDIRS := $(SUBDIRS) lib
endif
endif
ifeq ($(CONFIG_ISDNCTRL),y)
SUBDIRS := $(SUBDIRS) isdnctrl
endif
ifeq ($(CONFIG_DIVERTCTRL),y)
SUBDIRS := $(SUBDIRS) divertctrl
endif
ifeq ($(CONFIG_IPROFD),y)
SUBDIRS := $(SUBDIRS) iprofd
endif
ifeq ($(CONFIG_ICNCTRL),y)
SUBDIRS := $(SUBDIRS) icn
endif
ifeq ($(CONFIG_HISAXCTRL),y)
SUBDIRS := $(SUBDIRS) hisax
endif
ifeq ($(CONFIG_RCAPID),y)
SUBDIRS := $(SUBDIRS) capi20 capiinfo
else
ifeq ($(CONFIG_AVMCAPICTRL),y)
SUBDIRS := $(SUBDIRS) capi20 capiinfo
endif
endif
ifeq ($(CONFIG_AVMCAPICTRL),y)
SUBDIRS := $(SUBDIRS) avmb1 capiinit
endif
ifeq ($(CONFIG_ACTCTRL),y)
SUBDIRS := $(SUBDIRS) act2000
endif
ifeq ($(CONFIG_LOOPCTRL),y)
SUBDIRS := $(SUBDIRS) loop
endif
ifeq ($(CONFIG_EICONCTRL),y)
SUBDIRS := $(SUBDIRS) eicon
endif
ifeq ($(CONFIG_IMON),y)
SUBDIRS := $(SUBDIRS) imon
endif
ifeq ($(CONFIG_IMONTTY),y)
SUBDIRS := $(SUBDIRS) imontty
endif
ifeq ($(CONFIG_IPPPSTATS),y)
SUBDIRS := $(SUBDIRS) ipppstats
endif
ifeq ($(CONFIG_XMONISDN),y)
SUBDIRS := $(SUBDIRS) xmonisdn
endif
ifeq ($(CONFIG_XISDNLOAD),y)
SUBDIRS := $(SUBDIRS) xisdnload
endif
ifeq ($(CONFIG_IPPPD),y)
SUBDIRS := $(SUBDIRS) ipppd
endif
ifeq ($(CONFIG_VBOX),y)
SUBDIRS := $(SUBDIRS) vbox
endif
ifeq ($(CONFIG_RCAPID),y)
SUBDIRS := $(SUBDIRS) rcapid
endif
ifeq ($(CONFIG_CAPIFAX),y)
SUBDIRS := $(SUBDIRS) capifax
endif
ifeq ($(CONFIG_PPPDCAPIPLUGIN),y)
SUBDIRS := $(SUBDIRS) pppdcapiplugin
endif
ifeq ($(CONFIG_GENMAN),y)
SUBDIRS := $(SUBDIRS) doc
endif
ifeq ($(CONFIG_FAQ),y)
SUBDIRS := $(SUBDIRS) FAQ
endif
ifeq ($(CONFIG_EUROFILE),y)
SUBDIRS := $(SUBDIRS) eurofile
endif
ifneq ($(SUBDIRS),)
ifeq ($(filter lib,$(SUBDIRS)),)
SUBDIRS := lib $(SUBDIRS)
endif
endif
subtargets: $(CONFIGURATION)
set -e; for i in `echo $(BUILD_ONLY) $(SUBDIRS)`; do $(MAKE) -C $$i all; done
rootperm:
@echo 'main(int argc,char**argv){unlink(argv[0]);return(getuid()==0);}'>g
@if gcc -x c -o G g && rm -f g && ./G ; then \
/bin/echo -e "\n\n Need root permission for (de)installation!\n\n"; \
exit 1; \
fi
install:
set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i install; done
@: || if [ -c $(DESTDIR)/dev/isdnctrl0 ] && ls -l $(DESTDIR)/dev/isdnctrl0 | egrep "[[:space:]]45,[[:space:]]+64[[:space:]]" > /dev/null; \
then \
/bin/echo -e '(some) ISDN devices already exist, not creating them.\nUse scripts/makedev.sh manually if necessary.'; \
else \
sh scripts/makedev.sh $(DESTDIR) ; \
fi
uninstall: rootperm
set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i uninstall; done
#
# targets clean and distclean go through ALL directories
# regardless of configured options.
#
clean:
-set -e; \
for i in `echo ${wildcard */GNUmakefile}`; do \
$(MAKE) -i -C `dirname $$i` clean; \
done;
-set -e; \
for i in `echo ${wildcard */Makefile}`; do \
$(MAKE) -i -C `dirname $$i` clean; \
done;
for i in `echo $(BUILD_ONLY) $(EXTRADIRS)`; do \
if [ -f $$i/Makefile ]; then $(MAKE) -i -C $$i clean; fi; \
done;
-rm -f *~ *.o
distclean: clean
-$(MAKE) -C scripts/lxdialog clean
-set -e; \
for i in `echo ${wildcard */GNUmakefile}`; do \
$(MAKE) -i -C `dirname $$i` distclean; \
done;
-set -e; \
for i in `echo ${wildcard */Makefile}`; do \
if [ -f $$i ] ; then \
$(MAKE) -i -C `dirname $$i` distclean; \
fi ; \
done;
for i in `echo $(BUILD_ONLY) $(EXTRADIRS)`; do \
if [ -f $$i/Makefile ]; then $(MAKE) -i -C $$i distclean; fi; \
done;
-rm -f *~ .config .config.old scripts/autoconf.h .menuconfig \
Makefile.tmp .menuconfig.log scripts/defconfig.old \
scripts/autoconf.mk \
find . -name '.#*' -exec rm -f {} \;
scripts/lxdialog/lxdialog:
@$(MAKE) -C scripts/lxdialog all
scripts/autoconf.h: .config
perl scripts/mk_autoconf.pl
scripts/autoconf.mk: .config
perl scripts/mk_autoconf.pl
cfgerror:
@echo ""
@echo "WARNING! Configure in $(ERRDIR) failed, disabling package"
@echo ""
@sleep 1
@cp etc/Makefile.disabled $(ERRDIR)/Makefile
# Next target makes three attempts to configure:
# - if a configure script exists, execute it
# - if a Makefile.in exists, make -f Makefile.in config
# - if a Makefile already exists, make config
#
subconfig: scripts/autoconf.h scripts/autoconf.mk
@echo Selected subdirs: $(BUILD_ONLY) $(SUBDIRS)
@set -e; \
for i in `echo $(BUILD_ONLY) $(SUBDIRS)`; do \
if [ -x $$i/configure ] ; then \
/bin/echo -e "\nRunning configure in $$i ...\n"; sleep 1; \
(cd $$i; \
test "$$i" = "eicon" && FIRMWAREDIR_OPT="--with-firmware=$(CONFIG_DATADIR)"; \
./configure $(FIRMWAREDIR_OPT) \
--sbindir=$(CONFIG_SBINDIR) \
--bindir=$(CONFIG_BINDIR) \
--mandir=$(CONFIG_MANDIR) \
--datadir=$(CONFIG_DATADIR) \
--libdir=$(LIBDIR) \
--sysconfdir=$(CONFIG_I4LCONFDIR) \
|| $(MAKE) -C ../ ERRDIR=$$i cfgerror); \
elif [ -f $$i/Makefile.in ] ; then \
/bin/echo -e "\nRunning make -f Makefile.in config in $$i ...\n"; sleep 1; \
$(MAKE) -C $$i -f Makefile.in config; \
elif [ -f $$i/Makefile ] ; then \
/bin/echo -e "\nRunning make config in $$i ...\n"; sleep 1; \
$(MAKE) -C $$i config; \
fi; \
done
#
# Next target uses a second tempory Makefile
# because new .config has to be re-included.
#
menuconfig: scripts/lxdialog/lxdialog
@scripts/Menuconfig scripts/config.in
@cp Makefile Makefile.tmp
$(MAKE) -f Makefile.tmp subconfig
@rm -f Makefile.tmp
#
# For testing: runs Menuconfig only
#
testconfig: scripts/lxdialog/lxdialog
@scripts/Menuconfig scripts/config.in
config: menuconfig
mrproper: distclean
archive: distclean
@(ln -nvfs $(ROOTDIR) ../isdn4k-utils-$(I4LVERSION) ;\
mkdir -p ../distisdn ;\
tar cvhzf ../distisdn/isdn4k-utils-$(I4LVERSION).tar.gz --exclude-vcs ../isdn4k-utils-$(I4LVERSION) ;\
rm ../isdn4k-utils-$(I4LVERSION) )
distarch: distclean
(ln -nvfs $(ROOTDIR) ../isdn4k-utils-$(I4LVERSION) ;\
mkdir -p ../distisdn ;\
tar -cvhz -X distexclude -f ../distisdn/isdn4k-utils-$(I4LVERSION).tar.gz \
--exclude-vcs ../isdn4k-utils-$(I4LVERSION) ;\
rm ../isdn4k-utils-$(I4LVERSION) )
dist: distarch

View File

@ -1,9 +0,0 @@
all: isdn-faq.html
isdn-faq.html: isdn-faq.txt htmlify.pl Makefile
./htmlify.pl isdn-faq.txt > isdn-faq.html
clean:
rm -f isdn-faq.html
distclean: clean

View File

@ -1,132 +0,0 @@
#!/usr/bin/perl
&doit("all");
exit(0);
sub doit
{
local($part) = @_;
local($lang) = "german";
if($part eq "all")
{
print'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">' . "\n";
print'<html><head><title>English-German mini-FAQ for ISDN4Linux</title></head>';
print'<body text="#000000" link="#0000ff" vlink="#000080" bgcolor="#ffffff">';
print"<pre>\n";
}
open(INFILE, $ARGV[0]) || die("Couldn't open $ARGV[0]") if($part eq "all");
open(INFILE2, $ARGV[0]) || die("Couldn't open $ARGV[0]") if($part ne "all");
while($line= (($part eq "all") ? <INFILE> : <INFILE2>))
{
$line =~ s/&/&amp;/g;
$line =~ s/</&lt;/g;
$line =~ s/>/&gt;/g;
if($line =~ /http:/)
{
$line =~ s/(http:[^ \n]+)/<a href="\1">\1<\/a>/g;
}
elsif($line =~ /ftp:/)
{
$line =~ s/(ftp:[^ \n]+)/<a href="\1">\1<\/a>/g;
}
elsif($line =~ /www./)
{
$line =~ s/(www.[^ \n]+)/<a href="http:\/\/\1">\1<\/a>/;
}
$line =~ s/\&lt;([A-Za-z0-9_.-]+\@[a-zA-Z0-9.-]+)\&gt;/<a href="mailto:\1">&lt;\1&gt;<\/a>/g;
if($line =~ /mini-faq f/i)
{
$line =~ s/^/<\/pre><h1>/;
$line =~ s/\n/<\/h1><pre>/;
}
if($line =~ /see below/i)
{
$line =~ s/^/<\/pre><h1><a href="#toc0">/;
$line =~ s/\n/<\/a><\/h1><pre>/;
}
if($line =~ /^0/) {$lang = "english"};
if($lang eq "german")
{
if($line =~ /^[0-9]+\./)
{
if($part eq "all")
{
$line =~ s/^([0-9]+)\./<br><a name="frage\1">\1.<\/a><b>/;
}
else
{
$line =~ s/^([0-9]+)\./<br><a href="#frage\1">\1.<\/a><b>/;
}
$header = "yes";
}
$line =~ s/(Frage ([0-9]+))/<a href="#frage\2">\1<\/a>/g;
}
else
{
if($line =~ /^[0-9]+\./)
{
if($part eq "all")
{
$line =~ s/^([0-9]+)\./<br><a name="question\1">\1.<\/a><b>/;
}
else
{
$line =~ s/^([0-9]+)\./<br><a name="toc\1" href="#question\1">\1.<\/a><b>/;
}
$header = "yes";
}
$line =~ s/(question ([0-9]+))/<a href="#question\2">\1<\/a>/g;
}
$line =~ s/^ /<br> /;
if($line =~ /^$/)
{
if($header eq "yes")
{
$line =~ s/^$/<\/b>/;
$header = "no";
}
else
{
$line =~ s/^$//;
}
}
if($line =~ /germantoc/ && $part eq "all")
{
&doit("germantoc");
}
elsif($line =~ /englishtoc/ && $part eq "all")
{
&doit("englishtoc");
}
elsif($part eq "all")
{
print $line;
}
elsif($part eq "germantoc" && $lang eq "german" &&
($header eq "yes" || $line =~ /<\/b>/))
{
print $line;
}
elsif($part eq "englishtoc" && $lang eq "english" &&
($header eq "yes" || $line =~ /<\/b>/))
{
print $line;
}
}
close(INFILE2);
if($part eq "all")
{
print"</pre>";
print '<p> <a href="http://validator.w3.org/check/referer"><img border=0
src="http://validator.w3.org/images/vh32"
alt="Valid HTML 3.2!" height=31 width=88></a>
</p>';
print"</body></html>\n";
}
}

View File

@ -1,388 +0,0 @@
English-German mini-FAQ for ISDN4Linux
Englisch-Deutsche mini-FAQ für ISDN4Linux
Mini-FAQ online: http://home.worldonline.dk/~ehcorry/linux/isdn-faq.html
See below for English!
germantoc
1. Wo gibt es die FAQ?
http://www.mhessler.de/i4lfaq.html (View + Download)
Die FAQ wird in Englisch gewartet, eine Deutsche Übersetzung findet sich
unter http://www.wolf-b.de/i4l/i4lfaq-de.html
2. Wo gibt es eine einfache Anleitung für ISDN4Linux?
http://www.franken.de/users/klaus/ Wenn du lieber Niederländisch oder
Englisch liest, kann http://www.wurtel.demon.nl/ nützlich sein. Es gibt
auch eine französische Mini-HOWTO unter
http://www.linux-france.org/article/connex/ISDN
3. Wo gibt es die SuSE Support-Datenbank, wo viele Fragen zu ISDN4Linux
beantwortet werden?
http://sdb.suse.de/sdb/de/html/katlist.ISDN.html
4. Was gibt es sonst für Dokumentationen?
'man isdnctrl', schau auch unter "SEE ALSO". Auch 'man ipppd'. Und die
README-Dateien in /usr/src/linux/Documentation/isdn Viele von den HOWTOs
haben generell mit Netzwerk zu tun, und sind auch für ISDN4Linux
relevant. Siehe deinen Lieblingsmirror vom LDP, z.B.
http://SunSITE.auc.dk/ldp/HOWTO/HOWTO-INDEX-3.html
5. Wo gibt es die "geheime FAQ"?
http://www.deja.com/=dnc/ bzw. http://www.deja.com/=dnc/home_ps.shtml
Suche mit Stichwort isdn4linux (wer hätt's gedacht). Nicht vergessen,
auch in der Datenbank mit den alten Artikeln zu suchen, wenn du erstmal
nichts findest.
6. Die erste (Netscape-)Verbindung geht immer kaputt wegen dynamischen
IP-Adressen.
Hast du SuSE 5.2, 3. Auflage oder neuer schreibst du in /etc/rc.config
IP_DYNIP="yes"
Sonst (oder wenn du nicht neu booten willst) machst du
echo 5 > /proc/sys/net/ipv4/ip_dynaddr
Das kannst du z.B. auch in /etc/rc.d/rc.local schreiben.
Die Nummer 5 ist immer unproblematisch, aber die genauen Nummern, die
verstanden werden, sind von Kernel zu Kernel unterschiedlich. Siehe
/usr/doc/kernel-doc-deineversion/networking/ip_dynaddr.txt oder
/usr/src/linux/Documentation/networking/ip_dynaddr.txt und
http://sdb.suse.de/sdb/de/html/dynippatch.html
Wenn die Verbindung von einer Windows-Maschine stammt (und die
ISDN4Linux-Maschine Masquerading/NAT macht), kann es sein, daß
die Windows-Maschine einfach zu schnell aufgibt. Die Default-Wert von
Hkey_Local_Machine\System\CurrentControlSet\Services\VxD\MSTCP\MaxConnectRetries
ist 3 (6 Sekunden), sollte aber mindestens 5 (24 Sekunden) sein.
Das kann man mit dem Registry Editor ändern.
7. Es wird immer wieder gewählt, besonders wenn ich hart auflege (ohne auf
Timeout zu warten).
Starte den RST-Provoking-Mode. Zum Aktivieren siehe Frage 6 und siehe
auch http://sdb.suse.de/sdb/de/html/katlist.ISDN.html Wenn du Kernel
2.2 verwendest, siehe auch
http://www-users.rwth-aachen.de/Michael.Mueller4/dynip.html Mit neueren
Kernels (2.2.14) musst du stattdessen diese Version nehmen:
http://www.grueneberg.de/linux/linux-2.2.14-rst.patch Für die 2.3er
Kernels ist der Patch noch nicht verfügbar.
8. Nur die erste ISDN-Verbindung funktioniert, wegen Routing-Problemen.
oder
Die Verbindung scheint zu klappen, aber keine Daten werden übertragen,
und ISDN4Linux legt nach kurzer Zeit wieder auf.
Du hast wahrscheinlich keine Default-Route. Siehe das Output von 'route
-n'. Du brauchst die Zeile:
/sbin/route add default $1
in deiner /etc/ppp/ip-up-Datei (für Red Hat etc/ppp/ip-up.local) und
deiner /etc/ppp/ip-down-Datei (für Red Hat etc/ppp/ip-down.local). Diese
Dateien müssen genau mit:
#!/bin/sh
am Anfang der ersten Zeile anfangen, und müssen ausführbar sein (siehe
'man chmod'). Befehle müssen mit vollem Pfad angegeben werden, z.B.
'/sbin/route ...', nicht einfach 'route ...'.
9. Wird meine Karte unterstützt? Welchen Optionen brauche ich, wenn ich die
Modulen lade?
Schau in den README-Dateien in /usr/src/linux/Documentation/isdn und frag
Deja News mit den Stichwörtern "isdn4linux" und "wiedeinekartegenauheisst".
10. Wo gibt es die neusten ISDN4Linux Software?
Die Utils von ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/testing
Den Kernel-Treiber aus dem neusten offiziellen Kernel von www.kernel.org
oder ein Mirror, z.B. ftp://ftp.de.kernel.org/pub/linux/kernel
Wenn der Kernel sehr neu sein muß (aus der -ac Serie) schaue unter z.B.
ftp://ftp.de.kernel.org/pub/linux/kernel/people/alan/
Siehe auch den Web-Server deines Distributions, und deine lokale
RPM-Repository, z.B. http://SunSITE.auc.dk/linux/RPM/
11. Es wird gewählt, aber die Verbindung klappt nicht.
Du musst in ipppd debug einschalten, und dann in /var/log/messages
nachschauen (siehe auch Frage 14). Dabei heisst:
sent ConfReq ... Dein Rechner wollte etwas
sent ConfRej ... Dein Recher weigerte sich etwas zu tun
sent ConfNak ... Dein Rechner wollte was anderes stattdessen machen
sent ConfAck ... Dein Rechner stimmte etwas zu
rcvd ... Was die Gegenseite dazu gesagt hat
12. Was bedeuten diese komischen 'Cause'-Nummern?
Siehe 'man isdn_cause'
13. Kann ich meinen externen Terminal-Adapter mit ISDN4Linux verwenden?
Nein, nicht mit ISDN4Linux aber schon mit Linux, Sie werden wie Modems
behandelt. Du brauchst also pppd und vielleicht diald. Fragen 6, 7, 8
und 11 sind auch für dich relevant. Bedingung: AT-Befehlssatz zur
Steuerung: Fritz!X-PC und Eumex 404 werden nicht unterstützt.
14. Ich habe diverse Debug-Options in ipppd und isdnctrl eingeschaltet, aber
es erscheint nichts in der Datei /var/log/messages.
Es kann sein, daß du dein Syslog anders konfigurieren musst. Siehe z.B.
'man syslogd' und 'man syslog.conf' und die Datei /etc/syslog.conf.
Falls deine Distribution kein GUI-Tool zum Administrieren vom Syslog
bietet kannst du auch als Schnelllösung:
echo '*.* -/var/log/isdnfix' >> /etc/syslog.conf
killall -HUP syslogd
tippen. Dann wird alles Relevante und Irrelevante in /var/log/isdnfix
geschrieben. Um das hinterher zu entfernen (empfehlenswert da die Datei
schnell sehr groß wird) schreibst du:
grep -v isdnfix /etc/syslog.conf > /etc/syslog.conf.new
mv -f /etc/syslog.conf.new /etc/syslog.conf
killall -HUP syslogd
15. Welche Pakete installiere ich, oder Man-Seiten lese ich, oder
Such-Stichwörter in Deja News verwende ich für:
Alles: ISDN4Linux Kernel-Modul und isdn4kutils
Ein Telefonbeantworter: vbox oder vgetty
Eine Fax-Maschine: Siehe FAQ (Frage 1)
Sync-PPP (Internet): isdnctrl und ipppd
Async-PPP oder externer ISDN: pppd und diald
ISDN Terminal-Programm: minicom und /dev/ttyI0 (man ttyI)
Euro-File Transfer: Noch nicht (EFTP4Linux)
ISDN-Anrufe mitprotokollieren: isdnlog in dual mode
ISDN-Anrufe belauschen: geht nicht mit ISDN4Linux
Lokalnetz ans Internet: Masquerading/ipfwadm. Alternativ mit
squid/sendmail. Siehe auch Frage 2.
Plug-n-Play ISA-Karten: isapnptools.
16. Die ISDN-Verbindung läuft, und ich kann numerischen Adressen pingen, z.B.
mit 'ping -c 20 198.41.0.4' aber Netscape etc. funktioniert nicht.
Du hast Probleme mit Nameserver-Einstellungen. Siehe Frage 2.
17. Die ISDN-Verbindung läuft, aber ich kann nicht mal numerischen Adressen
pingen, z.B. mit 'ping -c 20 198.41.0.4' und Netscape etc. funktioniert
nicht.
Du hast Probleme mit Routing. Siehe Fragen 8 und 2.
18. Ich verstehe die verschiedenen Formen von Rufnummerübermittlung (CLIP -
CLIR - COLP - COLR) nicht.
Siehe CLIP-CLIR-COLP-COLR-Mini-FAQ unter
http://home.t-online.de/home/rbschmitt/cccc.htm
19. Es will einfach nicht klappen!
Frag mal hier in der Newsgruppe/Mailingliste. Wir versuchen hilfreich zu
sein, aber es geht leichter, wenn wir ein Paar Infos haben:
Versionsnummern vom Kernel, ISDN Treiber Version (wenn der ISDN Treiber
nicht aus dem Kernel stammt), Distribution (z.B. Red Hat 7.6), isdn4kutils.
Kurze Auszüge aus /var/log/messages wenn da was steht. Das Output von
'route -n', 'ifconfig', 'lsmod' und 'isdnctrl list ippp0'
Kommentare wilkommen, bitte direkt an mich, Erik Corry <erik@arbat.com>.
English mini-FAQ for ISDN4Linux
englishtoc
0. Why is everyone speaking German here?
That's because they are mostly German. If you start an English thread it
will be continued in English. If you have trouble getting this group
(de.alt.comm.isdn4linux) it is also available as a mailing list. See the
FAQ. Since most Germans would be more likely to take part in an English
thread here than in a new English-only mailing list, there seems little
point in a split.
1. Where's the FAQ?
http://www.mhessler.de/i4lfaq.html (View + Download)
2. Where can I find a simple guide to using ISDN4Linux?
See http://www.wurtel.demon.nl/ (also available in Dutch). There is
a different HOWTO in German on http://www.franken.de/users/klaus/
You will also find a French Mini-HOWTO under
http://www.linux-france.org/article/connex/ISDN
3. Where is the SuSE Support Database, where many of my questions are
answered?
http://sdb.suse.de/sdb/en/html/katlist.ISDN.html
4. What other documentation is available?
'man isdnctrl', see also under "SEE ALSO". Also 'man ipppd'. And the
README files in /usr/src/linux/Documentation/isdn Many of the HOWTOS
deal with general networking questions and are relevant to ISDN4Linux,
too. See your favourite LDP mirror, eg.
http://SunSITE.auc.dk/ldp/HOWTO/HOWTO-INDEX-3.html
5. Where is the "secret FAQ"?
http://www.deja.com/=dnc/ or http://www.deja.com/=dnc/home_ps.shtml
Search with the keyword isdn4linux (surprise, surprise).
Many articles, but not all, are in German. Don't forget to look in the
'past' article database if you don't find anything in the 'current' one.
6. The first (Netscape-)connection never works because of dynamic IP addresses.
If you have SuSE 5.2, 3rd edition or newer you can put
IP_DYNIP="yes"
in /etc/rc.config. Otherwise (or if you don't want to reboot) you do an:
echo 5 > /proc/sys/net/ipv4/ip_dynaddr
You can put that in /etc/rc.d/rc.local The value 5 is always safe but
the exact numbers understood vary from kernel to kernel. The
documentation for your kernel can be found in
/usr/doc/kernel-doc-yourversion/networking/ip_dynaddr.txt or
/usr/src/linux/Documentation/networking/ip_dynaddr.txt and
http://sdb.suse.de/sdb/en/html/dynippatch.html
If the problematic connection comes from a Windows machine (and goes through
the ISDN4Linux machine because of masquerading/NAT) it could be that the
Windows machine is simply giving up too quickly. The default value of
Hkey_Local_Machine\System\CurrentControlSet\Services\VxD\MSTCP\MaxConnectRetries
is 3 (6 seconds). It should be at least 5 (24 seconds). You can change it
with the registry editor.
7. ISDN4Linux keeps redialling, especially if I do a hard hangup (without
waiting for timeout).
This can be alleviated with RST-provoking. Activate this as in question
6 and see also http://sdb.suse.de/sdb/en/html/katlist.ISDN.html If you
use kernel 2.2 see also
http://www-users.rwth-aachen.de/Michael.Mueller4/dynip.html For newer
2.2 kernels (2.2.14) that patch will not go in cleanly, use this instead:
http://www.grueneberg.de/linux/linux-2.2.14-rst.patch The patch has not
yet been ported to the 2.3 kernels.
8. Only the first ISDN connection works because of routing problems.
or
The connection appears to work, but no data is sent over the link. After
a short interval, ISDN4Linux cuts the connection again.
You probably don't have a default route. See the output of 'route -n'.
You need the line
/sbin/route add default $1
in your /etc/ppp/ip-up file (for Red Hat etc/ppp/ip-up.local)
and your /etc/ppp/ip-down file (for Red Hat etc/ppp/ip-down.local).
These files should have the exact text:
#!/bin/sh
at the start of the first line, and be executable (see 'man chmod').
Commands should be written with full paths, eg '/sbin/route ...', not
just 'route ...'.
9. Is my card supported? What options should I give when loading modules?
See the README-files in /usr/src/linux/Documentation/isdn and ask Deja
News with the search word "isdn4linux" and "yourcardsprecisename".
10. Where can I get the newest ISDN4Linux software?
Get the utils from ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/testing
Get the kernel driver from the newest official kernel from www.kernel.org
or a mirror, eg. ftp://ftp.us.kernel.org/pub/linux/kernel
If you need a very new kernel (in the -ac series) check eg.
ftp://ftp.us.kernel.org/pub/linux/kernel/people/alan/
See also the web/ftp server of your distribution and your local RPM
repository, eg. http://SunSITE.auc.dk/linux/RPM/
11. ISDN4Linux dials, but the connection isn't set up.
You have to switch on debug in ipppd, and then take a look at
/var/log/messages (see also question 14). Here are some explantions
to help you see what is going on:
sent ConfReq ... What your machine wanted
sent ConfRej ... Your machine rejected a configuration/password option
sent ConfNak ... Your machine suggested something else instead
sent ConfAck ... Your machine agreed to something
rcvd ... What the remote server said
12. What do these funny 'cause' codes mean?
See 'man isdn_cause'
13. Can I use ISDN4Linux with my external ISDN Terminal Adapter?
No, they don't work with ISDN4Linux, but they do work with Linux. You
treat these like a modem, so you need pppd and perhaps diald. Questions
6, 7, 8 and 11 still apply, using pppd instead of ipppd. Note: AT-
commands must be understood by the device. External 'winmodems' like
Fritz!X-PC and Eumex 404 are not supported.
14. I activated various debug options in ipppd and isdnctrl, but I don't see
anything in /var/log/messages.
You may need to reconfigure syslog. See eg. 'man syslogd' and 'man
syslog.conf' and the file /etc/syslog.conf. If you distribution doesn't
have a GUI-tool for configuring syslog you could use the quick commands:
echo '*.* -/var/log/isdnfix' >> /etc/syslog.conf
killall -HUP syslogd
at the command prompt. This will cause all relevant and irrelevant data
to be logged to /var/log/isdn. Don't leave this logging around as the
log file will quickly become very big. You can remove it again with:
grep -v isdnfix /etc/syslog.conf > /etc/syslog.conf.new
mv -f /etc/syslog.conf.new /etc/syslog.conf
killall -HUP syslogd
15. Which packages should I install, or man pages/HOWTOs should I read, or
keywords should I use in Deja News for:
Everything: ISDN4Linux kernel module and isdn4kutils
A telephone answering machine vbox or vgetty
A fax machine: See FAQ (question 1).
Sync-PPP (Internet): isdnctrl and ipppd
Async-PPP or external ISDN: pppd and diald
ISDN terminal programm: minicom and /dev/ttyI0 (man ttyI)
Euro-File Transfer: Not yet (EFTP4Linux)
Logging of ISDN calls: isdnlog in dual mode
Bugging of ISDN calls: not possible with ISDN4Linux
Local area network to the Internet: Masquerading/ipfwadm. Alternatively
with squid/sendmail. See also question 2
Plug-n-Play ISA cards: isapnptools.
16. The ISDN connection is working, and I can ping numeric addresses eg with
'ping -c 20 198.41.0.4' but Netscape etc. don't work.
You have a problem with your nameserver. See question 2.
17. The ISDN connection is working, but I can't even ping numeric addresses
eg. with 'ping -c 20 198.41.0.4' and Netscape etc. don't work.
You have a problem with your routing. See questions 8 and 2.
18. I don't understand the various forms of calling line identification
(CLIP - CLIR - COLP - COLR).
There's a Mini-FAQ about this on http://home.t-online.de/home/rbschmitt/cccc.htm
Unfortunately it's not available in English.
19. It just doesn't work!
Ask us in the news group/mailing list. We try to be helpful, but it is
simpler if we have a few facts:
Version numbers for the kernel, the ISDN driver version number (if it didn't
come with the kernel), distribution name (eg. Red Hat 7.6) and isdn4kutils.
Short extracts from /var/log/messages if it contains anything interesting. The
output from 'route -n', 'ifconfig', 'lsmod' and 'isdnctrl list ippp0'
Corrections and suggestions welcome, please send them directly to me,
Erik Corry, <erik@arbat.com>.
Thanks to Andreas Barth, Wolfgang Bornath, Frank Derichsweiler, Klaus Franken,
Florian Groß, Andre Grueneberg, Jürgen Lennefer, Eyal Lotem, Christian
Otto-Lange, Wolfgang Schetter and Gerhard Sittig.
--
Erik Corry

39
NEWS
View File

@ -1,39 +0,0 @@
Recent changes made to the isdn4k-utils archive are listed here,
most recent on top.
------------------
2000/01/26 armin (Armin Schindler <mac@melware.de>)
eiconctrl - updates for isdnlog and V1.1 package.
1999/10/12 lt (Leopold Toetch <lt@toetsch.at>)
Destination database replaces country stuff and getAreacode
1999/10/08 he (Henner Eisen <eis@baty.hanse.de)
eurofile - further integration in isdn4k-utils config/built,
removed entry from distexclude file.
1999/09/06 hessler (Matthias Hessler <hessler@isdn4linux.de>
New FAQ is now moved from FAQ2 to FAQ.
1999/08/18 armin (Armin Schindler <mac@melware.de>)
eiconctrl - XLOG retrieve function for all supported active cards added.
1999/08/03 paul (Paul Slootman <paul@isdn4linux.de>)
ipppd - It's not fatal if a route exists when adding it.
xmonisdn - possible security problems
See manpage 'SECURITY ISSUES' section for details. In short,
xmonisdn now refuses to run setuid root to prevent shell
scripts being run with root permissions.
1999/06/23 paul (Paul Slootman <paul@isdn4linux.de>)
xisdnload - fixed problem when more than one channel is in use.
1999-06-29 he (Henner Eisen <eis@baty.hanse.de)
eurofile - eftp4linux EUROFILE implementation initially checked in
1999/06/07 paul (Paul Slootman <paul@isdn4linux.de>)
This file started!
isdnctrl - added `status' command, which shows the connection status of
interfaces (connected yes/no, to what number).
ipppd - now should work on kernel 2.3.x (allocation failed in
SIOCGIFCONF ioctl)

152
README
View File

@ -1,152 +0,0 @@
This is the README file for the "isdn4k-utils" package from "The i4l-crew".
This package contains the following stuff:
1. Runtime configuration tools:
isdnctrl, general link-level setup utility.
iprofd, daemon for realizing AT&W0 on ttyI's.
icnctrl, setup utility for the icn driver.
hisaxctrl, setup utility for the HiSax driver.
avmcapictrl setup utility for the avmb1 driver.
actctrl setup utility for the act2000 driver.
eiconctrl setup utility for the eicon driver.
divertctrl setup utility for dss1 diversion services
2. Libraries for applications
libcapi20 a modular CAPI20 library which supports modules for different
Controller types such as native CAPI20 kernel drivers and
different remote CAPI versions. A CAPI library module for
mISDNv2 is available in the mISDNuser project.
3. Tools for monitoring activity:
imon, a ncurses based utility for monitoring ISDN-activities.
imontty, a tty based utility for monitoring ISDN-activities.
isdnlog, a set of utilities for connection logging.
ipppstats a utility for showing syncPPP statistics.
xisdnload, an xload-like meter.
xmonisdn, a utility for monitoring and controlling ISDN-activity.
isdnmon, a Tcl/Tk based utility for monitoring ISDN-activities.
4. Applications:
vbox, an answering machine/voice mailbox.
ipppd, daemon need for syncPPP and MPP.
5. Miscellaneous:
scripts/makedev.sh for creating the ISDN device files under /dev .
6. Documentation:
A very detailed FAQ and the generic manpages ttyI.4, isdninfo.4,
isdn_audio.4 and isdn_cause.7.
Manpages for the above utilities:
actctrl.8 avmcapictrl.8, hisaxctrl.8 icnctrl.8, eiconctrl.8, imon.8, ipppd.8,
ipppstats.8, iprofd.8, isdnctrl.8, isdnlog.8, isdnrep.1,
isdnrate.1, rate-files.5, xisdnload.1x and xmonisdn.1x
IMPORTANT:
This will be the last release of isdn4k-utils as is. From now
(February 2000) on, the package will be splitted into the
following packages:
base: common configuration tools and Documentation
isdnlog: D-Channel logging, charge calculation etc.
audio: the answering machine vbox
additional: ipppcomp ipppstats iprofd xisdnload xmonisdn
hardware-dependent packages:
hisax: tools for passive isdn cards
avmb1: tools for the AVM B1/T1/M1/M2 *active* cards
(not for Fritz!classic, Fritz!pnp, Fritz!PCI, these are in hisax)
act2000: tools for IBM Active 2000
eicon: tools for Eicon.Diehl *active* cards
icn: tools for ICN 2B and 4B
loop: tools for the loopback isdn device
These packages will appear on ftp.isdn4linux.de when they are ready.
COPYRIGHT/COPYING:
Unless explicitly stated, all programs in this package can be freely
redistributed and/or modified under the terms of the GNU General
Public License as published by the Free Software Foundation; either
version 2, or (at your option) any later version.
(see gpl-2.0.txt)
Some parts (e.g libraries) are covered by the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
(see lgpl-2.1.txt)
This package 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 will find detatils about which license apply in the README files
of the subdirectories.
System prerequisites:
To use this package, you need a kernel with an ISDN-subsystem configured.
To get a such a kernel, take a clean standard-kernel (Version > 2.0.37 or
> 2.2.14 resp.) enable the isdn-related features you want and build the
kernel as usual. Older kernels may work as well, but bugs have been found
and fixed, so better use the recommended versions (or above)
3. Configuration, Compilation.
Run "make config"
This will run an interactive configuration tool and the various
configuration-scripts for each sub-package. (You may know that
tool from kernel menuconfig.)
There is a global configuration directory, where most programs
expect their configuration files. The default is /etc/isdn.
- Alternatively you can edit the .config file by hand (once that
has been created once with "make config"), and run "make subconfig"
instead. This might be useful if you want to automate the building
of the package, e.g. for a Red Hat rpm or a Debian deb.
Run "make"
This builds all previously selected utilities.
4. Installation
For the following steps, root permissions are necessary
Install the utilities, the man pages and config-files:
make install
The config files usually are installed in /etc/isdn if not
specified otherwise during configuration.
If no existing ISDN devices in /dev are detected (via an admittedly
simple test), script/makedev.sh is run during "make install". Check
that the permissions / groups are suitable for your needs.
You can run the makedev.sh script again if necessary.
5. Application
The directory ./etc contains an example startup-script which gets
not installed automatically, because it MUST BE CONFIGURED IN ANY
CASE! Please don't try to connect to the Internet without setting
your own IP-addresses. This script is intended to be used with
the modularised version of the ISDN-subsystem. Refer to the
Documentation/isdn subdirectory of your kernel-source-tree for
more information on configuring Lowlevel drivers.
For the utilities refer to the man pages or look into their
subdirectories for Documentation.
For tips, troubleshooting etc. look into the FAQ subdirectory.
-Fritz

View File

@ -1,71 +0,0 @@
# $Id: Makefile.in,v 1.5 2002/07/19 19:03:49 keil Exp $
#
# Makefile for actctrl
# (C) 1997 Fritz Elfert
#
#
SHELL = /bin/sh
CFLAGS = -Wall -O2
INCLUDES = -I.
DEFS =
LDFLAGS = -L../lib @LIBS@
PROGRAM = actctrl
MODULES = actctrl.o
MANPAGE = actctrl.8
FIRMWARE = bip1120.btl
DATADIR = @CONFIG_DATADIR@
SBINDIR = @CONFIG_SBINDIR@
MANDIR = @CONFIG_MANDIR@
MAN8DIR = $(MANDIR)/man8
INSTALL = @INSTALL@
INSTALL_PROGRAM = $(INSTALL) -o 0 -g 0 -m 0750
INSTALL_DATA = $(INSTALL) -o 0 -g 0 -m 0644
INSTALL_MAN = $(INSTALL) -o 0 -g 0 -m 0644
prefix = @prefix@
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
datadir = @datadir@
CC = @CC@
.SUFFIXES:
.SUFFIXES: .c .o
%.o: %.c Makefile
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) -c -o $@ $<
all: $(PROGRAM)
config:
@./configure
Makefile: Makefile.in config.status
./config.status
config.status: configure
./config.status --recheck
$(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $? $(LDFLAGS) -o $@
install-man: $(PROGRAM).man
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install-data: firmware/$(FIRMWARE)
mkdir -p $(DESTDIR)$(DATADIR)
$(INSTALL_DATA) $< $(DESTDIR)$(DATADIR)/$(FIRMWARE)
install: $(PROGRAM) install-man install-data
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE) $(DESTDIR)$(DATADIR)/$(FIRMWARE)
clean:
rm -f *.o *~ $(PROGRAM)
distclean: clean
rm -f config.status config.cache config.log Makefile actctrl.man

View File

@ -1,60 +0,0 @@
/* API only version generated from kernel drivers/isdn/act2000/act2000.h */
/* $Id: act2000.h,v 1.1 2002/07/19 19:03:49 keil Exp $
*
* ISDN lowlevel-module for the IBM ISDN-S0 Active 2000.
*
* Author Fritz Elfert
* Copyright by Fritz Elfert <fritz@isdn4linux.de>
*
* This software may be used and distributed according to the terms
* of the GNU General Public License, incorporated herein by reference.
*
* Thanks to Friedemann Baitinger and IBM Germany
*
*/
#ifndef act2000_h
#define act2000_h
#define ACT2000_IOCTL_SETPORT 1
#define ACT2000_IOCTL_GETPORT 2
#define ACT2000_IOCTL_SETIRQ 3
#define ACT2000_IOCTL_GETIRQ 4
#define ACT2000_IOCTL_SETBUS 5
#define ACT2000_IOCTL_GETBUS 6
#define ACT2000_IOCTL_SETPROTO 7
#define ACT2000_IOCTL_GETPROTO 8
#define ACT2000_IOCTL_SETMSN 9
#define ACT2000_IOCTL_GETMSN 10
#define ACT2000_IOCTL_LOADBOOT 11
#define ACT2000_IOCTL_ADDCARD 12
#define ACT2000_IOCTL_TEST 98
#define ACT2000_IOCTL_DEBUGVAR 99
#define ACT2000_BUS_ISA 1
#define ACT2000_BUS_MCA 2
#define ACT2000_BUS_PCMCIA 3
/* Struct for adding new cards */
typedef struct act2000_cdef {
int bus;
int port;
int irq;
char id[10];
} act2000_cdef;
/* Struct for downloading firmware */
typedef struct act2000_ddef {
int length; /* Length of code */
char *buffer; /* Ptr. to code */
} act2000_ddef;
typedef struct act2000_fwid {
char isdn[4];
char revlen[2];
char revision[504];
} act2000_fwid;
#endif /* act2000_h */

View File

@ -1,293 +0,0 @@
/* $Id: actctrl.c,v 1.4 2007/03/05 18:04:34 keil Exp $
* IBM Active 2000 ISDN driver for Linux. (Control-Utility)
*
* Copyright 1994,95 by Fritz Elfert (fritz@isdn4linux.de)
*
* 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: actctrl.c,v $
* Revision 1.4 2007/03/05 18:04:34 keil
* Small fixes to avoid warnings with newer gcc
*
* Revision 1.3 2002/01/31 18:50:51 paul
* #include <stdlib.h> for prototypes against warnings.
*
* Revision 1.2 1999/09/06 08:03:23 fritz
* Changed my mail-address.
*
* Revision 1.1 1997/09/25 21:41:37 fritz
* Added actctrl.
*
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
#include <linux/isdn.h>
#include "act2000.h"
char *cmd;
char *ctrldev;
int arg_ofs;
void
usage()
{
#if 0
fprintf(stderr, "usage: %s [-d driverId] io [port] [irq] (get/set hw-io)\n", cmd);
#endif
fprintf(stderr, " or: %s [-d driverId] add [bus [port [irq [id]]]] (Add a new card\n", cmd);
fprintf(stderr, " or: %s [-d driverId] load <bootcode> (load firmware)\n", cmd);
fprintf(stderr, " or: %s [-d driverId] dproto <1tr6|euro> [msn's] (set D-channel protocol)\n", cmd);
#if 0
fprintf(stderr, " or: %s [-d driverId] dbg <num> (devel Func)\n", cmd);
#endif
exit(-1);
}
int
main(int argc, char **argv)
{
int fd;
FILE *code;
int ac;
int a;
u_char buf[500000];
isdn_ioctl_struct ioctl_s;
act2000_ddef dload;
act2000_cdef newcard;
cmd = strrchr(argv[0], '/');
cmd = (cmd == NULL) ? argv[0] : cmd + 1;
if (argc > 1) {
if (!strcmp(argv[1], "-d")) {
strcpy(ioctl_s.drvid, argv[2]);
arg_ofs = 3;
} else {
ioctl_s.drvid[0] = '\0';
arg_ofs = 1;
}
} else
usage();
ac = argc - (arg_ofs - 1);
fd = open("/dev/isdnctrl", O_RDWR);
if (fd < 0) {
perror("/dev/isdnctrl");
exit(-1);
}
if (!strcmp(argv[arg_ofs], "add")) {
if (ac < 3)
usage();
if (ac >= 3) {
a = -1;
if (!strcmp(argv[arg_ofs + 1], "isa"))
a = ACT2000_BUS_ISA;
if (!strcmp(argv[arg_ofs + 1], "mca"))
a = ACT2000_BUS_MCA;
if (!strcmp(argv[arg_ofs + 1], "pcmcia"))
a = ACT2000_BUS_PCMCIA;
if (a == -1) {
fprintf(stderr, "Bus must be \"isa\", \"mca\" or \"pcmcia\"\n");
exit(-1);
}
if (a != ACT2000_BUS_ISA) {
fprintf(stderr, "Currently only isa Bus is supported\n");
exit(-1);
}
newcard.bus = a;
}
a = -2;
if (ac >= 4) {
if (!strcmp(argv[arg_ofs + 2], "auto"))
a = -1;
else
sscanf(argv[arg_ofs + 2], "%i", &a);
if (a == 0x200 || a == 0x240 || a == 0x280 || a == 0x2c0
|| a == 0x300 || a == 0x340 || a == 0x380 ||
a == 0xcfe0 || a == 0xcfa0 || a == 0xcf60 || a == 0xcf20
|| a == 0xcee0 || a == 0xcea0 || a == 0xce60 || a == -1)
newcard.port = a;
else {
fprintf(stderr, "Invalid port. Possible values are:\n");
fprintf(stderr, " 0x200, 0x240, 0x280, 0x2c0, 0x300, 0x340\n");
fprintf(stderr, " 0x380, 0xcfe0, 0xcfa0, 0xcf60, 0xcf20\n");
fprintf(stderr, " 0xcee0, 0xcea0, 0xce60 or \"auto\"\n");
exit(-1);
}
}
newcard.irq = -1;
if (ac >= 5) {
a = -2;
if (!strcmp(argv[arg_ofs + 3], "auto"))
a = -1;
if (!strcmp(argv[arg_ofs + 3], "none"))
a = 0;
if (a == -2)
sscanf(argv[arg_ofs + 2], "%i", &a);
if (a == 3 || a == 5 || a == 7 || a == 10 || a == 11 || a == 12
|| a == 15 || a == -1 || a == 0)
newcard.irq = a;
else {
fprintf(stderr, "Invalid IRQ. Possible values are:\n");
fprintf(stderr, " 3, 5, 7, 10, 11, 12, 15, \"auto\" or \"none\"\n");
exit(-1);
}
}
ioctl_s.arg = (unsigned long) &newcard;
newcard.id[0] = 0;
if (ac >= 6)
strncpy(newcard.id, argv[arg_ofs + 4], sizeof(newcard.id) - 1);
if ((ioctl(fd, ACT2000_IOCTL_ADDCARD + IIOCDRVCTL, &ioctl_s)) < 0) {
perror("ioctl ADDCARD");
exit(-1);
}
close(fd);
return 0;
}
#if 0
if (!strcmp(argv[arg_ofs], "io")) {
if (ac == 4) {
if (sscanf(argv[arg_ofs + 1], "%i", &mmio) != 1)
usage();
if (sscanf(argv[arg_ofs + 2], "%i", &port) != 1)
usage();
ioctl_s.arg = mmio;
if ((mmio = ioctl(fd, ICN_IOCTL_SETMMIO + IIOCDRVCTL, &ioctl_s)) < 0) {
perror("ioctl SETMMIO");
exit(-1);
}
ioctl_s.arg = port;
if ((port = ioctl(fd, ICN_IOCTL_SETPORT + IIOCDRVCTL, &ioctl_s)) < 0) {
perror("ioctl SETPORT");
exit(-1);
}
}
if ((mmio = ioctl(fd, ICN_IOCTL_GETMMIO + IIOCDRVCTL, &ioctl_s)) < 0) {
perror("ioctl GETMMIO");
exit(-1);
}
if ((port = ioctl(fd, ICN_IOCTL_GETPORT + IIOCDRVCTL, &ioctl_s)) < 0) {
perror("ioctl GETPORT");
exit(-1);
}
printf("Memory-mapped io at 0x%08lx, port 0x%03x\n",
(unsigned long) mmio, (unsigned short) port);
close(fd);
return 0;
}
#endif
if (!strcmp(argv[arg_ofs], "load")) {
if (ac == 3) {
if (!(code = fopen(argv[arg_ofs + 1], "r"))) {
perror(argv[arg_ofs + 1]);
exit(-1);
}
dload.buffer = buf;
if ((dload.length = fread(buf, 1, sizeof(buf), code)) < 1) {
fprintf(stderr, "Read error on %s\n", argv[arg_ofs + 1]);
exit(-1);
}
dload.length -= 32;
dload.buffer += 32;
printf("Loading Firmware %s ... ", argv[arg_ofs + 1]);
fflush(stdout);
ioctl_s.arg = (ulong) & dload;
if (ioctl(fd, ACT2000_IOCTL_LOADBOOT + IIOCDRVCTL, &ioctl_s) < 0) {
perror("\nioctl LOADBOOT");
exit(-1);
}
fclose(code);
printf("done\n");
return 0;
}
usage();
}
if (!strcmp(argv[arg_ofs], "dproto")) {
if (ac >= 3) {
char msnlist[1024];
int proto = -1;
if (strcmp(argv[arg_ofs + 1], "1tr6") == 0)
proto = 0;
if (strcmp(argv[arg_ofs + 1], "euro") == 0)
proto = 1;
if (proto == -1)
usage();
msnlist[0] = '\0';
if (ac > 3) {
if (proto == 0)
usage();
strcpy(msnlist, argv[arg_ofs + 2]);
}
ioctl_s.arg = (ulong)proto;
if (ioctl(fd, ACT2000_IOCTL_SETPROTO + IIOCDRVCTL, &ioctl_s) < 0) {
perror("ioctl SETPROTO");
exit(-1);
}
if (strlen(msnlist)) {
char *p = msnlist;
char m[17];
int i = 0;
char *q;
while ((q = strtok(p, ",")) && (i<10)) {
p = NULL;
if (strlen(q) > 15) {
fprintf(stderr, "MSN may not exceed 15 digits\n");
exit(-1);
}
if (q[0] == '-')
sprintf(m, "%d", i);
else
sprintf(m, "%d%s", i, q);
ioctl_s.arg = (ulong)&m;
if (ioctl(fd, ACT2000_IOCTL_SETMSN + IIOCDRVCTL, &ioctl_s) < 0) {
perror("ioctl SETMSN");
exit(-1);
}
i++;
}
}
return 0;
}
usage();
}
if (!strcmp(argv[arg_ofs], "dbg")) {
if (ac == 3) {
int res;
unsigned long parm;
res = sscanf(argv[arg_ofs + 1], "%li", &parm);
if (res != 1) {
fprintf(stderr, "Couldn't read parameter\n");
exit(-1);
}
ioctl_s.arg = parm;
if (ioctl(fd, ACT2000_IOCTL_TEST + IIOCDRVCTL, &ioctl_s) < 0) {
perror("ioctl TEST");
exit(-1);
}
return 0;
}
usage();
}
usage();
return 0;
}

View File

@ -1,117 +0,0 @@
.\" Process this file with
.\" groff -man -Tascii actctrl.1 for ASCII output, or
.\" groff -man -Tps actctrl.1 for PostScript output
.\"
.TH ACTCTRL 8 "September 1999" isdn4k-utils-@I4LVERSION@ "Linux System Administration"
.SH NAME
actctrl \- configure IBM Active 2000 ISDN adaptor
.SH SYNOPSIS
.B actctrl [-d
.IB Driver-Id ]
.I action options
.B ...
.SH DESCRIPTION
.B actctrl
is used to setup the IBM Active 2000
.SM ISDN
device driver and for downloading the firmware into the
.SM ISDN
card.
.LP
The use of
.I actctrl
makes sense, if you are using an IBM Active 2000 card only.
.LP
.SH OPTIONS
.TP
.BI "-d " Driver-Id
selects the S0 interface named by
.IR Driver-Id .
Driver-Ids are defined during driver initialisation. See
.BR act2000 (4)
for a description of the syntax to be used for modularized and
monolithic driver versions.
This option
.B must
be used to identify the S0 interface if more than one S0 interface is
existent. If a single IBM Active 2000 is used, it may be omitted.
If using more than one card, support for the other cards is enabled
with the
.B add
action of actctrl. Ids may
.B not
start with
.B digits
or small
.BR x ,
because these values are misinterpreted
as numeric parameters by
.BR insmod .
For loading the module, always the
newest
.B modutils
package should be used to avoid problems during load.
.LP
The following
.I actions
may be given to
.BR actctrl .
.TP
.BI "add [" bus "[ " port "[ " irq "[ " id ]]]]
enables support for an additional card in the driver.
.I bus
is is an integer describing the bus-type of the card. Currently,
the only value which is allowed here is
.B 1
meaning ISA-bus. In the future, the values
.B 2
(for MCA) and
.B 3
(for PCMCIA) will be available.
.I port
is either an integer describing the base port, or the string
.B auto
which enables autoprobing.
.I irq
is either an integer describing the IRQ to use, the string
.BR auto ,
which enables grabbing of the next free IRQ or the string
.B none
which enables polled mode for this card.
.I id
is an arbitrary string for referencing the card at a later time.
.TP
.BI "dproto " protocol " [" msn0 , msn1 ", ... " msn9 ]
selects the D-channel protocol and defines MSN's if using Euro protocol.
.I protocol
may be either the string
.B 1tr6
or the string
.BR euro .
If selecting Euro protocol, a comma-separated list of up to 10 MSN's
may be appended. For defining an empty entry in this list, use a dash.
.TP
.BI "load " firmware
downloads the firmware into the card and starts operation.
Usually the images are located in
.IR @CONFIG_DATADIR@ .
The firmware is named
.IR bip1120.bpl .
.TP
.B dump
is available if the program is configured using the
.B --enable-dump
option only. The contents of internal driver variables is dumped on stdout.
.SH FILES
.TP
.I @CONFIG_DATADIR@/bip1120.bpl
This is the image of the firmware designed for both the German 1TR6 protocol
and Euro ISDN.
.LP
.SH BUGS
No bugs so far.
.SH AUTHOR
\(co 1997 by Fritz Elfert <fritz@isdn4linux.de>
.LP
.SH SEE ALSO
.BR isdnctrl "(8), " act2000 "(4), " isdnctrl "(4), " ttyI (4).

4801
act2000/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
AC_INIT(actctrl.c)
AC_PREFIX_DEFAULT(/usr)
I4LVERSION=${I4LVERSION:-"?.?"}
CONFIG_DATADIR=${CONFIG_FIRMWAREDIR:-"/usr/lib/isdn"}
CONFIG_MANDIR=${mandir:-"/usr/man"}
CONFIG_SBINDIR=${CONFIG_CARD_SBINDIR:-"/sbin"}
dnl Checks for programs.
AC_PROG_INSTALL
AC_PROG_CC
dnl Checks for libraries.
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h sys/ioctl.h unistd.h)
dnl Checks for library functions.
AC_FUNC_MMAP
dnl Optional firmware directory
AC_ARG_WITH(firmware,
[ --with-firmware=DIR Set dir where firmware installed. [/usr/lib/isdn]],
AC_DEFINE(CONFIG_DATADIR, "${withval}", [directory where firmware installed]),
)
dnl Define which variables to substitute & which files to generate
AC_SUBST(CONFIG_DATADIR)
AC_SUBST(CONFIG_SBINDIR)
AC_SUBST(CONFIG_MANDIR)
AC_SUBST(I4LVERSION)
AC_OUTPUT(Makefile actctrl.man)

Binary file not shown.

View File

@ -1,2 +0,0 @@
#!/bin/sh
exit 0

View File

@ -1 +0,0 @@
../gpl-2.0.txt

340
ant-phone/COPYING Normal file
View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

View File

@ -106,6 +106,9 @@
/* Define if your <locale.h> file defines LC_MESSAGES. */
#undef HAVE_LC_MESSAGES
/* Define to 1 if you have the `capi20' library (-lcapi20). */
#undef HAVE_LIBCAPI20
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM

356
ant-phone/configure vendored
View File

@ -720,13 +720,13 @@ echo X"$0" |
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r $srcdir/$ac_unique_file; then
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r $srcdir/$ac_unique_file; then
if test ! -r "$srcdir/$ac_unique_file"; then
if test "$ac_srcdir_defaulted" = yes; then
{ echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
{ (exit 1); exit 1; }; }
@ -735,7 +735,7 @@ if test ! -r $srcdir/$ac_unique_file; then
{ (exit 1); exit 1; }; }
fi
fi
(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
(cd $srcdir && test -r "./$ac_unique_file") 2>/dev/null ||
{ echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
{ (exit 1); exit 1; }; }
srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
@ -980,7 +980,7 @@ esac
else
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi
cd "$ac_popdir"
cd $ac_popdir
done
fi
@ -1634,7 +1634,7 @@ fi
# Define the identity of the package.
PACKAGE=ant-phone
VERSION="0.1.12"
VERSION="0.1.12-capiconn"
# Some tools Automake needs.
@ -2329,7 +2329,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -2387,7 +2388,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -2503,7 +2505,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -2557,7 +2560,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -2602,7 +2606,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -2646,7 +2651,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3021,7 +3027,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3087,7 +3094,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3176,7 +3184,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3303,7 +3312,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3376,7 +3386,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3415,6 +3426,80 @@ echo "$as_me: error: You need the libsndfile headers to build this package" >&2;
fi
echo "$as_me:$LINENO: checking for capi20_register in -lcapi20" >&5
echo $ECHO_N "checking for capi20_register in -lcapi20... $ECHO_C" >&6
if test "${ac_cv_lib_capi20_capi20_register+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcapi20 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char capi20_register ();
int
main ()
{
capi20_register ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_capi20_capi20_register=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_capi20_capi20_register=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_capi20_capi20_register" >&5
echo "${ECHO_T}$ac_cv_lib_capi20_capi20_register" >&6
if test $ac_cv_lib_capi20_capi20_register = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBCAPI20 1
_ACEOF
LIBS="-lcapi20 $LIBS"
fi
# Checks for header files.
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@ -3699,7 +3784,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3869,7 +3955,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -3949,7 +4036,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4141,7 +4229,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4204,7 +4293,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4269,7 +4359,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4335,7 +4426,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4452,7 +4544,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4687,7 +4780,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4785,7 +4879,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4854,7 +4949,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -4965,7 +5061,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -5760,7 +5857,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -5814,7 +5912,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -5876,7 +5975,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -5936,7 +6036,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6009,7 +6110,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6073,7 +6175,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6143,7 +6246,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6206,7 +6310,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6268,7 +6373,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6330,7 +6436,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6392,7 +6499,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6464,7 +6572,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6613,7 +6722,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6694,7 +6804,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6835,7 +6946,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -6973,7 +7085,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7157,7 +7270,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7532,7 +7646,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7617,7 +7732,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7686,7 +7802,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7754,7 +7871,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7923,7 +8041,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -7963,7 +8082,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8019,7 +8139,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8059,7 +8180,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8123,7 +8245,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8150,8 +8273,10 @@ case $ac_lo in
esac
else
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@ -8244,7 +8369,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8284,7 +8410,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8340,7 +8467,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8380,7 +8508,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8444,7 +8573,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8471,8 +8601,10 @@ case $ac_lo in
esac
else
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@ -8565,7 +8697,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8605,7 +8738,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8661,7 +8795,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8701,7 +8836,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8765,7 +8901,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8792,8 +8929,10 @@ case $ac_lo in
esac
else
if test "$cross_compiling" = yes; then
{ { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5
echo "$as_me: error: internal error: not reached in cross-compile" >&2;}
{ { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
See \`config.log' for more details." >&5
echo "$as_me: error: cannot run test program while cross compiling
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
@ -8886,7 +9025,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -8963,7 +9103,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -9113,7 +9254,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -9179,7 +9321,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -9802,7 +9945,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -9880,7 +10024,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10089,7 +10234,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10156,7 +10302,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10224,7 +10371,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10293,7 +10441,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10361,7 +10510,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10429,7 +10579,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10553,7 +10704,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10603,7 +10755,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10693,7 +10846,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10758,7 +10912,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10822,7 +10977,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -10967,7 +11123,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -11033,7 +11190,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -11152,7 +11310,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -11597,7 +11756,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -11651,7 +11811,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@ -12752,6 +12913,11 @@ esac
*) ac_INSTALL=$ac_top_builddir$INSTALL ;;
esac
if test x"$ac_file" != x-; then
{ echo "$as_me:$LINENO: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
@ -12790,12 +12956,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
fi;;
esac
done` || { (exit 1); exit 1; }
if test x"$ac_file" != x-; then
{ echo "$as_me:$LINENO: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub

View File

@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
AC_INIT(ant-phone)
AM_INIT_AUTOMAKE(ant-phone, "0.1.12", ant-phone-devel@nongnu.org)
AM_INIT_AUTOMAKE(ant-phone, "0.1.12-capiconn", ant-phone-devel@nongnu.org)
AC_PREREQ(2.53)
AC_CONFIG_SRCDIR([config.h.in])
AM_CONFIG_HEADER([config.h])
@ -20,6 +20,7 @@ AC_PROG_YACC
# Checks for libraries.
AC_CHECK_LIB([m], [floor])
AC_CHECK_LIB([sndfile], [sf_open],, AC_MSG_ERROR(You need the libsndfile headers to build this package))
AC_CHECK_LIB([capi20], [capi20_register])
# Checks for header files.
AC_HEADER_STDC

View File

@ -29,6 +29,8 @@ ant_phone_SOURCES = \
recording.c \
isdntree.c
ant_phone_SOURCES += isdn_capi.c capiconn.c
noinst_HEADERS = \
callerid.h \
g711.h \
@ -51,6 +53,8 @@ noinst_HEADERS = \
isdnlexer.h \
isdntree.h
noinst_HEADERS += isdn_capi.h capiconn.h
EXTRA_DIST = \
pickup.xpm \
hangup.xpm \

View File

@ -57,7 +57,8 @@ am_ant_phone_OBJECTS = ant-phone.$(OBJEXT) callerid.$(OBJEXT) \
calleridparser.$(OBJEXT) isdnlexer.$(OBJEXT) \
isdnparser.$(OBJEXT) gtksettings.$(OBJEXT) \
controlpad.$(OBJEXT) fxgenerator.$(OBJEXT) server.$(OBJEXT) \
client.$(OBJEXT) recording.$(OBJEXT) isdntree.$(OBJEXT)
client.$(OBJEXT) recording.$(OBJEXT) isdntree.$(OBJEXT) \
isdn_capi.$(OBJEXT) capiconn.$(OBJEXT)
ant_phone_OBJECTS = $(am_ant_phone_OBJECTS)
ant_phone_LDADD = $(LDADD)
ant_phone_DEPENDENCIES =
@ -196,52 +197,15 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
ant_phone_SOURCES = \
ant-phone.c \
callerid.c \
g711.c \
gtk.c \
isdn.c \
llcheck.c \
mediation.c \
session.c \
sound.c \
util.c \
settings.c \
calleridlexer.l \
calleridparser.y \
isdnlexer.l \
isdnparser.y \
gtksettings.c \
controlpad.c \
fxgenerator.c \
server.c \
client.c \
recording.c \
isdntree.c
noinst_HEADERS = \
callerid.h \
g711.h \
gtk.h \
isdn.h \
llcheck.h \
mediation.h \
session.h \
sound.h \
util.h \
settings.h \
gtksettings.h \
controlpad.h \
fxgenerator.h \
server.h \
client.h \
recording.h \
globals.h \
gettext.h \
isdnlexer.h \
isdntree.h
ant_phone_SOURCES = ant-phone.c callerid.c g711.c gtk.c isdn.c \
llcheck.c mediation.c session.c sound.c util.c settings.c \
calleridlexer.l calleridparser.y isdnlexer.l isdnparser.y \
gtksettings.c controlpad.c fxgenerator.c server.c client.c \
recording.c isdntree.c isdn_capi.c capiconn.c
noinst_HEADERS = callerid.h g711.h gtk.h isdn.h llcheck.h mediation.h \
session.h sound.h util.h settings.h gtksettings.h controlpad.h \
fxgenerator.h server.h client.h recording.h globals.h \
gettext.h isdnlexer.h isdntree.h isdn_capi.h capiconn.h
EXTRA_DIST = \
pickup.xpm \
hangup.xpm \
@ -347,6 +311,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callerid.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calleridlexer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/calleridparser.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/capiconn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/controlpad.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fxgenerator.Po@am__quote@
@ -354,6 +319,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtksettings.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdn_capi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdnlexer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdnparser.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdntree.Po@am__quote@

View File

@ -92,16 +92,17 @@
int main(int argc, char *argv[]) {
struct option long_options[] = {
{"help", no_argument, 0, 'h'},
{"usage", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{"cleanup", no_argument, 0, 'r'},
{"debug", optional_argument, 0, 'd'},
{"soundin", required_argument, 0, 'i'},
{"soundout", required_argument, 0, 'o'},
{"msn", required_argument, 0, 'm'},
{"msns", required_argument, 0, 'l'},
{"call", required_argument, 0, 'c'},
{"help", no_argument, 0, 'h'},
{"usage", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{"cleanup", no_argument, 0, 'r'},
{"debug", optional_argument, 0, 'd'},
{"soundin", required_argument, 0, 'i'},
{"soundout", required_argument, 0, 'o'},
{"msn", required_argument, 0, 'm'},
{"msns", required_argument, 0, 'l'},
{"call", required_argument, 0, 'c'},
{"interface", required_argument, 0, 'f'},
{0, 0, 0, 0}
};
char *short_options = "hvrd::i:o:m:l:c:";
@ -114,6 +115,9 @@ int main(int argc, char *argv[]) {
char *audio_device_name_out = "";
char *msn = "";
char *msns = "";
#ifdef HAVE_LIBCAPI20
unsigned int interface=0; // 0=HiSax (ttyIx), 1..2 = capi20 controller num
#endif
int gtk_result;
@ -185,10 +189,16 @@ Options:\n\
default: 0\n\
-l, --msns=MSNS MSNs to listen on, semicolon-separated list or '*'\n\
default: *\n\
-c, --call=NUMBER Call specified number\n\
\n\
-c, --call=NUMBER Call specified number\n"), argv[0]);
#ifdef HAVE_LIBCAPI20
printf ("\n\
-f, --interface=X 0=HiSax, [1..9]=capi20 controller num\n\
default: 0\n");
#endif
printf ("\n\
Note: If arguments of --soundin and --soundout are equal, a full duplex\n\
sound device is needed.\n"), argv[0]);
sound device is needed.\n");
exit(0);
case 'v': /* version */
printf("ANT " VERSION "\n");
@ -226,6 +236,15 @@ Note: If arguments of --soundin and --soundout are equal, a full duplex\n\
}
exit(0);
break;
#ifdef HAVE_LIBCAPI20
case 'f':
if (optarg) {
interface = strtol(optarg, NULL, 0);
} else {
interface = 0;
}
break;
#endif
case '?':
exit(1);
}
@ -235,7 +254,12 @@ Note: If arguments of --soundin and --soundout are equal, a full duplex\n\
output_codeset_set("UTF-8"); /* GTK needs UTF-8 strings */
if (session_init(&session, audio_device_name_in, audio_device_name_out,
msn, msns))
msn, msns
#ifdef HAVE_LIBCAPI20
, interface))
#else
))
#endif
{
fprintf(stderr, "Error at session init.\n");
exit(1);

View File

@ -1,5 +1,7 @@
/*
* $Id: capiconn.c,v 1.13 2005/03/08 07:26:49 keil Exp $
* Id: capiconn.c,v 1.13 2005/03/08 07:26:49 keil Exp
*
* taken from isdn4k-utils/pppdcapiplugin/
*
* Copyright 2000 Carsten Paeth (calle@calle.in-berlin.de)
* Copyright 2000 AVM GmbH Berlin (info@avm.de)
@ -9,7 +11,7 @@
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* $Log: capiconn.c,v $
* Log: capiconn.c,v
* Revision 1.13 2005/03/08 07:26:49 keil
* - add SENDING_COMPLETE to INFO_REQ CONNECT_REQ and CONNECT_IND
* - remove SENDING_COMPLETE parameter (always NULL) from capi_fill_DISCONNECT_REQ
@ -57,10 +59,17 @@
* Plugin for pppd to support PPP over CAPI2.0.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* HAVE_CONFIG_H */
#ifdef HAVE_LIBCAPI20
#include <string.h>
#include "capiconn.h"
static char *revision = "$Revision: 1.13 $";
static char *revision = "Revision: 1.13";
static _cmsg cmdcmsg;
static _cmsg cmsg;
@ -983,7 +992,7 @@ static void handle_controller(capiconn_context *ctx, _cmsg * cmsg)
case 0: break;
case 1: s = "unknown class"; break;
case 2: s = "unknown function"; break;
default: s = "unknown error"; break;
default: s = "unkown error"; break;
}
if (s)
(*cb->infomsg)("%s from controller 0x%x function %d: %s",
@ -2100,3 +2109,5 @@ capiconn_listenstate(capiconn_context *ctx, unsigned contr)
return CAPICONN_WRONG_STATE;
return CAPICONN_OK;
}
#endif HAVE_LIBCAPI20

View File

@ -1,5 +1,7 @@
/*
* $Id: capiconn.h,v 1.4 2004/06/14 11:33:07 calle Exp $
* Id: capiconn.h,v 1.4 2004/06/14 11:33:07 calle Exp
*
* taken from isdn4k-utils/pppdcapiplugin/
*
* Copyright 2000 Carsten Paeth (calle@calle.in-berlin.de)
* Copyright 2000 AVM GmbH Berlin (info@avm.de)
@ -9,7 +11,7 @@
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* $Log: capiconn.h,v $
* Log: capiconn.h,v
* Revision 1.4 2004/06/14 11:33:07 calle
* New version of capiconn.
*
@ -25,6 +27,7 @@
* Plugin for pppd to support PPP over CAPI2.0.
*
*/
#ifndef __CAPICONN_H__
#define __CAPICONN_H__

View File

@ -36,6 +36,11 @@
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
/* capi support */
#ifdef HAVE_LIBCAPI20
#include "isdn_capi.h"
#endif
/* own header files */
#include "globals.h"
#include "gtk.h"
@ -165,6 +170,14 @@ gint timeout_callback(gpointer data) {
free(timediff);
}
#ifdef HAVE_LIBCAPI20
/* use periodic timer to handle CAPI messages */
if (session->capi_contr) {
printf ("capi messages\n");
ant_capi_messages(session);
}
#endif
return TRUE; /* call it again */
}

464
ant-phone/src/isdn_capi.c Normal file
View File

@ -0,0 +1,464 @@
/* $Id$
*
* This file is part of ANT (Ant is Not a Telephone)
*
* Authors:
* - Martin Bachem, m.bachem@gmx.de
*
* heavy capitalized on:
* + isdn4k-utils/[pppdcapiplugin,capiiinfo]
* + capiconn samples capiintest/capiouttest
*
* 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.
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* HAVE_CONFIG_H */
#ifdef HAVE_LIBCAPI20
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <malloc.h>
#include <capi20.h>
#include <linux/capi.h>
#include <unistd.h>
#include <stddef.h>
#include "globals.h"
#include "callerid.h"
#include "session.h"
#include "isdn_capi.h"
#include "capiconn.h"
static char msgbuf[4096];
/* callback for capiconn, TODO: don't use global session */
static void
ant_capi_incoming(capi_connection * cp, unsigned contr,
unsigned cipvalue, char *callednumber,
char *callingnumber)
{
switch (session.state) {
case STATE_READY:
/* caller id update */
session.ring_time = time(NULL);
/* save callee's number */
free(session.to);
session.to = strdup(callednumber);
cid_add_line(&session, CALL_IN, NULL, session.to);
/* save caller's number */
free(session.from);
session.from = strdup(callingnumber);
cid_set_from(&session, session.from);
if (session_set_state(&session, STATE_RINGING))
session_set_state(&session,
STATE_RINGING_QUIET);
session.cipvalue = cipvalue;
session.cp = cp;
break;
default:
if (debug)
printf
("ERROR: incoming call at state %i\n",
session.state);
}
}
static char *
ant_capi_conninfo(capi_connection * p)
{
static char buf[1024];
capi_conninfo *cp = capiconn_getinfo(p);
char *callingnumber = "";
char *callednumber = "";
if (cp->callingnumber && cp->callingnumber[0] > 2)
callingnumber = cp->callingnumber + 3;
if (cp->callednumber && cp->callednumber[0] > 1)
callednumber = cp->callednumber + 2;
if (debug) {
snprintf(buf, sizeof(buf),
"\"%s\" -> \"%s\" %s (pcli=0x%x/ncci=0x%x)",
callingnumber, callednumber,
cp->isincoming ? "incoming" : "outgoing",
cp->plci, cp->ncci);
} else {
snprintf(buf, sizeof(buf),
"\"%s\" -> \"%s\" %s",
callingnumber, callednumber,
cp->isincoming ? "incoming" : "outgoing");
}
buf[sizeof(buf) - 1] = 0;
return buf;
}
#define OUTSIZE 128
static int senddata(capi_connection *cp)
{
char *data;
data = (char *)malloc(OUTSIZE);
if (!data) {
printf ("ERROR: malloc failed\n");
return -1;
}
if (capiconn_send(cp, data, OUTSIZE) == CAPICONN_OK) {
return 0;
}
free(data);
return -1;
}
/* callback for capiconn, TODO: don't use global session */
static void
ant_capi_connected(capi_connection * cp, _cstruct NCPI)
{
capi_conninfo *p = capiconn_getinfo(cp);
printf ("connected(%s) NCPIlen=%d\n", ant_capi_conninfo(cp), NCPI[0]);
session.vcon_time = time(NULL); /* for caller id monitor */
cid_set_date(&session, session.vcon_time);
session_set_state(&session, STATE_CONVERSATION);
if (p->b1proto == 1 && p->b2proto == 1 && p->b3proto == 0) {
printf ("enabling DTMF\n");
(void)capiconn_dtmf_setstate(cp, 1);
}
// senddata(cp);
}
/* callback for capiconn, TODO: don't use global session */
static void
ant_capi_disconnected(capi_connection * cp, int localdisconnect,
unsigned reason, unsigned reason_b3)
{
switch (session.state) {
case STATE_RINGING:
case STATE_RINGING_QUIET:
/* caller giving up */
session_set_state(&session, STATE_READY);
cid_set_duration(&session, _("(RUNG)"));
cid_mark_row(&session, session.cid_num - 1, TRUE);
break;
default:
if (debug)
printf
("ERROR: got disconnect at state %i\n",
session.state);
}
}
/* callback for GTK widget */
int
ant_capi_pickup(session_t * session)
{
switch (session->state) {
case STATE_RINGING:
case STATE_RINGING_QUIET:
switch (session->cipvalue) {
case 1: /* Speech */
case 4: /* 3.1 KHz audio */
case 5: /* 7 KHz audio */
case 16: /* Telephony */
case 26: /* 7kHz telephony */
(void)capiconn_accept(session->cp, 1, 1, 0, 0, 0, 0, 0);
break;
case 2: /* unrestricted digital information */
case 3: /* restricted digital infomation */
/* HDLC: 0,1,0 X75: 0,0,0 X75+V42Bis: 0,8,0 */
/* x25overx75: 0,0,2 */
(void)capiconn_accept(session->cp, 0, 1, 0, 0, 0, 0, 0);
/*(void)capiconn_accept(cp, 0, 0, 2, 0, 0, 0, 0);*/
break;
case 17: /* Group 2/3 facsimile */
(void)capiconn_accept(session->cp, 4, 4, 4, 0, 0, 0, 0);
break;
default:
(void)capiconn_ignore(session->cp);
break;
}
break;
default:
if (debug)
printf
("ERROR: got disconnect at state %i\n",
session->state);
}
}
/* callback for GTK widget */
int
ant_capi_hangup(session_t * session)
{
switch (session->state) {
/* abort dialing */
case STATE_DIALING:
break;
/* reject call */
case STATE_RINGING:
case STATE_RINGING_QUIET:
session_set_state(session, STATE_READY);
cid_set_duration(session, _("(REJECTED)"));
(void) capiconn_reject(session->cp);
break;
/* hang up (while b-channel is open) */
case STATE_CONVERSATION:
(void)capiconn_disconnect(session->cp, 0);
session_deinit_conversation(session, 1); /* 1 == we hang up ourselves ;) */
session_set_state(session, STATE_READY);
cid_set_duration(session, NULL);
break;
default:
if (debug)
printf
("ERROR: got disconnect at state %i\n",
session->state);
}
}
static void
ant_capi_chargeinfo(capi_connection * cp, unsigned long charge,
int inunits)
{
if (debug) {
if (inunits) {
printf("%s: charge in units: %ul",
ant_capi_conninfo(cp), charge);
} else {
printf("%s: charge in currency: %ul",
ant_capi_conninfo(cp), charge);
}
}
}
static int
ant_capi_put_message(unsigned appid, unsigned char *msg)
{
unsigned err;
err = capi20_put_message(appid, msg);
if (err && debug) {
fprintf(stderr, "putmessage(appid=%d) - %s 0x%x", appid,
capi_info2str(err), err);
}
return 0;
}
static void
ant_capi_msg(const char *prefix, const char *format, va_list args)
{
char *s = msgbuf;
char *e = msgbuf + sizeof(msgbuf);
(void) snprintf(s, e - s, "%s", prefix);
s += strlen(s);
(void) vsnprintf(s, e - s, format, args);
s += strlen(s);
printf("%s\n", msgbuf);
}
static void
ant_capi_err(const char *format, ...)
{
va_list args;
if (debug) {
va_start(args, format);
ant_capi_msg("CAPI Error: ", format, args);
va_end(args);
}
}
static void
ant_capi_dbg(const char *format, ...)
{
va_list args;
if (debug > 1) {
va_start(args, format);
ant_capi_msg("CAPI Debug: ", format, args);
va_end(args);
}
}
static void
ant_capi_info(const char *format, ...)
{
va_list args;
if (debug > 2) {
va_start(args, format);
ant_capi_msg("CAPI Info: ", format, args);
va_end(args);
}
}
static char *conninfo(capi_connection *p)
{
static char buf[1024];
capi_conninfo *cp = capiconn_getinfo(p);
snprintf(buf, sizeof(buf),
"appl=%d plci=0x%x ncci=0x%x %s",
cp->appid,
cp->plci,
cp->ncci,
cp->isincoming ? "incoming" : "outgoing"
);
return buf;
}
static void
ant_capi_rx(capi_connection * cp, unsigned char *data, unsigned datalen)
{
printf ("received(%s): len=%u\n", conninfo(cp), datalen);
}
static void
ant_capi_tx(capi_connection * cp, unsigned char *buf)
{
printf ("sent(%s): %p\n", conninfo(cp), buf);
free(buf);
senddata(cp);
// printf ("sent(%s)\n", conninfo(cp));
}
static void
ant_capi_dtmf_rx(capi_connection * cp,
unsigned char *data, unsigned datalen)
{
ant_capi_info("dtmf_reveived(%s): %ld \"%-*.*s\"",
conninfo(cp), datalen, (int) datalen, (int) datalen, data);
}
capiconn_callbacks ant_capi_callbacks = {
malloc: malloc,
free: free,
disconnected: ant_capi_disconnected,
incoming: ant_capi_incoming,
connected: ant_capi_connected,
chargeinfo: ant_capi_chargeinfo,
/*
received: ant_capi_rx,
datasent: ant_capi_tx,
dtmf_received: ant_capi_dtmf_rx,
*/
received: 0,
datasent: 0,
dtmf_received: 0,
capi_put_message: ant_capi_put_message,
debugmsg: (void (*)(const char *,...)) ant_capi_dbg,
infomsg: (void (*)(const char *,...)) ant_capi_info,
errmsg: (void (*)(const char *,...)) ant_capi_err
};
int
ant_capi_init(session_t * session)
{
int serrno, err;
if (CAPI20_ISINSTALLED() != CapiNoError) {
fprintf(stderr, "CAPI not installed - %s (%d)\n",
strerror(errno), errno);
return -2;
}
if ((err = capi20_register(2, 8, 2048, &session->applid)) != 0) {
serrno = errno;
fprintf(stderr,
"CAPI_REGISTER failed - %s (0x%04x) [%s (%d)]\n",
capi_info2str(err), err, strerror(serrno), errno);
return (-3);
}
if (capi20ext_set_flags(session->applid, 1) < 0) {
serrno = errno;
(void) capi20_release(session->applid);
fprintf(stderr,
"CAPI: failed to set highjacking mode - %s (%d)\n",
strerror(serrno), serrno);
return (-4);
}
if ((session->ctx =
capiconn_getcontext(session->applid,
&ant_capi_callbacks)) == 0) {
(void) capi20_release(session->applid);
fprintf(stderr, "CAPI: get_context failed\n");
return (-5);
}
session->cinfo.ddi = 0;
session->cinfo.ndigits = 0;
if (capiconn_addcontr
(session->ctx, session->capi_contr,
&session->cinfo) != CAPICONN_OK) {
(void) capiconn_freecontext(session->ctx);
(void) capi20_release(session->applid);
fprintf(stderr, "CAPI: add controller %d failed",
session->capi_contr);
return (-1);
}
return (0);
}
void
ant_capi_listen(session_t * session)
{
/*
call
conn = capiconn_connect(ctx,
session->opt_contr, // contr
1, // cipvalue
number_to_call,
session->msn,
1, 1, 0,
0, 0, 0, 0, 0);
*/
(void) capiconn_listen(session->ctx, session->capi_contr,
0x1FFF03FF, 0);
} void
ant_capi_free(session_t * session)
{
(void) capiconn_freecontext(session->ctx);
(void) capi20_release(session->applid);
}
/* attention: get called periodically by timer defined TIMER_DELAY in gtk.c,
* so be quick ;)
*/
void
ant_capi_messages(session_t * session)
{
unsigned char *msg = 0;
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 100;
if (capi20_waitformessage(session->applid, &tv) == 0) {
if (capi20_get_message(session->applid, &msg) == 0)
capiconn_inject(session->applid, msg);
}
}
#endif /* HAVE_LIBCAPI20 */

23
ant-phone/src/isdn_capi.h Normal file
View File

@ -0,0 +1,23 @@
/* $Id$
*
* This file is part of ANT (Ant is Not a Telephone)
*
* Authors:
* - Martin Bachem, m.bachem@gmx.de
* - heavy capitalized on: isdn4k-utils/[pppdcapiplugin,capiiinfo]
*
* 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.
*
*/
#include "session.h"
int ant_capi_init(session_t *session);
void ant_capi_listen(session_t *session);
void ant_capi_free(session_t *session);
void ant_capi_messages(session_t *session);
int ant_capi_pickup(session_t *session);
int ant_capi_hangup(session_t *session);

View File

@ -55,6 +55,9 @@
#include "settings.h"
#include "fxgenerator.h"
#include "server.h"
#ifdef HAVE_LIBCAPI20
#include "isdn_capi.h"
#endif
/*
* This is our session. Currently just one globally.
@ -190,15 +193,26 @@ int session_isdn_init(session_t *session) {
/* open and init isdn device */
if (debug)
fprintf(stderr, "Initializing ISDN device...\n");
if ((session->isdn_fd =
open_isdn_device(&session->isdn_device_name,
&session->isdn_lockfile_name)) < 0) {
fprintf(stderr, "Error opening isdn device.\n");
return -1;
}
if (init_isdn_device(session->isdn_fd, &session->isdn_backup)) {
fprintf(stderr, "Error initializing isdn device.\n");
return -1;
#ifdef HAVE_LIBCAPI20
if (session->capi_contr) {
if (ant_capi_init(session)) {
printf ("CAPI 2.0 initialization failed!\n");
return -1;
}
} else
#endif
{
if ((session->isdn_fd =
open_isdn_device(&session->isdn_device_name,
&session->isdn_lockfile_name)) < 0) {
fprintf(stderr, "Error opening isdn device.\n");
return -1;
}
if (init_isdn_device(session->isdn_fd, &session->isdn_backup)) {
fprintf(stderr, "Error initializing isdn device.\n");
return -1;
}
}
session->isdn_inbuf_size = session->isdn_outbuf_size = DEFAULT_ISDNBUF_SIZE;
@ -213,10 +227,17 @@ int session_isdn_init(session_t *session) {
return -1;
}
if (isdn_setMSN(session->isdn_fd, session->msn) ||
isdn_setMSNs(session->isdn_fd, session->msns)) {
fprintf(stderr, "Error setting MSN properties.\n");
return -1;
#ifdef HAVE_LIBCAPI20
if (session->capi_contr) {
ant_capi_listen(session);
} else
#endif
{
if (isdn_setMSN(session->isdn_fd, session->msn) ||
isdn_setMSNs(session->isdn_fd, session->msns)) {
fprintf(stderr, "Error setting MSN properties.\n");
return -1;
}
}
session->isdn_inbuf_len = 0;
@ -310,14 +331,23 @@ int session_isdn_deinit(session_t *session) {
if (debug)
fprintf(stderr, "Closing ISDN device...\n");
/* de-init / restore isdn device */
if (deinit_isdn_device(session->isdn_fd, &session->isdn_backup)) {
fprintf(stderr, "Error restoring ttyI state.\n");
#ifdef HAVE_LIBCAPI20
if (session->capi_contr) {
ant_capi_free(session);
}
/* close isdn device */
if (close_isdn_device(session->isdn_fd,
session->isdn_device_name,
session->isdn_lockfile_name)) {
fprintf(stderr, "Error closing isdn device.\n");
else
#endif
{
if (deinit_isdn_device(session->isdn_fd, &session->isdn_backup)) {
fprintf(stderr, "Error restoring ttyI state.\n");
}
/* close isdn device */
if (close_isdn_device(session->isdn_fd,
session->isdn_device_name,
session->isdn_lockfile_name)) {
fprintf(stderr, "Error closing isdn device.\n");
}
}
return 0;
@ -341,7 +371,14 @@ int session_isdn_deinit(session_t *session) {
int session_init(session_t *session,
char *audio_device_name_in,
char *audio_device_name_out,
char *msn, char *msns) {
char *msn, char *msns
#ifdef HAVE_LIBCAPI20
, unsigned int interface)
#else
)
#endif
{
int i;
/*
@ -416,6 +453,10 @@ int session_init(session_t *session,
session->ring_time = 0;
session->unanswered = 0;
#ifdef HAVE_LIBCAPI20
session->capi_contr = interface;
#endif
/* setup audio and isdn */
if (!session->option_release_devices)
if (session_audio_init(session) < 0) return -1;
@ -499,12 +540,16 @@ void session_io_handlers_start(session_t *session) {
(gpointer) session,
NULL);
}
session->gtk_isdn_input_tag = gtk_input_add_full(session->isdn_fd,
GDK_INPUT_READ,
gtk_handle_isdn_input,
NULL,
(gpointer) session,
NULL);
if (!session->capi_contr) {
session->gtk_isdn_input_tag = gtk_input_add_full(session->isdn_fd,
GDK_INPUT_READ,
gtk_handle_isdn_input,
NULL,
(gpointer) session,
NULL);
}
/* server functionality */
session->gtk_local_input_tag = gtk_input_add_full(session->local_sock,
@ -665,19 +710,24 @@ void session_deinit_conversation(session_t *session, int self_hangup) {
session_io_handlers_stop(session);
session_reset_audio(session);
session_io_handlers_start(session);
if (isdn_blockmode(session->isdn_fd, 0))
fprintf(stderr, "Warning: "
"Switching back to normal isdn tty mode not successful.\n");
/* go back to command mode */
if (isdn_stop_audio(session->isdn_fd, self_hangup)) {
fprintf(stderr, "Error switching back to command mode.\n");
}
/* isdn hangup */
if (isdn_hangup(session->isdn_fd)) {
fprintf(stderr, "Error hanging up.\n");
#ifdef HAVE_LIBCAPI20
if (!(session->capi_contr))
#endif
{
if (isdn_blockmode(session->isdn_fd, 0))
fprintf(stderr, "Warning: "
"Switching back to normal isdn tty mode not successful.\n");
/* go back to command mode */
if (isdn_stop_audio(session->isdn_fd, self_hangup)) {
fprintf(stderr, "Error switching back to command mode.\n");
}
/* isdn hangup */
if (isdn_hangup(session->isdn_fd)) {
fprintf(stderr, "Error hanging up.\n");
}
}
session->isdn_inbuf_len = 0;
@ -1287,6 +1337,13 @@ void gtk_handle_pick_up_button(GtkWidget *widget _U_, gpointer data) {
char *clear_number; /* number after un_vanity() */
int result;
#ifdef HAVE_LIBCAPI20
if (session->capi_contr) {
ant_capi_pickup(session);
return;
}
#endif
switch (session->state) {
case STATE_READY: /* we are in command mode and want to dial */
number = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(session->dial_number_box)
@ -1370,6 +1427,13 @@ void gtk_handle_pick_up_button(GtkWidget *widget _U_, gpointer data) {
void gtk_handle_hang_up_button(GtkWidget *widget _U_, gpointer data) {
session_t *session = (session_t *) data;
#ifdef HAVE_LIBCAPI20
if (session->capi_contr) {
ant_capi_hangup(session);
return;
}
#endif
switch (session->state) {
case STATE_READY: /* we are already in command mode */
break;

View File

@ -35,6 +35,13 @@
/* GTK */
#include <gtk/gtk.h>
/* Capi 2.0 */
#ifdef HAVE_LIBCAPI20
#include <linux/capi.h>
#include <capi20.h>
#include "capiconn.h"
#endif
/* own header files */
#include "recording.h"
@ -211,6 +218,16 @@ typedef struct {
char* msn; /* originating msn, allocated memory! */
char* msns; /* comma-separated list of msns to listen on, allocated memory!*/
#ifdef HAVE_LIBCAPI20
/* capi 2.0 control variables */
unsigned char capi_contr; /* 0=HiSax /dev/ttyIx, [1..?]=capi20 controller num */
capiconn_context *ctx;
capi_contrinfo cinfo;
capi_connection *cp;
unsigned cipvalue;
unsigned applid;
#endif
int unanswered; /* unanswered calls for this session */
/* some options (useful for options file handling) */
@ -252,7 +269,12 @@ int session_audio_deinit(session_t *session);
int session_init(session_t *session,
char *audio_device_name_in,
char *audio_device_name_out,
char *msn, char *msns);
char *msn, char *msns
#ifdef HAVE_LIBCAPI20
, unsigned int interface);
#else
);
#endif
void session_audio_free(session_t *session);
int session_deinit(session_t *session);

View File

@ -1,45 +0,0 @@
#
# This Makefile is used for compatibility to the
# isdn4k-utils package. In order to superseede
# the original Makefile, it is called GNUmakefile.
#
ifeq (../scripts/autoconf.mk,$(wildcard ../scripts/autoconf.mk))
include ../scripts/autoconf.mk
DATAOPTS := DATATARGET=$(DESTDIR)$(CONFIG_DATADIR)/areacodes
#
# Install as root with numeric Id's, since these are the
# only ones that _really_ exist on _every_ system.
#
BUILDOPTS := $(DATAOPTS)
INSTALLOPTS := $(DATAOPTS) INSTALL="install -o 0 -g 0 -m 644"
endif
all: .depend
$(MAKE) -f make/linux.mak $(BUILDOPTS) all
depend dep: .depend
.depend:
$(MAKE) -f make/linux.mak $(BUILDOPTS) depend
config:
@cp Makefile.in GNUmakefile
clean:
$(MAKE) -f make/linux.mak clean
distclean:
$(MAKE) -f make/linux.mak distclean
rm -f GNUmakefile
install-man:
install: all
ifeq ($(CONFIG_LIB_AREACODE),y)
mkdir -p $(DESTDIR)$(CONFIG_DATADIR)
$(MAKE) -f make/linux.mak $(INSTALLOPTS) install
endif
uninstall:
rm -f $(DESTDIR)$(CONFIG_DATADIR)/areacodes

View File

@ -1,123 +0,0 @@
/*****************************************************************************/
/* */
/* ACTEST.C */
/* */
/* Test an areacode data file */
/* */
/* */
/* */
/* (C) 1996,97 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.com */
/* */
/* */
/* This software is provided 'as-is', without any express or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "areacode.h"
int main (int argc, char* argv [])
{
acInfo AC;
char Buf [256];
int Len;
unsigned RC;
acMaxMem = 0;
/* See if there is an argument given. If so, use it as name and path of
* the database.
*/
if (argc >= 2) {
acFileName = argv [1];
}
/* If we have an additional argument, use it as the phone number to look
* up.
*/
if (argc >= 3) {
RC = GetAreaCodeInfo (&AC, argv [2]);
if (RC == acOk) {
printf ("%u %s\n", AC.AreaCodeLen, AC.Info);
}
return RC;
}
/* Test loop */
while (1) {
printf ("Enter phone number: ");
fflush (stdout);
if (fgets (Buf, sizeof (Buf), stdin) == 0) {
/* EOF on stdin */
break;
}
Len = strlen (Buf);
while (Len > 0 && Buf [Len-1] == '\n') {
Buf [--Len] = '\0';
}
if (Len == 0) {
break;
}
switch ((RC = GetAreaCodeInfo (&AC, Buf))) {
case acOk:
printf ("acOK:\n"
" Length = %d\n"
" Info = %s\n",
AC.AreaCodeLen, AC.Info);
break;
case acFileError:
printf ("acFileError\n");
break;
case acInvalidFile:
printf ("acInvalidFile\n");
break;
case acWrongVersion:
printf ("acWrongVersion\n");
break;
case acInvalidInput:
printf ("acInvalidInput\n");
break;
default:
printf ("Unknown return: %u\n", RC);
break;
}
printf ("\n");
}
return 0;
}

View File

@ -1,117 +0,0 @@
/*****************************************************************************/
/* */
/* ACVERS.C */
/* */
/* Get the version and build of an areacode data file */
/* */
/* */
/* */
/* (C) 1996,97 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.com */
/* */
/* */
/* This software is provided 'as-is', without any express or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* This code assumes 8 bit bytes */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*****************************************************************************/
/* Data */
/*****************************************************************************/
#define MAGIC0 0x68
#define MAGIC1 0x57
#define MAGIC2 0x46
#define MAGIC3 0x35
/*****************************************************************************/
/* Code */
/*****************************************************************************/
static void Usage (const char* ProgName)
/* Print usage information and exit */
{
printf ("%s: Print the version of an areacode database\n\n"
"Usage: \t%s file ...\n",
ProgName, ProgName);
exit (1);
}
int main (int argc, char* argv [])
{
int I;
if (argc < 2) {
Usage (argv [0]);
}
for (I = 1; I < argc; I++) {
FILE* F;
const char* Filename = argv [I];
unsigned char MagicBuf [4];
unsigned char BuildBuf [2];
unsigned char VersionBuf [2];
unsigned Build;
if ((F = fopen (Filename, "rb")) == 0) {
perror ("Cannot open input file");
exit (2);
}
fread (MagicBuf, sizeof (MagicBuf), 1, F);
if (MagicBuf [0] != MAGIC0 || MagicBuf [1] != MAGIC1 ||
MagicBuf [2] != MAGIC2 || MagicBuf [3] != MAGIC3) {
fprintf (stderr, "No dial prefix database\n");
exit (3);
}
fread (BuildBuf, sizeof (BuildBuf), 1, F);
fread (VersionBuf, sizeof (VersionBuf), 1, F);
fclose (F);
Build = ((unsigned) BuildBuf [1]) * 256 + ((unsigned) BuildBuf [0]);
printf ("%d %d %u\n", VersionBuf [1], VersionBuf [0], Build);
}
return 0;
}

View File

@ -1,759 +0,0 @@
/*****************************************************************************/
/* */
/* AREACODE.C */
/* */
/* Portable library module to search for an area code in a database. */
/* */
/* */
/* */
/* (C) 1996-98 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/*
* The code assumes
* - 8 bit bytes
* - unsigned long is 32 bit. This may be changed by #defining u32 to
* a data type that is an 32 bit unsigned when compiling this module.
* - ascii character set
*
* The code does *not* assume
* - a specific byte order. Currently the code autoadjusts to big or
* little endian data. If you have something more weird than that,
* you have to add conversion code.
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <assert.h>
#include <ctype.h>
#include "areacode.h"
/*****************************************************************************/
/* Externally visible data */
/*****************************************************************************/
/* The name of the areacode data file. The default is what is #defined as
* DATA_FILENAME. If this is not #defined, the default is "areacode.dat",
* which is probably not what you want. In the latter case set this to
* the correct filename *before* your first call to GetAreaCodeInfo.
*/
#ifdef DATA_FILENAME
char* acFileName = DATA_FILENAME;
#else
char* acFileName = "areacode.dat";
#endif
/* How much dynamic memory is GetAreaCodeInfo allowed to consume? Having less
* memory means more disk access and vice versa. The function does even work
* if you set this value to zero. For maximum performance, the function needs
* 4 byte per area code stored in the data file. The default is 32KB.
*/
unsigned long acMaxMem = 0x8000UL;
/*****************************************************************************/
/* Data and structures */
/*****************************************************************************/
/* Define an unsigned quantity with 32 bits. Try to make some clever
* assumptions using the data from limits.h. This may break some older
* (non ISO compliant) compilers, but I can't help...
*/
#if !defined(u32) && defined(ULONG_MAX)
# if ULONG_MAX == 4294967295UL
# define u32 unsigned long
# endif
#endif
#if !defined(u32) && defined(UINT_MAX)
# if UINT_MAX == 4294967295UL
# define u32 unsigned
# endif
#endif
#if !defined(u32) && defined(USHRT_MAX)
# if USHRT_MAX == 4294967295UL
# define u32 unsigned short
# endif
#endif
#if !defined(u32)
# define u32 unsigned long
#endif
/* The version of the data file we support (major only, minor is ignored) */
#define acVersion 0x200
/* The magic words in little and big endian format */
#define LittleMagic 0x35465768L
#define BigMagic 0x68574635L
/* Defining the byte ordering */
#define boLittleEndian 0
#define boBigEndian 1
/* The byte order used in the file is little endian (intel) format */
#define FileByteOrder boLittleEndian
/* Shortcuts */
#define scCount 30
/* This is the header data of the data file. It is not used anywhere in
* the code, just have a look at it since it describes the layout in the
* file.
*/
typedef struct {
u32 Magic;
u32 Version; /* Version in hi word, build in lo word */
u32 Count;
u32 AreaCodeStart;
u32 InfoIndexStart;
u32 InfoStart;
u32 MinLength;
u32 CodeDataSize;
u32 Shortcut [scCount]; /* Shortcuts for compression */
} PrefixHeader;
/* This is what's really used: */
typedef struct {
/* The file we read from */
FILE* F;
/* Machine byte order */
unsigned ByteOrder;
/* Stuff from the file header */
unsigned Version;
unsigned Build;
u32 Count;
u32 AreaCodeStart;
u32 InfoIndexStart;
u32 InfoStart;
u32 AreaCodeLenStart;
u32 MinLength; /* Minimum phone number length in data file */
u32 CodeDataSize;
u32 Shortcut [scCount]; /* Compression shortcuts */
/* Control data */
long First;
long Last;
u32* Table;
} AreaCodeDesc;
/* Translation table for translation ISO-8859-1 --> CP850. To save some space,
* the table covers only values > 127
*/
#ifdef CHARSET_CP850
static char CP850Map [128] = {
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0xAD, 0x9B, 0x9C, 0x20, 0x9D, 0x20, 0x20,
0x20, 0x20, 0xA6, 0xAE, 0xAA, 0x20, 0x20, 0x20,
0xF8, 0xF1, 0xFD, 0x20, 0x20, 0xE6, 0x20, 0xF9,
0x20, 0x20, 0xA7, 0xAF, 0xAC, 0x20, 0x20, 0xA8,
0x20, 0x20, 0x20, 0x20, 0x8E, 0x8F, 0x92, 0x80,
0x20, 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0xA5, 0x20, 0x20, 0x20, 0x20, 0x99, 0x20,
0x20, 0x20, 0x20, 0x20, 0x9A, 0x20, 0x20, 0xE1,
0x85, 0xA0, 0x83, 0x20, 0x84, 0x86, 0x91, 0x87,
0x8A, 0x82, 0x88, 0x89, 0x8D, 0xA1, 0x8C, 0x8B,
0x20, 0xA4, 0x95, 0xA2, 0x93, 0x20, 0x94, 0xF6,
0x20, 0x97, 0xA3, 0x20, 0x81, 0x20, 0xB0, 0x98
};
#endif
/* Macro to convert from big endian to little endian format and vice versa.
* Beware: The macro evaluates its parameter more than once!
*/
#define _ByteSwap(__V) ((((__V) & 0x000000FF) << 24) | \
(((__V) & 0xFF000000) >> 24) | \
(((__V) & 0x0000FF00) << 8) | \
(((__V) & 0x00FF0000) >> 8))
/*****************************************************************************/
/* Helper functions */
/*****************************************************************************/
static int IsShortcut (char C)
/* Return true if the given character is a shortcut */
{
return (C >= 0x01 && C <= 0x1F);
}
static u32 _ByteSwapIfNeeded (u32 D, unsigned ByteOrder)
/* Put the bytes into the correct order according to ByteOrder */
{
/* Swap bytes if needed and return the result */
switch (ByteOrder) {
case boLittleEndian: return D;
default: return _ByteSwap (D);
}
}
static u32 ByteSwapIfNeeded (u32 D, const AreaCodeDesc* Desc)
/* Put the bytes into the correct order according to ByteOrder in Desc */
{
/* Swap bytes if needed and return the result */
return _ByteSwapIfNeeded (D, Desc->ByteOrder);
}
static u32 _Load_u32 (FILE* F, unsigned ByteOrder)
/* Load an u32 from the current file position and swap it if needed */
{
u32 D;
/* Read the data from the file */
fread (&D, sizeof (D), 1, F);
/* Swap bytes if needed and return the result */
return _ByteSwapIfNeeded (D, ByteOrder);
}
static u32 _Load_u24 (FILE* F, unsigned ByteOrder)
/* Load an u24 from the current file position and swap it if needed */
{
u32 D = 0;
/* Read the data from the file */
fread (&D, 3, 1, F);
/* Swap bytes if needed and return the result */
return _ByteSwapIfNeeded (D, ByteOrder);
}
static u32 Load_u32 (const AreaCodeDesc* Desc)
/* Load an u32 from the current file position and swap it if needed */
{
return _Load_u32 (Desc->F, Desc->ByteOrder);
}
static u32 Load_u24 (const AreaCodeDesc* Desc)
/* Load an u32 from the current file position and swap it if needed */
{
return _Load_u24 (Desc->F, Desc->ByteOrder);
}
static unsigned LoadShortcut (const AreaCodeDesc* Desc, char* S,
unsigned Size, unsigned char C)
/* Read the string for shortcut C into S, return the count of bytes read */
{
unsigned CharsRead = 0;
/* Get the replacement string in u32 format */
u32 Shortcut = Desc->Shortcut [C-1];
/* Insert character by character, do recursively replace shortcuts. */
while (Shortcut && CharsRead < Size-1) {
char C = Shortcut & 0x00FF;
if (IsShortcut (C)) {
/* This is another shortcut, replace it recursively */
unsigned ReadCount = LoadShortcut (Desc, S, Size-CharsRead, C);
CharsRead += ReadCount;
S += ReadCount;
} else {
/* No shortcut, use the character itself */
*S++ = C;
CharsRead++;
}
Shortcut >>= 8;
}
/* Return the count of characters read */
return CharsRead;
}
static void LoadString (const AreaCodeDesc* Desc, char* S, unsigned Count)
/* Read a zero terminated string from the file */
{
unsigned CharsRead = 0;
/* String must hold at least one character plus terminator */
assert (Count >= 2);
/* Fill the string */
while (CharsRead < Count-1) {
/* Read the next character */
int C = getc (Desc->F);
/* If it is EOF or NUL, we're done */
if (C == EOF || C == 0) {
break;
}
/* Check if we have a real character or a shortcut */
if (IsShortcut (C)) {
/* Insert a shortcut string */
unsigned ReadCount = LoadShortcut (Desc, S, Count-CharsRead, (char)C);
CharsRead += ReadCount;
S += ReadCount;
} else {
/* Normal character */
*S++ = (char) C;
CharsRead++;
}
}
/* Set the terminating zero */
*S = '\0';
}
static unsigned LoadFileHeader (AreaCodeDesc* Desc)
/* Load the header of a data file. Return one of the acXXX codes. */
{
int I;
u32 Version;
/* Load the magic word in the format used int the file (do not convert) */
u32 Magic = _Load_u32 (Desc->F, FileByteOrder);
/* Check what we got from the file, determine the byte order */
switch (Magic) {
case BigMagic:
Desc->ByteOrder = boBigEndian;
break;
case LittleMagic:
Desc->ByteOrder = boLittleEndian;
break;
default:
/* OOPS - the file is probably not a valid data file */
return acInvalidFile;
}
/* Now read the rest of the header data */
Version = Load_u32 (Desc);
Desc->Version = (Version >> 16);
Desc->Build = (Version & 0xFFFF);
Desc->Count = Load_u32 (Desc);
Desc->AreaCodeStart = Load_u32 (Desc);
Desc->InfoIndexStart = Load_u32 (Desc);
Desc->InfoStart = Load_u32 (Desc);
Desc->MinLength = Load_u32 (Desc);
Desc->CodeDataSize = Load_u32 (Desc);
/* Read the shortcuts */
for (I = 0; I < scCount; I++) {
Desc->Shortcut [I] = Load_u32 (Desc);
}
/* Check for some error conditions */
if (ferror (Desc->F)) {
/* Some sort of file problem */
return acFileError;
} else if (feof (Desc->F) || Desc->Count == 0) {
/* This should not happen on a valid file */
return acInvalidFile;
} else if ((Desc->Version & 0xFF00) != acVersion) {
return acWrongVersion;
} else {
/* Data is sane */
return acOk;
}
}
static u32 EncodeNumber (const char* Phone)
/* Encode the number we got from the caller into the internally used BCD
* format. If there are invalid chars in the number, return 0xFFFFFFFF.
*/
{
unsigned I;
unsigned Len;
u32 P = 0; /* Initialize to make gcc happy */
/* Get the amount of characters to convert */
Len = strlen (Phone);
if (Len == 0) {
/* Invalid */
return 0xFFFFFFFF;
} else if (Len > 8) {
Len = 8;
}
/* Convert the characters */
for (I = 0; I < Len; I++) {
/* Get the next character and check if it's valid */
char C = Phone [I];
if (!isascii (C) || !isdigit (C)) {
/* Invalid digit */
return 0xFFFFFFFF;
}
P = (P << 4) | (C & 0x0F);
}
/* Fill the rest of the number with 0x0F */
I = 8 - Len;
while (I--) {
P = (P << 4) | 0x0F;
}
/* Done - return the result */
return P;
}
static u32 ReadPhone (const AreaCodeDesc* Desc, long Index)
/* Read the phone number that is located at the given index. If we have a
* part of the table already loaded into memory, use the memory copy, else
* read the phone number from disk.
*/
{
if (Desc->Table && Index >= Desc->First && Index <= Desc->Last) {
/* Use the already loaded table, but don't forget to swap bytes */
return ByteSwapIfNeeded (Desc->Table [Index - Desc->First], Desc);
} else {
/* Load the value from the file */
fseek (Desc->F, Desc->AreaCodeStart + Index * sizeof (u32), SEEK_SET);
return Load_u32 (Desc);
}
}
static void LoadTable (AreaCodeDesc* Desc)
/* Load a part of the table into memory */
{
u32 SpaceNeeded = (Desc->Last - Desc->First + 1) * sizeof (u32);
Desc->Table = malloc (SpaceNeeded);
if (Desc->Table == 0) {
/* Out of memory. There is no problem with this now since we do
* not really need the table in core memory (it speeds things up,
* that's all). In addition to that, the memory requirement halves
* with each iteration, so maybe we have more luck next time.
*/
return;
}
/* Seek to the correct position in the file */
fseek (Desc->F, Desc->AreaCodeStart + Desc->First * sizeof (u32), SEEK_SET);
/* Read the data */
fread (Desc->Table, SpaceNeeded, 1, Desc->F);
}
static unsigned char CalcCodeLen (u32 Code)
/* Calculate the length of a given (encoded) area code in characters */
{
u32 Mask;
unsigned char Len = 0;
for (Mask = 0xF0000000L; Mask; Mask >>= 4) {
if ((Code & Mask) != Mask) {
Len++;
} else {
break;
}
}
return Len;
}
static unsigned CalcMatchingDigits (u32 Code1, u32 Code2)
/* Return the count of digits that match when comparing both numbers from
* left to right.
*/
{
static const u32 Masks [9] = {
0x00000000, 0xF0000000, 0xFF000000, 0xFFF00000,
0xFFFF0000, 0xFFFFF000, 0xFFFFFF00, 0xFFFFFFF0,
0xFFFFFFFF
};
unsigned I = sizeof (Masks) / sizeof (Masks [0]) - 1;
while ((Code1 & Masks [I]) != (Code2 & Masks [I])) {
/* Next one */
I--;
}
/* Return the count of matching digits */
return I;
}
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned GetAreaCodeInfo (acInfo* AC, const char* PhoneNumber)
/* Return - if possible - an information for the area code of the given number.
* The function returns one of the error codes defined in areacode.h. If the
* returned value is acOk, the AC struct is filled with the data of the
* area code found. If we did not have an error, but there is no area code
* that corresponds to the given number, the function returns acOk, but the
* AC struct is filled with an empty Info field and a AreaCodeLen of zero.
*/
{
u32 Phone; /* PhoneNumber encoded in BCD */
long First, Last, Current; /* For binary search */
u32 CurrentVal; /* The value at Table [Current] */
int Found; /* Flag: We've found an exact match */
unsigned RC = acOk; /* Result code of the function */
unsigned char AreaCodeLen; /* Length of areacode found */
u32 InfoStart; /* Starting offset of info string */
AreaCodeDesc Desc;
/* Clear the fields of the AC struct. Write a zero to the last field of
* Info - this field is never written to by the rest of the code. So by
* setting this to zero, we will assure a terminated string in case some
* problem prevents the code below from executing correctly.
*/
AC->Info [0] = '\0';
AC->Info [sizeof (AC->Info) - 1] = '\0';
AC->AreaCodeLen = 0;
/* Convert the phone number into the internal representation. If the
* number is invalid, return immidiately. This will also catch an empty
* phone number, so the rest of the code may safely assume that phone
* has a value that makes sense.
*/
Phone = EncodeNumber (PhoneNumber);
if (Phone == 0xFFFFFFFF) {
/* Invalid number */
return acInvalidInput;
}
/* Open the database file, check for errors */
Desc.F = fopen (acFileName, "rb");
if (Desc.F == 0) {
/* We had an error opening the file */
return acFileError;
}
/* Initialize descriptor data where needed */
Desc.Table = 0;
/* Read the header from the file */
RC = LoadFileHeader (&Desc);
if (RC != acOk) {
/* Wrong file or file read error */
goto ExitWithClose;
}
/* Add dead code to work around gcc warnings */
Current = 0;
CurrentVal = 0;
/* Now do a (eventually repeated) binary search over the data */
Found = 0;
First = 0;
do {
Last = (long) Desc.Count - 1;
while (First <= Last && Found == 0) {
/* If we don't have read the table into memory, check if we can do
* so now.
*/
if (Desc.Table == 0) {
u32 NeedMemory = (Last - First + 1) * sizeof (u32);
if (NeedMemory <= acMaxMem) {
/* Ok, the current part of the table is now small enough to
* load it into memory.
*/
Desc.First = First;
Desc.Last = Last;
LoadTable (&Desc);
}
}
/* Set current to mid of range */
Current = (Last + First) / 2;
/* Get the phone number from that place */
CurrentVal = ReadPhone (&Desc, Current);
/* Do a compare */
if (Phone > CurrentVal) {
First = Current + 1;
} else {
Last = Current - 1;
if (Phone == CurrentVal) {
/* Exact match (whow!) - terminate the loop */
Found = 1;
}
}
}
/* If we don't have an exact match, we check for a partially one. If
* Found is not true, the loop above will terminate with First > Last.
* Beware: This means that the index is eventually invalid!
*/
if (Found == 0) {
unsigned MatchingDigits; /* Count of matching digits */
/* Set the new current index and check if it is valid */
Current = First;
if (Current >= (long) Desc.Count) {
/* Not found */
goto ExitWithClose;
}
/* The index is valid, load the value */
CurrentVal = ReadPhone (&Desc, Current);
/* Calculate the length of the area code */
AreaCodeLen = CalcCodeLen (CurrentVal);
assert (AreaCodeLen > 0);
/* Check if the prefix is actually the first part of the phone
* number. If so, we've found a match.
*/
MatchingDigits = CalcMatchingDigits (Phone, CurrentVal);
if (MatchingDigits >= AreaCodeLen) {
/* Match! */
Found = 1;
} else {
/* Ok, now comes the tricky part: Since we allow numbers that
* do completely contain other numbers (e.g. 0123 --> AAAA,
* 01239 --> BBBB), we may have found the longer number and
* this caused the mismatch. There maybe a match if we remove
* one or more digits from the number.
* Because empty digits are filled with hex 'F', the shorter
* number (if one exists) comes *after* the one we found
* already. If there is a shorter number, it has - as a
* maximum - as many digits as were matching between the
* number we searched for, and the one we found. Since we have
* the length of the shortest number, contained in the data
* file in the header, we can stop, if the matching digits get
* below or equal to this value.
*/
if (MatchingDigits < Desc.MinLength) {
/* No match! */
goto ExitWithClose;
}
/* Replace all non-matching digits by hex 'F', and start again
* searching, beginning after the current value.
*/
Phone |= 0xFFFFFFFF >> (MatchingDigits * 4);
First = Current + 1;
}
}
} while (Found == 0);
/* Ok, we have now definitely found the code. Current is the index of the
* area code. Seek to the corresponding position in the name index, get
* the name position and the area code length from there (which is encoded
* together with the offset in a three byte value). To be more compatible
* with future versions, there is a field in the header that says, how big
* the area code specific data at that place is.
*/
fseek (Desc.F, Desc.InfoIndexStart + Current * Desc.CodeDataSize, SEEK_SET);
InfoStart = Load_u24 (&Desc);
/* The real area code length is in bit 20-23 of the value just read */
AC->AreaCodeLen = (unsigned) ((InfoStart & 0xF00000) >> 20) + 1;
/* Seek to the start of the info */
fseek (Desc.F, Desc.InfoStart + (InfoStart & 0xFFFFF), SEEK_SET);
/* Zero terminated info string follows. */
LoadString (&Desc, AC->Info, sizeof (AC->Info));
#ifdef CHARSET_CP850
/* Translate the info to the CP850 charset */
{
unsigned char *S = (unsigned char*) AC->Info;
while (*S) {
if (*S >= 128) {
*S = CP850Map [*S - 128];
}
S++;
}
}
#endif
ExitWithClose:
/* Free the table memory if allocated */
free (Desc.Table);
/* Close the data file */
fclose (Desc.F);
/* Done, return the result */
return RC;
}

Binary file not shown.

View File

@ -1,193 +0,0 @@
AREACODE
Portable library module to search for an area code in a database.
Version 2.00
(C) Copyright 1996-98 by Ullrich von Bassewitz
<uz@musoftware.de>
1. Overview
-----------
The areacode module together with its database serves as a helper for
finding names for area codes. It is freely available, subject to the
copyright notice below.
2. Function
-----------
The module exports a few data types and one function. The function resolves
a phone number (including the country code) to some text describing the area
code found in the phone number. Current descriptions are in german, the
database contains german, swiss and austrian area codes.
Usage is easy, just have a look into the header file areacode.h.
3. Supported systems and limitations
------------------------------------
The module should run on nearly all system that have the following
characteristics:
* 8 bit bytes
* An unsigned data type with 32 bits. The code makes some checks with the
values in limits.h to find such a datatype for itself, if all checks
fail, unsigned long is used. This may be overriden by #defining the
macro u32 to the datatype needed.
* An ANSI compatible compiler supporting prototypes. The code should also
compile with a C++ compiler, the header file uses the #ifdef __cpluplus
checks.
* Big or little endian architectures. For something more weird (old
Vaxes?) code has to be added.
* Systems with CP437, CP850 or ISO-8859-1 character sets. The "native"
format is ISO-8859-1, for the DOS codepages the #define CHARSET_CP850has
to be added when compiling the module.
The code has been tested under
* DOS (Watcom C/C++ 10.6)
* Windows-NT (Watcom C/C++ 10.6)
* OS/2 2.x (Watcom C/C++ 10.6)
* i386-Linux (egcs 1.03)
For these environments makefiles can be found in the make subdirectory.
The package has some limits as stated below:
* Current language is german.
* The data file contains area codes for germany, austria, switzerland,
the netherlands, and some codes for the UK and US.
* The area code including the country code (but not including the
international prefix, often 00) may not exceed 8 digits. This may be
bumped up to 9 digits if needed with some disadvantages (more
complicated code).
* An area code description must be shorter than 256 characters.
4. How to get the source & data files
-------------------------------------
You may get the source for the package itself, for the datafile builder and
for new datafiles from
ftp://ftp.musoftware.de/pub/uz/areacode/
Note: Please do not distribute modified data files. The data files contain
a version stamp to make shure, users don't overwrite newer versions with
older ones. This scheme will no longer work if data files are distributed
by third parties.
Note: The datafile builder needs spunk, a C++ class library to compile.
You may want to have a look in
ftp://ftp.musoftware.de/pub/uz/spunk/
for the current spunk version.
5. Installing the package
-------------------------
For all systems the location of the data file has to be known. The default
name (including the path) may be compiled into the module by #defining
DATA_FILENAME, or set at runtime (see areacode.h).
The Linux makefile will install the data file in a common place, so more
than one software package depending on areacode is able to use the data file.
The data file contains a version stamp, to avoid overwriting a newer file
by an older one, when installing more than one software package. The
program acvers is used to determine the build version, it will output three
numbers, the last one is the data file build (the first two are format
version numbers that - hopefully - will not change).
6. Some notes on version 2.0
----------------------------
Unfortunately, I was not able to keep binary compatibility for version 2.0.
After realizing that, I used the opportunity to change more things that were
due for some time (ISO-8859-1 as a native format is an example).
New in version 2.0:
* Source character set is now ISO-8859-1.
* Areacodes may be extensions of other codes. This leads to somewhat more
overhead when searching (now using a modified binary search), but the
feature was too useful to omit it.
* Detection of duplicate descriptions and partial duplicate descriptions.
* The string pool may now be compressed.
7. Copying
----------
This software is provided 'as-is', without any expressed or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
8. Credits
----------
Many thanks to all people that helped developing the module:
Andreas Kool (akool@kool.f.eunet.de), author of isdnlog,
for many suggestions and code testing.
Norbert Staudt (VKRG.Staudt@t-online.de),
who sent me lots of sample programs resolving area codes.
Andreas Gutzwiller (andy@hippo.proxyon.imp.com),
for the swiss area codes.
Alois Schneider (Alois.Schneider@magnet.at),
for the austrian area codes.
Paul Slootman (paul@wurtel.demon.nl),
for the two versions of the area codes for the netherlands
and for his patience:-)
Michael Reinelt (reinelt@eunet.at),
for kicking me until version 2.0 was finished.

View File

@ -1,125 +0,0 @@
/*****************************************************************************/
/* */
/* AREACODE.H */
/* */
/* Portable library module to search for an area code in a database. */
/* */
/* */
/* */
/* (C) 1996-98 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/*
* The code assumes
* - 8 bit bytes
* - unsigned long is 32 bit. This may be changed by #defining u32 to
* a data type that is an 32 bit unsigned when compiling this module.
* - ascii character set
*
* The code does *not* assume
* - a specific byte order. Currently the code autoadjusts to big or
* little endian data. If you have something more weird than that,
* you have to add conversion code.
*
*/
#ifndef AREACODE_H
#define AREACODE_H
#ifdef __cplusplus
extern "C" {
#endif
/*****************************************************************************/
/* Data, structs and constants */
/*****************************************************************************/
/* The name of the areacode data file. The default is what is #defined as
* DATA_FILENAME. If this is not #defined, the default is "areacode.dat",
* which is probably not what you want. In the latter case set this to
* the correct filename *before* your first call to GetAreaCodeInfo.
*/
extern char* acFileName;
/* How much dynamic memory is GetAreaCodeInfo allowed to consume? Having less
* memory means more disk access and vice versa. The function does even work
* if you set this value to zero. For maximum performance, the function needs
* 4 byte per area code stored in the data file. The default is 32KB.
*/
extern unsigned long acMaxMem;
/* Result codes of GetAreaCodeInfo */
#define acOk 0 /* Done */
#define acFileError 1 /* Cannot open/read file */
#define acInvalidFile 2 /* The file exists but is no area code data file */
#define acWrongVersion 3 /* Wrong version of data file */
#define acInvalidInput 4 /* Input string is not a number or empty */
/* The result of an area code search */
typedef struct {
unsigned AreaCodeLen; /* The length of the area code found */
char Info [256]; /* An info string */
} acInfo;
/*****************************************************************************/
/* Code */
/*****************************************************************************/
unsigned GetAreaCodeInfo (acInfo* /*AC*/ , const char* /*PhoneNumber*/);
/* Return - if possible - an information for the area code of the given number.
* The function returns one of the error codes defined in areacode.h. If the
* returned value is acOk, the AC struct is filled with the data of the
* area code found. If we did not have an error, but there is no area code
* that corresponds to the given number, the function returns acOk, but the
* AC struct is filled with an empty Info field and a AreaCodeLen of zero.
*/
#ifdef __cplusplus
}
#endif
/* End of AREACODE.H */
#endif

View File

@ -1,127 +0,0 @@
# *****************************************************************************
# * *
# * AREACODE Makefile for Linux *
# * *
# * (C) 1995-96 Ullrich von Bassewitz *
# * Wacholderweg 14 *
# * D-70597 Stuttgart *
# * EMail: uz@ibb.schwaben.com *
# * *
# *****************************************************************************
# $Id: linux.mak,v 1.2 1998/12/09 19:21:16 akool Exp $
#
# $Log: linux.mak,v $
# Revision 1.2 1998/12/09 19:21:16 akool
# new "Areacode" lib version 2.0
# from Ullrich von Bassewitz (uz@wuschel.musoftware.de)
# now we are supporting .at .ch .de .nl .uk and .us
# ATTENTION: The database-format has changed!
#
# Revision 1.1 1997/03/03 04:21:46 fritz
# Added files in areacode/make
#
#
#
# ------------------------------------------------------------------------------
# Stuff you may want to edit
# The name of the data file after installation
DATATARGET=/usr/lib/areacodes
# Command line for the installation of the data file
INSTALL = install -o bin -g bin -m 644
# ------------------------------------------------------------------------------
# Definitions
# Names of executables
AS = gas
AR = ar
LD = ld
ZIP = zip
# Flags for the GNU C compiler
CFLAGS = -g -O2 -Wall
# Name of the data file
DATASOURCE=areacode.dat
# ------------------------------------------------------------------------------
# Implicit rules
.c.o:
gcc $(CFLAGS) -c $<
# ------------------------------------------------------------------------------
#
ifeq (.depend,$(wildcard .depend))
all: actest acvers
include .depend
else
all: depend
endif
actest: areacode.o actest.o
gcc -o actest areacode.o actest.o
acvers: acvers.o
gcc -o acvers acvers.o
areacode.o: areacode.h areacode.c
gcc $(CFLAGS) -DDATA_FILENAME="\"$(DATATARGET)\"" \
-c -o areacode.o areacode.c
install: areacode.o acvers
@if [ `id -u` != 0 ]; then \
echo ""; \
echo 'Do "make install" as root'; \
echo ""; \
false; \
fi
@if [ -f $(DATATARGET) ]; then \
NewVersion=`./acvers $(DATASOURCE) | awk '{ print $$3 }'`;\
OldVersion=`./acvers $(DATATARGET) | awk '{ print $$3 }'`;\
echo "Current datafile build number: $$OldVersion"; \
echo "Build number of new datafile: $$NewVersion"; \
if [ $$NewVersion -gt $$OldVersion ]; then \
echo "Installing new datafile"; \
$(INSTALL) $(DATASOURCE) $(DATATARGET); \
else \
echo "Installed datafile is same or newer, skipping...";\
fi; \
else \
echo "Installing new datafile"; \
$(INSTALL) $(DATASOURCE) $(DATATARGET); \
fi
# ------------------------------------------------------------------------------
# Create a dependency file
depend dep: .depend
.depend:
@echo "Creating dependency information"
$(CC) -MM *.c > .depend
# ------------------------------------------------------------------------------
# clean up
distclean: zap
clean:
-rm -f *.bak *~ *.o
-rm -f acvers actest
zap: clean
-rm -f .depend
-rm -f *.o

View File

@ -1,121 +0,0 @@
# *****************************************************************************
# * *
# * AREACODE Makefile for SVR4 *
# * *
# * (C) 1995-96 Ullrich von Bassewitz *
# * Wacholderweg 14 *
# * D-70597 Stuttgart *
# * EMail: uz@ibb.schwaben.com *
# * *
# * *
# * SVR40 Port by Felix Blank (felix@tasha.muc.de) *
# * *
# *****************************************************************************
# $Id: svr40.mak,v 1.1 1997/03/03 04:21:46 fritz Exp $
#
# $Log: svr40.mak,v $
# Revision 1.1 1997/03/03 04:21:46 fritz
# Added files in areacode/make
#
#
#
# ------------------------------------------------------------------------------
# Stuff you may want to edit
# The name of the data file after installation
DATATARGET=/usr/local/lib/areacodes
# Command line for the installation of the data file
INSTALL = install -o bin -g bin -m 644
# ------------------------------------------------------------------------------
# Definitions
# Names of executables
AS = gas
AR = ar
LD = ld
ZIP = zip
CC = gcc
# Flags for the GNU C compiler
CFLAGS=-O2 -Wall
# Name of the data file
DATASOURCE=areacode.dat
# ------------------------------------------------------------------------------
# Implicit rules
.c.o:
gcc $(CFLAGS) -c $<
# ------------------------------------------------------------------------------
#
ifeq (.depend,$(wildcard .depend))
all: actest acvers
include .depend
else
all: depend
endif
actest: areacode.o actest.o
gcc -o actest areacode.o actest.o
acvers: acvers.o
gcc -o acvers acvers.o
areacode.o: areacode.h areacode.c
gcc $(CFLAGS) -DDATA_FILENAME="\"$(DATATARGET)\"" \
-DCHARSET_ISO -c -o areacode.o areacode.c
install: areacode.o acvers
@if [ `id -u` != 0 ]; then \
echo ""; \
echo 'Do "make install" as root'; \
echo ""; \
false; \
fi
@if [ -f $(DATATARGET) ]; then \
NewVersion=`./acvers $(DATASOURCE) | awk '{ print $$3 }'`;\
OldVersion=`./acvers $(DATATARGET) | awk '{ print $$3 }'`;\
echo "Current datafile build number: $$OldVersion"; \
echo "Build number of new datafile: $$NewVersion"; \
if [ $$NewVersion -gt $$OldVersion ]; then \
echo "Installing new datafile"; \
$(INSTALL) $(DATASOURCE) $(DATATARGET); \
else \
echo "Installed datafile is same or newer, skipping...";\
fi; \
else \
echo "Installing new datafile"; \
$(INSTALL) $(DATASOURCE) $(DATATARGET); \
fi
# ------------------------------------------------------------------------------
# Create a dependency file
depend dep:
@echo "Creating dependency information"
$(CC) -MM *.c > .depend
# ------------------------------------------------------------------------------
# clean up
distclean: zap
clean:
-rm *.bak *~
zap: clean
-rm *.o
-rm .depend

View File

@ -1,174 +0,0 @@
# *****************************************************************************
# * *
# * AREACODE Makefile *
# * *
# * (C) 1996 Ullrich von Bassewitz *
# * Wacholderweg 14 *
# * D-70597 Stuttgart *
# * EMail: uz@ibb.schwaben.com *
# * *
# *****************************************************************************
# $Id: watcom.mak,v 1.1 1997/03/03 04:21:47 fritz Exp $
#
# $Log: watcom.mak,v $
# Revision 1.1 1997/03/03 04:21:47 fritz
# Added files in areacode/make
#
#
#
# ------------------------------------------------------------------------------
# Generelle Einstellungen
.AUTODEPEND
.SUFFIXES .ASM .C .CC .CPP
.SWAP
# ------------------------------------------------------------------------------
# Allgemeine Definitionen
# Names of executables
AS = TASM
AR = WLIB
LD = WLINK
!if $d(__OS2__)
ZIP = zip
MV = c:\os2\4os2\4os2 /C MOVE /Q
!else
ZIP = pkzip
MV = mv
!endif
!if !$d(TARGET)
!if $d(__OS2__)
TARGET = OS2
!else
TARGET = DOS
!endif
!endif
LIBDIR= ..\spunk
INCDIR= ..\spunk
# target specific macros.
!if $(TARGET)==OS2
# --------------------- OS2 ---------------------
SYSTEM = os2v2
CPP = WPP386
CC = WCC386
CCCFG = -bm -bt=$(TARGET) -d$(TARGET) -i=$(INCDIR) -d2 -onatx -zp4 -5 -fpi87 -zq -w2 -ze
!elif $(TARGET)==DOS32
# -------------------- DOS4G --------------------
SYSTEM = dos4g
CPP = WPP386
CC = WCC386
CCCFG = -bt=$(TARGET) -d$(TARGET) -i=$(INCDIR) -d2 -onatx -zp4 -5 -fpi -zq -w2 -ze
!elif $(TARGET)==DOS
# --------------------- DOS ---------------------
SYSTEM = dos
CPP = WPP
CC = WCC
# Optimize for size when running under plain DOS, but use 286 code. Don't
# include ANY debugging code to make as many programs runable under plain DOS
# as possible.
CCCFG = -bt=$(TARGET) -d$(TARGET) -dSPUNK_NODEBUG -i=$(INCDIR) -d1 -oailmns -s -zp2 -zc -2 -fp2 -ml -zq -w2 -ze -zt255
!elif $(TARGET)==NETWARE
# --------------------- NETWARE -------------------
SYSTEM = netware
CPP = WPP386
CC = WCC386
CCCFG = -bm -bt=$(TARGET) -d$(TARGET) -i=$(INCDIR) -d1 -onatx -zp4 -5 -fpi -zq -w2 -ze
!elif $(TARGET)==NT
# --------------------- NT ----------------------
SYSTEM = nt
CPP = WPP386
CC = WCC386
CCCFG = -bm -bt=$(TARGET) -d$(TARGET) -i=$(INCDIR) -d1 -onatx -zp4 -5 -fpi87 -zq -w2 -ze
!else
!error
!endif
LIB = $(LIBDIR)\$(TARGET)\SPUNK.LIB
# ------------------------------------------------------------------------------
# Implicit rules
.c.obj:
$(CC) $(CCCFG) $<
.cc.obj:
$(CPP) $(CCCFG) $<
# --------------------------------------------------------------------
all: actest acvers
actest: actest.exe
acvers: acvers.exe
os2:
$(MAKE) -DTARGET=OS2
nt:
$(MAKE) -DTARGET=NT
dos32:
$(MAKE) -DTARGET=DOS32
dos:
$(MAKE) -DTARGET=DOS
# --------------------------------------------------------------------
# actest
actest.exe: areacode.obj \
actest.obj
-@copy makefile make\watcom.mak > nul
$(LD) system $(SYSTEM) @&&|
DEBUG all
NAME actest.exe
OPTION DOSSEG
OPTION STACK=32K
FILE areacode.obj
FILE actest.obj
|
acvers.exe: acvers.obj
-@copy makefile make\watcom.mak > nul
$(LD) system $(SYSTEM) @&&|
DEBUG all
NAME acvers.exe
OPTION DOSSEG
OPTION STACK=32K
FILE acvers.obj
|
# ------------------------------------------------------------------------------
# Aufr„umen
clean:
-del *.bak
zap: clean
-del *.obj
-del *.mbr
-del *.dbr

View File

@ -1,16 +0,0 @@
##
## Makefile.am
##
AUTOMAKE_OPTIONS = foreign
CLEANFILES = *~
MAINTAINERCLEANFILES = configure aclocal.m4 Makefile.in
CFLAGS = -Wall -O2
sbin_PROGRAMS = avmcapictrl
avmcapictrl_SOURCES = avmcapictrl.c
man_MANS = avmcapictrl.8

View File

@ -1,704 +0,0 @@
# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
sbin_PROGRAMS = avmcapictrl$(EXEEXT)
subdir = .
DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/avmcapictrl.8.in \
$(top_srcdir)/configure depcomp install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES = avmcapictrl.8
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
PROGRAMS = $(sbin_PROGRAMS)
am_avmcapictrl_OBJECTS = avmcapictrl.$(OBJEXT)
avmcapictrl_OBJECTS = $(am_avmcapictrl_OBJECTS)
avmcapictrl_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(avmcapictrl_SOURCES)
DIST_SOURCES = $(avmcapictrl_SOURCES)
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
man8dir = $(mandir)/man8
NROFF = nroff
MANS = $(man_MANS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = -Wall -O2
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GREP = @GREP@
I4LVERSION = @I4LVERSION@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
CLEANFILES = *~
MAINTAINERCLEANFILES = configure aclocal.m4 Makefile.in
avmcapictrl_SOURCES = avmcapictrl.c
man_MANS = avmcapictrl.8
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
am--refresh: Makefile
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
avmcapictrl.8: $(top_builddir)/config.status $(srcdir)/avmcapictrl.8.in
cd $(top_builddir) && $(SHELL) ./config.status $@
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
} \
; done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
avmcapictrl$(EXEEXT): $(avmcapictrl_OBJECTS) $(avmcapictrl_DEPENDENCIES) $(EXTRA_avmcapictrl_DEPENDENCIES)
@rm -f avmcapictrl$(EXEEXT)
$(LINK) $(avmcapictrl_OBJECTS) $(avmcapictrl_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avmcapictrl.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
install-man8: $(man_MANS)
@$(NORMAL_INSTALL)
test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
@list=''; test -n "$(man8dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.8[a-z]*$$/p'; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
done; }
uninstall-man8:
@$(NORMAL_UNINSTALL)
@list=''; test -n "$(man8dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.8[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@list='$(MANS)'; if test -n "$$list"; then \
list=`for p in $$list; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
if test -n "$$list" && \
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
echo " typically \`make maintainer-clean' will remove them" >&2; \
exit 1; \
else :; fi; \
else :; fi
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS) $(MANS)
installdirs:
for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-man
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-sbinPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man: install-man8
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-man uninstall-sbinPROGRAMS
uninstall-man: uninstall-man8
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-sbinPROGRAMS ctags dist dist-all \
dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-compile \
distclean-generic distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-man8 install-pdf install-pdf-am install-ps \
install-ps-am install-sbinPROGRAMS install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-man uninstall-man8 \
uninstall-sbinPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

971
avmb1/aclocal.m4 vendored
View File

@ -1,971 +0,0 @@
# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
[m4_warning([this file was generated for autoconf 2.68.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 1
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.11.3], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# _AM_AUTOCONF_VERSION(VERSION)
# -----------------------------
# aclocal traces this macro to find the Autoconf version.
# This is a private macro too. Using m4_define simplifies
# the logic in aclocal, which can simply ignore this definition.
m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.11.3])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 1
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
[dnl Rely on autoconf to set up CDPATH properly.
AC_PREREQ([2.50])dnl
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 9
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
m4_define([_AM_COND_VALUE_$1], [$2])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
AC_MSG_ERROR([[conditional "$1" was never defined.
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
# 2010, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 12
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX", "GCJ", or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
[$1], UPC, [depcc="$UPC" am_compiler_list=],
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
am__universal=false
m4_case([$1], [CC],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac],
[CXX],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac])
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
AM_CONDITIONAL([am__fastdep$1], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
am__nodep='_no'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
AC_SUBST([am__nodep])dnl
_AM_SUBST_NOTMAKE([am__nodep])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
# Autoconf 2.62 quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 16
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# The call with PACKAGE and VERSION arguments is the old style
# call (pre autoconf-2.50), which is being phased out. PACKAGE
# and VERSION should now be passed to AC_INIT and removed from
# the call to AM_INIT_AUTOMAKE.
# We support both call styles for the transition. After
# the next Automake release, Autoconf can make the AC_INIT
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.62])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_CC],
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_CXX],
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
[_AM_DEPENDENCIES(OBJC)],
[define([AC_PROG_OBJC],
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
])
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
# loop where config.status creates the headers, so we can generate
# our stamp files there.
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
[# Compute $1's index in $config_headers.
_am_arg=$1
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 1
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
if test x"${install_sh}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
AC_SUBST(install_sh)])
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
[rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from `make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 6
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
AC_MSG_WARN([`missing' script is too old or missing])
fi
])
# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 1
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
dnl Makefile.ins that do not define MKDIR_P, so we do our own
dnl adjustment using top_builddir (which is defined more often than
dnl MKDIR_P).
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
case $mkdir_p in
[[\\/$]]* | ?:[[\\/]]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 5
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
# ------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 5
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[[\\\"\#\$\&\'\`$am_lf]]*)
AC_MSG_ERROR([unsafe absolute working directory name]);;
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
esac
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "$[2]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT(yes)])
# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 1
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 3
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
# --------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of `v7', `ustar', or `pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AC_SUBST([AMTAR], ['$${TAR-tar}'])
m4_if([$1], [v7],
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
# Solaris sh will not grok spaces in the rhs of `-'.
for _am_tool in $_am_tools
do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar;
do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar <conftest.tar])
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR

View File

@ -1,152 +0,0 @@
.TH AVMCAPICTRL 8 "January 2000" isdn4k-utils-@I4LVERSION@ "Linux System Administration"
.UC 4
.SH NAME
avmcapictrl \- Add, reset or remove active AVM cards and load firmware
.SH SYNOPSIS
avmcapictrl add <portbase> <irq> <type>
.br
avmcapictrl load <bootcode> [<contrnr> [<protocol>
.br
[P2P | <dn1>:<spid1> [<dn2>:<spid2>]]]]
.br
avmcapictrl reset [contrnr]
.br
avmcapictrl remove [contrnr]
.br
avmcapictrl trace [contrnr] [off|short|on|full|shortnodata|nodata]
.br
avmcapictrl addcard <driver> <portbase> <irq> [ <membase> [ <cardnr> ] ]
.SH DESCRIPTION
.I avmcapictrl
is used to register active AVM ISA cards to the kernelcapi system and
therewith to the ISDN system. You need it also to upload the
firmware to any active AVM card. If an error occurs please also
check the kernel error messages using the command dmesg(8).
.LP
.SH COMMANDS
.TP 5
.B add <portbase> <irq> <type>
is used to add an ISA card to the kernel-capi2.0 system.
The
.I portbase
can have the values 0x150, 0x250, 0x300 and 0x340 for
the B1 ISA cards, look at the jumper on the card.
For a T1-ISA (HEMA) card you can select a wide range
of ports.
.br
.I irq
can be selected from the following values:
.br
3, 4, 5, 6, 7, 9, 10, 11, 12 and 15.
.br
.I type
can be B1 or T1.
.LP
.TP 5
.B load <bootcode> [<contrnr> [<protocol>
.B [P2P | <dn1>:<spid1> [<dn2>:<spid2>]]]]
is used to load the firmware to a card
.I bootcode
is a t4-file. The actual versions of the t4-files for the different
D channel protocols can be found at
ftp://ftp.in-berlin.de/pub/capi4linux/firmware/b1/
.br
You need different t4-files for different D channel protocols:
b1-1tr6.t4 for 1TR6, b1.t4 for DSS1 and
.br
b1-usa.t4 for 5ESS and NI1 (DSS1 is also supported).
.br
For M1/M2 PCMCIA cards you need m1-s10.t4 or m1-s4.t4 depending on the
handy type used.
.br
.I contrnr
is the number of the controller (card) starting from 1.
.br
.I protocol
can be DSS1, CT1, VN3, AUSTEL, 5ESS or NI1.
.br
.I P2P
point to point
.br
.I DN1:SPID1 DN2:SPID2
is for the american protocols 5ESS and NI1.
.LP
.TP 5
.B reset [contrnr]
is used to reset a card if loading has failed.
This function only makes sense if a card is not successfully loaded.
.br
.I contrnr
is the number of the controller (card) starting from 1.
.LP
.TP 5
.B remove [contrnr]
is used to remove a card previously added. You can also remove
cards added automatically (for example a B1-PCI card).
.br
.I contrnr
is the number of the controller (card) starting from 1.
.LP
.TP 5
.B trace [contrnr] [off|short|on|full|shortnodata|nodata]
is used to trace CAPI2.0 messages. The trace will be done
as kernel messages, see dmesg(8).
.br
.I contrnr
is the number of the controller (card) starting from 1.
.br
.I off
switch off tracing
.br
.I short
switch on "one line per CAPI2.0 message" tracing
.br
.I on | full
switch on "full decode" tracing
.br
.I shortnodata
switch on "one line per CAPI2.0 message" tracing, but exclude
DATA_B3_IND and DATA_B3_REQ messages.
.br
.I on | full
switch on full decode tracing, but exclude
DATA_B3_IND and DATA_B3_REQ messages.
.LP
.TP 5
.B addcard <driver> <portbase> <irq> [ <membase> [ <cardnr> ] ]
is used to add a card, this is more generic than
.I add.
.br
.I driver
currently b1isa or t1isa
.br
.I portbase
can have the values 0x150, 0x250, 0x300 and 0x340 for
the b1isa driver, look at the jumper on the card.
For t1isa driver you can select an wide range
of ports.
.br
.I irq
can be selected from the following values:
3, 4, 5, 6, 7, 9, 10, 11, 12 and 15.
.br
.I membase
memory address if needed by driver
.br
.I cardnr
only useful with driver t1isa
.SH AUTHOR
Carsten Paeth <calle@calle.in-berlin.de>
.LP
.SH SEE ALSO
.I ttyI\c
\&(4),
.I isdnctrl\c
\&(8),
.I isdninfo\c
\&(4).
.I dmesg\c
\&(8).
.I syslogd\c
\&(8).

View File

@ -1,713 +0,0 @@
/*
* $Id: avmcapictrl.c,v 1.17 2004/01/16 15:27:13 calle Exp $
*
* AVM-B1-ISDN driver for Linux. (Control-Utility)
*
* Copyright 1996 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: avmcapictrl.c,v $
* Revision 1.17 2004/01/16 15:27:13 calle
* remove several warnings.
*
* Revision 1.16 2001/03/01 14:59:11 paul
* Various patches to fix errors when using the newest glibc,
* replaced use of insecure tempnam() function
* and to remove warnings etc.
*
* Revision 1.15 2000/03/08 13:40:33 calle
* check for /dev/isdn/capi20 if /dev/capi20 doesn't exist.
*
* Revision 1.14 2000/01/28 16:36:19 calle
* generic addcard (call add_card function of named driver)
*
* Revision 1.13 1999/12/06 17:01:51 calle
* more documentation and possible errors explained.
*
* Revision 1.12 1999/07/01 16:37:53 calle
* New command with new driver
* avmcapictrl trace [contrnr] [off|short|on|full|shortnodate|nodata]
* to make traces of capi messages per controller.
*
* Revision 1.11 1999/06/21 15:30:45 calle
* extend error message if io port is out of range, now tell user that an
* AVM B1 PCI card must be added by loading module b1pci.
*
* Revision 1.10 1998/07/15 15:08:20 calle
* port and irq check changed.
*
* Revision 1.9 1998/02/27 15:42:00 calle
* T1 running with slow link.
*
* Revision 1.8 1998/02/24 17:56:23 calle
* changes for T1.
*
* Revision 1.7 1998/02/07 20:32:00 calle
* update man page, remove old cardtype M1, add is done via avm_cs.o
*
* Revision 1.6 1998/02/07 20:09:00 calle
* - added support for DN1/SPID1 DN2/SPID2 for 5ESS und NI1 protocols.
* - allow debuging of patchvalues.
* - optimize configure.in/configure
*
* Revision 1.5 1998/01/16 14:02:08 calle
* patchvalues working now, leased lines and dchannel protocols like
* CT1,VN3 und AUSTEL support okay, point to point also patchable.
*
* Revision 1.3 1997/12/07 20:02:22 calle
* prepared support for cardtype and different protocols
*
* Revision 1.2 1997/03/20 00:18:57 luethje
* inserted the line #include <errno.h> in avmb1/avmcapictrl.c and imon/imon.c,
* some bugfixes, new structure in isdnlog/isdnrep/isdnrep.c.
*
* Revision 1.1 1997/03/04 22:46:32 calle
* Added program to add and download firmware to AVM-B1 card
*
* Revision 2.2 1997/02/12 09:31:39 calle
* more verbose error messages
*
* Revision 1.1 1997/01/31 10:32:20 calle
* Initial revision
*
*
*/
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/stat.h>
#define _LINUX_LIST_H
#include <linux/b1lli.h>
#include <linux/capi.h>
/* new ioctls */
#include <linux/kernelcapi.h>
static char capidevname[] = "/dev/capi20";
static char capidevnamenew[] = "/dev/isdn/capi20";
char *cmd;
char *ctrldev;
int arg_ofs;
int debugpatch = 0;
void usage(void)
{
fprintf(stderr, "usage: %s add <portbase> <irq> [B1|T1 [<cardnr>]] (Add a new card)\n", cmd);
fprintf(stderr, " or: %s load <bootcode> [contrnr [protocol [P2P | DN1:SPID1 [DN2:SPID2]]]] (load firmware)\n", cmd);
fprintf(stderr, " or: %s reset [contrnr] (reset controller)\n", cmd);
fprintf(stderr, " or: %s remove [contrnr] (reset controller)\n", cmd);
#ifdef KCAPI_CMD_TRACE
fprintf(stderr, " or: %s trace [contrnr] [off|short|on|full|shortnodate|nodata]\n", cmd);
#endif
#ifdef KCAPI_CMD_ADDCARD
fprintf(stderr, " or: %s addcard <driver> <portbase> <irq> [ <membase> [ <cardnr> ] ]\n", cmd);
#endif
exit(1);
}
#define DP_ERROR -1
#define DP_NONE 0
#define DP_DSS1 1
#define DP_D64S 2
#define DP_D64S2 3
#define DP_D64SD 4
#define DP_DS01 5
#define DP_DS02 6
#define DP_CT1 7
#define DP_VN3 8
#define DP_AUSTEL 9
#define DP_5ESS 10 /* need SPID,SPID2,DN,DN2 */
#define DP_NI1 11 /* need SPID,SPID2,DN,DN2 */
#define DP_DSS1MOBIL 12
#define DP_1TR6MOBIL 13
#define DP_GSM 14
#define DP_1TR6 15
#define DP_T1 16
static struct pmap {
char *name;
int protocol;
} pmap[] = {
{ "DSS1", DP_DSS1 },
{ "D64S", DP_D64S },
{ "D64S2", DP_D64S2 },
{ "D64SD", DP_D64SD },
{ "DS01", DP_DS01 },
{ "DS02", DP_DS02 },
{ "CT1", DP_CT1 },
{ "VN3", DP_VN3 },
{ "AUSTEL", DP_AUSTEL },
{ "5ESS", DP_5ESS },
{ "NI1", DP_NI1 },
{ "T1", DP_T1 },
#if 0
{ "DSS1MOBIL", DP_DSS1MOBIL },
{ "1TR6MOBIL", DP_1TR6MOBIL },
{ "GSM", DP_GSM },
{ "1TR6", DP_1TR6 },
#endif
{ 0 },
};
static void show_protocols()
{
struct pmap *p;
int pos = 0;
for (p=pmap; p->name; p++) {
int len = strlen(p->name);
if (pos + len + 2 > 80) {
fprintf(stderr,",\n");
pos = 0;
}
if (pos == 0) {
fprintf(stderr, " %s", p->name);
pos += 8 + len;
} else {
fprintf(stderr, ",%s", p->name);
pos += 1 + len;
}
}
if (pos)
fprintf(stderr, "\n");
}
static int dchan_protocol(char *pname)
{
struct pmap *p;
for (p=pmap; p->name; p++) {
if (strcasecmp(pname, p->name) == 0)
return p->protocol;
}
return DP_ERROR;
}
static char patcharea[2048];
static int patchlen = 0;
static void addpatchvalue(char *name, char *value, int len)
{
int nlen = strlen(name);
if (patchlen + nlen + len + 2 >= sizeof(patcharea)) {
fprintf(stderr, "%s: can't add patchvalue %s\n" , cmd, name);
exit(3);
}
patcharea[patchlen++] = ':';
memcpy(&patcharea[patchlen], name, nlen);
patchlen += nlen;
patcharea[patchlen++] = 0;
memcpy(&patcharea[patchlen], value, len);
patchlen += len;
patcharea[patchlen++] = 0;
patcharea[patchlen+1] = 0;
}
int set_configuration(avmb1_t4file *t4config, int protocol, int p2p,
char *dn1, char *spid1, char *dn2, char *spid2)
{
if (protocol != DP_T1) {
addpatchvalue("WATCHDOG", "1", 1);
addpatchvalue("AutoFrame", "\001", 1);
} else {
addpatchvalue("WATCHDOG", "0", 1);
}
switch (protocol) {
case DP_T1:
case DP_NONE:
break;
case DP_DSS1:
break;
case DP_D64S:
case DP_D64S2:
case DP_D64SD:
p2p = 0;
addpatchvalue("FV2", "2", 1);
addpatchvalue("TEI", "\000", 1);
break;
case DP_DS01:
case DP_DS02:
p2p = 0;
addpatchvalue("FV2", "1", 1);
addpatchvalue("TEI", "\000", 1);
break;
case DP_CT1:
addpatchvalue("PROTOCOL", "\001", 1);
break;
case DP_VN3:
addpatchvalue("PROTOCOL", "\002", 1);
break;
case DP_AUSTEL:
addpatchvalue("PROTOCOL", "\004", 1);
break;
case DP_NI1:
p2p = 0;
addpatchvalue("PROTOCOL", "\003", 1);
if (dn1 && spid1) {
addpatchvalue("DN", dn1, strlen(dn1));
addpatchvalue("SPID", spid1, strlen(spid1));
}
if (dn2 && spid2) {
addpatchvalue("DN2", dn2, strlen(dn2));
addpatchvalue("SPID2", spid2, strlen(spid2));
}
break;
case DP_5ESS:
p2p = 0;
addpatchvalue("PROTOCOL", "\005", 1);
if (dn1 && spid1) {
addpatchvalue("DN", dn1, strlen(dn1));
addpatchvalue("SPID", spid1, strlen(spid1));
}
if (dn2 && spid2) {
addpatchvalue("DN2", dn2, strlen(dn2));
addpatchvalue("SPID2", spid2, strlen(spid2));
}
break;
case DP_DSS1MOBIL:
addpatchvalue("PatchMobileMode", "0", 1);
break;
case DP_1TR6MOBIL:
addpatchvalue("PatchMobileMode", "0", 1);
break;
case DP_GSM:
break;
case DP_1TR6:
break;
default:
return -1;
}
if (p2p) {
addpatchvalue("P2P", "\001", 1);
addpatchvalue("TEI", "\000", 1);
}
t4config->len = patchlen+1;
t4config->data = patcharea;
if (debugpatch) {
FILE *fp = fopen("/tmp/b1.pvals", "w");
if (fp) {
fwrite(t4config->data, t4config->len, 1, fp);
fclose(fp);
fprintf(stderr, "avmcapictrl: patchvalues written to /tmp/b1.pvals\n");
}
}
return 0;
}
int validports[] =
{0x150, 0x250, 0x300, 0x340, 0};
int validirqs[] = { 3, 4, 5, 6, 7, 9, 10, 11, 12, 15, 0};
int validhemairqs[] = { 3, 5, 7, 9, 10, 11, 12, 15, 0};
static int checkportandirq(int cardtype, int port, int irq)
{
int i;
if (cardtype == AVM_CARDTYPE_T1) {
if ((port & 0xf) != 0) {
fprintf(stderr, "%s: illegal port %d\n", cmd, port);
fprintf(stderr, "%s: 3 low bits had to be zero\n", cmd);
return -1;
}
if ((port & 0x30) == 0x30) {
fprintf(stderr, "%s: illegal port %d\n", cmd, port);
fprintf(stderr, "%s: bit 4 and 5 can not be one together\n", cmd);
return -1;
}
for (i = 0; validhemairqs[i] && irq != validhemairqs[i]; i++);
if (!validhemairqs[i]) {
fprintf(stderr, "%s: illegal irq %d\n", cmd, irq);
fprintf(stderr, "%s: try one of %d", cmd, validhemairqs[0]);
for (i = 1; validhemairqs[i]; i++)
fprintf(stderr, ", %d", validhemairqs[i]);
fprintf(stderr, "\n");
return -1;
}
} else {
for (i = 0; validports[i] && port != validports[i]; i++);
if (!validports[i]) {
fprintf(stderr, "%s: illegal io-addr 0x%x\n", cmd, port);
fprintf(stderr, "%s: try one of 0x%x", cmd, validports[0]);
for (i = 1; validports[i]; i++)
fprintf(stderr, ", 0x%x", validports[i]);
fprintf(stderr, "\n");
fprintf(stderr, "%s: to install a B1 PCI card load module b1pci.o\n", cmd);
return -1;
}
for (i = 0; validirqs[i] && irq != validirqs[i]; i++);
if (!validirqs[i]) {
fprintf(stderr, "%s: illegal irq %d\n", cmd, irq);
fprintf(stderr, "%s: try one of %d", cmd, validirqs[0]);
for (i = 1; validirqs[i]; i++)
fprintf(stderr, ", %d", validirqs[i]);
fprintf(stderr, "\n");
return -1;
}
}
return 0;
}
int main(int argc, char **argv)
{
int fd;
int ac;
capi_manufacturer_cmd ioctl_s;
avmb1_extcarddef newcard;
avmb1_loadandconfigdef ldef;
avmb1_resetdef rdef;
avmb1_getdef gdef;
int newdriver;
char *dn1 = 0;
char *spid1 = 0;
char *dn2 = 0;
char *spid2 = 0;
if ((cmd = strrchr(argv[0], '/')) == 0) {
cmd = argv[0];
} else {
++cmd;
}
if (argc > 1) {
arg_ofs = 1;
} else
usage();
ac = argc - (arg_ofs - 1);
if ((fd = open(capidevname, O_RDWR)) < 0 && errno == ENOENT)
fd = open(capidevnamenew, O_RDWR);
if (fd < 0) {
switch (errno) {
case ENOENT:
perror("Device file /dev/capi20 and /dev/isdn/capi20 missing, use instdev");
exit(2);
case ENODEV:
perror("device capi20 not registered");
fprintf(stderr, "look in /proc/devices.\n");
fprintf(stderr, "maybe the devicefiles are installed with a wrong majornumber,\n");
fprintf(stderr, "or you linux kernel version only supports 64 char device (check /usr/include/linux/major.h)\n");
exit(2);
}
perror("/dev/capi20");
exit(-1);
}
gdef.contr = 0;
ioctl_s.cmd = AVMB1_GET_CARDINFO;
ioctl_s.data = &gdef;
newdriver = 0;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
if (errno != EINVAL)
newdriver = 1;
} else {
newdriver = 1;
}
if (!strcasecmp(argv[arg_ofs], "add")) {
int port, irq, cardtype, cardnr = 0;
if (ac >= 4) {
sscanf(argv[arg_ofs + 1], "%i", &port);
sscanf(argv[arg_ofs + 2], "%i", &irq);
if (argv[arg_ofs + 3]) {
if (strcasecmp(argv[arg_ofs + 3],"B1") == 0) {
cardtype = AVM_CARDTYPE_B1;
} else if (strcasecmp(argv[arg_ofs + 3],"T1") == 0) {
cardtype = AVM_CARDTYPE_T1;
if (argv[arg_ofs + 4])
sscanf(argv[arg_ofs + 4], "%i", &cardnr);
} else {
fprintf(stderr, "%s: illegal cardtype \"%s\"\n", cmd, argv[arg_ofs + 3]);
fprintf(stderr, "%s: try one of B1,T1", cmd);
exit(-1);
}
} else {
cardtype = AVM_CARDTYPE_B1;
}
if (checkportandirq(cardtype, port, irq) != 0)
exit(1);
newcard.port = port;
newcard.irq = irq;
newcard.cardtype = cardtype;
newcard.cardnr = cardnr;
if (!newdriver && cardtype != AVM_CARDTYPE_B1) {
fprintf(stderr, "%s: only B1 supported by kernel driver, sorry\n", cmd);
exit(1);
}
if (newdriver)
ioctl_s.cmd = AVMB1_ADDCARD_WITH_TYPE;
else ioctl_s.cmd = AVMB1_ADDCARD;
ioctl_s.data = &newcard;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
perror("ioctl ADDCARD");
fprintf(stderr, "%s: please also look at the kernel message, call command dmesg(8)\n", cmd);
exit(-1);
}
close(fd);
return 0;
}
}
if ( strcasecmp(argv[arg_ofs], "load") == 0
|| strcasecmp(argv[arg_ofs], "test") == 0 ) {
struct stat st;
int codefd;
int contr = 1;
int protocol = 0;
int p2p = 0;
if (strcasecmp(argv[arg_ofs], "test") == 0)
debugpatch = 1;
if (ac == 2) {
usage();
exit(1);
}
if (ac > 3)
contr = atoi(argv[arg_ofs + 2]);
if (ac > 4) {
if (!newdriver) {
fprintf(stderr, "%s: need newer kernel driver to set protocol\n",
cmd);
exit(1);
}
protocol = dchan_protocol(argv[arg_ofs + 3]);
if (protocol < 0) {
fprintf(stderr,"invalid protocol \"%s\"\n",
argv[arg_ofs + 3]);
show_protocols();
exit(1);
}
}
if (ac > 5) {
if (strcasecmp(argv[arg_ofs + 4], "P2P") == 0) {
p2p = 1;
} else {
if (protocol != DP_5ESS && protocol != DP_NI1) {
fprintf(stderr,"parameter should be P2P not \"%s\"\n",
argv[arg_ofs + 4]);
exit(1);
}
dn1 = argv[arg_ofs + 4];
spid1 = strchr(dn1, ':');
if (spid1 == 0) {
fprintf(stderr,"DN1 and SPID1 should be spearated by ':s': %s\n",
argv[arg_ofs + 4]);
exit(1);
}
*spid1++ = 0;
if (ac > 6) {
dn2 = argv[arg_ofs + 5];
spid2 = strchr(dn2, ':');
if (spid2 == 0) {
fprintf(stderr,"DN2 and SPID2 should be spearated by ':s': %s\n",
argv[arg_ofs + 5]);
exit(1);
}
*spid2++ = 0;
}
}
}
if (stat(argv[arg_ofs + 1], &st)) {
perror(argv[arg_ofs + 1]);
exit(2);
}
if (!(codefd = open(argv[arg_ofs + 1], O_RDONLY))) {
perror(argv[arg_ofs + 1]);
exit(2);
}
ldef.contr = contr;
ldef.t4file.len = st.st_size;
ldef.t4file.data = mmap(0, st.st_size, PROT_READ, MAP_PRIVATE, codefd, 0);
if (ldef.t4file.data == (unsigned char *) -1) {
perror("mmap");
exit(2);
}
ldef.t4config.len = 0;
ldef.t4config.data = 0;
if (protocol || p2p || (dn1 && spid1) || (dn2 && spid2)) {
set_configuration(&ldef.t4config, protocol, p2p,
dn1, spid1, dn2, spid2);
if (debugpatch)
exit(0);
} else if (debugpatch) {
fprintf(stderr,"avmcapictrl: no patchvalues needed\n");
}
printf("Loading Bootcode %s ... ", argv[arg_ofs + 1]);
fflush(stdout);
if (newdriver)
ioctl_s.cmd = AVMB1_LOAD_AND_CONFIG;
else ioctl_s.cmd = AVMB1_LOAD;
ioctl_s.data = &ldef;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
perror("\nioctl LOAD");
fprintf(stderr, "%s: please also look at the kernel message, call command dmesg(8)\n", cmd);
exit(2);
}
munmap(ldef.t4file.data, ldef.t4file.len);
close(codefd);
close(fd);
printf("done\n");
return 0;
}
if (!strcasecmp(argv[arg_ofs], "reset")) {
int contr = 1;
if (ac > 2)
contr = atoi(argv[arg_ofs + 1]);
rdef.contr = contr;
ioctl_s.cmd = AVMB1_RESETCARD;
ioctl_s.data = &rdef;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
fprintf(stderr, "%s: please also look at the kernel message, call command dmesg(8)\n", cmd);
perror("\nioctl RESETCARD");
exit(2);
}
close(fd);
return 0;
}
if ( !strcasecmp(argv[arg_ofs], "remove")
|| !strcasecmp(argv[arg_ofs], "delete")
|| !strcasecmp(argv[arg_ofs], "del")) {
int contr = 1;
if (ac > 2)
contr = atoi(argv[arg_ofs + 1]);
rdef.contr = contr;
ioctl_s.cmd = AVMB1_REMOVECARD;
ioctl_s.data = &rdef;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
fprintf(stderr, "%s: please also look at the kernel message, call command dmesg(8)\n", cmd);
perror("\nioctl REMOVECARD");
exit(2);
}
close(fd);
return 0;
}
#ifdef KCAPI_CMD_TRACE
if (!strcasecmp(argv[arg_ofs], "trace")) {
kcapi_flagdef fdef;
char *s = 0;
fdef.contr = 1;
fdef.flag = 0;
if (ac > 2) {
s = argv[arg_ofs + 1];
if (isdigit(*s)) {
fdef.contr = atoi(argv[arg_ofs + 1]);
s = argv[arg_ofs + 2];
}
}
if (s) {
if (isdigit(*s)) {
fdef.flag = atoi(s);
} else if (strcasecmp(s, "off") == 0) {
fdef.flag = KCAPI_TRACE_OFF;
} else if (strcasecmp(s, "short") == 0) {
fdef.flag = KCAPI_TRACE_SHORT;
} else if (strcasecmp(s, "on") == 0) {
fdef.flag = KCAPI_TRACE_FULL;
} else if (strcasecmp(s, "full") == 0) {
fdef.flag = KCAPI_TRACE_FULL;
} else if (strcasecmp(s, "shortnodata") == 0) {
fdef.flag = KCAPI_TRACE_SHORT_NO_DATA;
} else if (strcasecmp(s, "nodata") == 0) {
fdef.flag = KCAPI_TRACE_FULL_NO_DATA;
} else {
usage();
exit(1);
}
}
ioctl_s.cmd = KCAPI_CMD_TRACE;
ioctl_s.data = &fdef;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
perror("\nioctl TRACE");
exit(2);
}
close(fd);
if (fdef.flag != KCAPI_TRACE_OFF)
printf("%s: trace switched on, look at the kernel messages, check dmesg(8)\n", cmd);
else printf("%s: trace switched off\n", cmd);
return 0;
}
#endif
#ifdef KCAPI_CMD_ADDCARD
if (!strcasecmp(argv[arg_ofs], "addcard")) {
kcapi_carddef carddef;
char *s = 0;
int port;
int irq;
int cardnr = 0;
unsigned long membase = 0;
memset(&carddef, 0, sizeof(carddef));
if (ac >= 5) {
s = argv[arg_ofs + 1];
if (strlen(s) > sizeof(carddef.driver)) {
fprintf(stderr, "%s: driver name > %lu\n",
cmd, (unsigned long)sizeof(carddef.driver));
exit(1);
}
strncpy(carddef.driver, s, sizeof(carddef.driver));
if (sscanf(argv[arg_ofs + 2], "%i", &port) != 1) {
fprintf(stderr, "%s: invalid port \"%s\"\n",
cmd, argv[arg_ofs + 2]);
exit(1);
}
carddef.port = port;
if (sscanf(argv[arg_ofs + 3], "%i", &irq) != 1) {
fprintf(stderr, "%s: invalid irq \"%s\"\n",
cmd, argv[arg_ofs + 3]);
exit(1);
}
carddef.irq = irq;
if (argv[arg_ofs + 4]) {
if (sscanf(argv[arg_ofs + 4], "%li", &membase) != 1) {
fprintf(stderr, "%s: invalid membase \"%s\"\n",
cmd, argv[arg_ofs + 4]);
exit(1);
}
carddef.membase = membase;
if (argv[arg_ofs + 5]) {
if (sscanf(argv[arg_ofs + 5], "%i", &cardnr) != 1) {
fprintf(stderr, "%s: invalid cardnr \"%s\"\n",
cmd, argv[arg_ofs + 5]);
exit(1);
}
carddef.cardnr = cardnr;
}
}
} else {
fprintf(stderr, "%s: missing arguments\n", cmd);
usage();
exit(1);
}
ioctl_s.cmd = KCAPI_CMD_ADDCARD;
ioctl_s.data = &carddef;
if ((ioctl(fd, CAPI_MANUFACTURER_CMD, &ioctl_s)) < 0) {
perror("\nioctl ADDCARD");
exit(2);
}
close(fd);
return 0;
}
#endif
usage();
return 0;
}

5341
avmb1/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
AC_INIT([avmcapictrl],[1.17])
AM_INIT_AUTOMAKE
AC_PREFIX_DEFAULT([/usr])
dnl Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL
I4LVERSION=${I4LVERSION:-"?.?"}
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h sys/ioctl.h unistd.h)
dnl Checks for library functions.
AC_CHECK_FUNCS(mmap)
dnl Define which variables to substitute & which files to generate
AC_SUBST(I4LVERSION)
AC_OUTPUT(Makefile avmcapictrl.8)

View File

@ -1,688 +0,0 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2011-12-04.11; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
# 2011 Free Software Foundation, Inc.
# 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, 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, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
# This is just like msvc7 but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvc7
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
# Add `dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
msvc7)
if test "$libtool" = yes; then
showIncludes=-Wc,-showIncludes
else
showIncludes=-showIncludes
fi
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
if test "$stat" = 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The first sed program below extracts the file names and escapes
# backslashes for cygpath. The second sed program outputs the file
# name when reading, but also accumulates all include files in the
# hold buffer in order to output them again at the end. This only
# works with sed implementations that can handle large buffers.
sed < "$tmpdepfile" -n '
/^Note: including file: *\(.*\)/ {
s//\1/
s/\\/\\\\/g
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
s/\(.*\)/ \1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
s/.*/ /
G
p
}' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvc7msys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -1,527 +0,0 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2011-01-19.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
# Protect names problematic for `test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
# Protect names problematic for `test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names problematic for `test' and other utilities.
case $src in
-* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -1,331 +0,0 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2012-01-06.13; # UTC
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# 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, 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, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
autom4te touch the output file, or create a stub one
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
\`g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# normalize program name to check for.
program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program). This is about non-GNU programs, so use $1 not
# $program.
case $1 in
lex*|yacc*)
# Not GNU programs, they don't have --version.
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
eval LASTARG=\${$#}
case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if test ! -f y.tab.h; then
echo >y.tab.h
fi
if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if test $# -ne 1; then
eval LASTARG=\${$#}
case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit $?
fi
;;
makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '
/^@setfilename/{
s/.* \([^ ]*\) *$/\1/
p
q
}' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
# If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything.
test -f $file || exit 1
touch $file
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -1,24 +0,0 @@
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = no-dependencies foreign
CLEANFILES = *~ comperr
MAINTAINERCLEANFILES = configure aclocal.m4 Makefile.in config.h.in
stamp-h.in
include_HEADERS = capi20.h capiutils.h capicmd.h
lib_LTLIBRARIES = libcapi20.la
lib_LIBRARIES = libcapi20dyn.a
libcapi20_la_SOURCES = capi20.c capifunc.c convert.c
libcapi20_la_LDFLAGS = -version-info ${LIBCAPI_VERSION}:${LIBCAPI_VERSION_RELEASE}:${LIBCAPI_VERSION_AGE}
libcapi20_la_CFLAGS = -fno-strict-aliasing
libcapi20dyn_a_SOURCES = capidyn.c
libcapi20dyn_a_CFLAGS = -fPIC
# libcapi20_la_LIBADD = $(LIBADD_DL)
$(OBJECTS): libtool
export SED
libtool: $(LIBTOOL_DEPS)
$(SHELL) ./config.status --recheck

Some files were not shown because too many files have changed in this diff Show More