Forum OpenACS Q&A: Re: OpenACS / IPCop / Error: nssock: failed to listen on 200.200.200.200:8000: Cannot assign requested address

Thanks James, Robert and Andrei.

I set the hostname and address to 127.0.0.1 within my sample-config.tcl file and found that I was able to browse to the homepage.  (My sample-config.tcl file follows).

Hopefully I'll explain this clearly but let me know if anything sounds odd.

I have two machines.  One is a firewall running ipCop and the other a redhat 9 linux workstation.  My firewall machine has two network cards.  One card links to my ASDL modem and the other links to my linux workstation.

I have ipCop configured for GREEN+RED interfaces.  The RED interface is for the external network (internet access via my ASDL modem) and the GREEN interface is for my internal network (ie my linux workstation).

I set the GREEN interface address to 200.200.200.200.

inet addr:200.200.200.200
Bcast:200.200.200.255
Mask:255.255.255.0

The ip address for my RED interface is set via DHCP and I set my DHCP hostname as ipcop.

The ip address of my firewall machine is supplied by my internet service provider.  It's not a static ip address.

inet addr:203.217.68.128
Bcast:203.217.68.255
Mask:255.255.255.0

The ip address of my workstation is provided by ipCop.  I enabled ipCop's DHCP server function - providing a range of addresses between

200.200.200.200
and
200.200.200.250

I defined the "primary DNS" setting on the "DHCP server configuration screen" as 200.200.200.200

ifconfig on my local workstation tells me that the ip address of my workstation is

inet addr:200.200.200.201
Bcast:200.200.200.255
Mask:255.255.255.0

# $Header: /usr/local/cvsroot/nsd/aolserver/nsd/sample-config.tcl,v 1.1.1.2 2001/03/31 15:54:50 mayoff Exp $

#
# sample-config.tcl --  The AOLserver Startup Script
#
#      This is a Tcl script that is sourced when AOLserver starts up.
#      A detailed reference is in "doc/config.txt".
#

ns_log notice "config.tcl: starting to read config file..."

#
# Set some Tcl variables that are commonly used throughout this file.
#
set httpport              8000
set httpsport              8443

# The hostname and address should be set to actual values.
#set hostname              [ns_info hostname]
#set address                [ns_info address]

set hostname 127.0.0.1
set address 127.0.0.1

set servername            "server1"
set serverdesc            "Server Name"

set homedir                [file dirname [ns_info config]]
set bindir                [file dirname [ns_info nsd]]

set pageroot              ${homedir}/servers/${servername}/pages
set directoryfile          index.adp,index.html,index.htm

set ext [info sharedlibextension]

# nsssl: Only loads if keyfile.pem and certfile.pem exist.
#set sslmodule              nsssl${ext}  ;# Domestic 128-bit/1024-bit SSL.
set sslmodule              nsssle${ext} ;# Exportable 40-bit/512-bit SSL.
set sslkeyfile  ${homedir}/servers/${servername}/modules/nsssl/keyfile.pem
set sslcertfile  ${homedir}/servers/${servername}/modules/nsssl/certfile.pem

# nscp: Uncomment the sample password and log in with "nsadmin", password "x",
#      type "ns_crypt newpassword salt" and put the encrypted string below.
set nscp_port 9999
set nscp_addr 127.0.0.1
set nscp_user ""
#set nscp_user "nsadmin:t2GqvvaiIUbF2:" ;# sample user="nsadmin", pw="x".

#
# Global server parameters
#
ns_section "ns/parameters"
ns_param  home            $homedir
ns_param  debug          false

#
# Thread library (nsthread) parameters
#
ns_section "ns/threads"
ns_param  mutexmeter      true      ;# measure lock contention
#ns_param  stacksize [expr 128*1024] ;# Per-thread stack size.

#
# MIME types.
#
#  Note: AOLserver already has an exhaustive list of MIME types, but in
#  case something is missing you can add it here.
#
ns_section "ns/mimetypes"
ns_param  default        "*/*"    ;# MIME type for unknown extension.
ns_param  noextension    "*/*"    ;# MIME type for missing extension.
#ns_param  ".xls"          "application/vnd.ms-excel"

############################################################
#
# Server-level configuration
#
#  There is only one server in AOLserver, but this is helpful when multiple
#  servers share the same configuration file.  This file assumes that only
#  one server is in use so it is set at the top in the "server" Tcl variable.
#  Other host-specific values are set up above as Tcl variables, too.
#

ns_section "ns/servers"
ns_param  $servername    $serverdesc

#
# Server parameters
#
ns_section "ns/server/${servername}"
ns_param  directoryfile  $directoryfile
ns_param  pageroot        $pageroot
ns_param  globalstats    true      ;# Enable built-in statistics.
ns_param  urlstats        true      ;# Enable URL statistics.
ns_param  maxurlstats    1000      ;# Max number of URL's to do stats on.
ns_param  enabletclpages  false    ;# Parse *.tcl files in pageroot.

#
# Scaling and Tuning Options
#
#  Note: These values aren't necessarily the defaults.
#
#ns_param  connsperthread  0        ;# Normally there's one conn per thread
#ns_param  flushcontent    false    ;# Flush all data before returning
#ns_param  maxconnections  100      ;# Max connections to put on queue
#ns_param  maxdropped      0        ;# Shut down if dropping too many conns
#ns_param  maxthreads      20        ;# Tune this to scale your server
#ns_param  minthreads      0        ;# Tune this to scale your server
#ns_param  threadtimeout  120      ;# Idle threads die at this rate

# Directory listings -- use an ADP or a Tcl proc to generate them.
#ns_param  directoryadp    $pageroot/dirlist.adp ;# Choose one or the other.
#ns_param  directoryproc  _ns_dirlist          ;#  ...but not both!
#ns_param  directorylisting simple              ;# Can be simple or fancy.

#
# ADP (AOLserver Dynamic Page) configuration
#
ns_section "ns/server/${servername}/adp"
ns_param  map            "/*.adp"  ;# Extensions to parse as ADP's.
#ns_param  map            "/*.html" ;# Any extension can be mapped.
ns_param  enableexpire    false    ;# Set "Expires: now" on all ADP's.
ns_param  enabledebug    false    ;# Allow Tclpro debugging with "?debug".

# ADP special pages
#ns_param  errorpage      ${pageroot}/errorpage.adp ;# ADP error page.

#
# ADP custom parsers -- see adp.c
#
ns_section "ns/server/${servername}/adp/parsers"
ns_param  adp            ".adp"    ;# adp is the default parser.

#
# Socket driver module (HTTP)  -- nssock
#
ns_section "ns/server/${servername}/module/nssock"
ns_param  port            $httpport
ns_param  hostname        $hostname
ns_param  address        $address

#
# Socket driver module (HTTPS) -- nsssl
#
#  nsssl does not load unless sslkeyfile/sslcertfile exist (above).
#
ns_section "ns/server/${servername}/module/nsssl"
ns_param  port            $httpsport
ns_param  hostname        $hostname
ns_param  address        $address
ns_param  keyfile        $sslkeyfile
ns_param  certfile        $sslcertfile

#
# Control port -- nscp
#
#  nscp does not load unless nscp_user is a valid user.
#
ns_section "ns/server/${servername}/module/nscp"
ns_param  port            $nscp_port
ns_param  address        $nscp_addr

ns_section "ns/server/${servername}/module/nscp/users"
ns_param  user            $nscp_user

#
# Access log -- nslog
#
ns_section "ns/server/${servername}/module/nslog"
ns_param  rolllog        true      ;# Should we roll log?
ns_param  rollonsignal    true      ;# Roll log on SIGHUP.
ns_param  rollhour        0        ;# Time to roll log.
ns_param  maxbackup      5        ;# Max number to keep around when rolling.

#
# CGI interface -- nscgi
#
#  WARNING: These directories must not live under pageroot.
#
ns_section "ns/server/${servername}/module/nscgi"
#ns_param  map "GET  /cgi /usr/local/cgi"    ;# CGI script file dir (GET).
#ns_param  map "POST /cgi /usr/local/cgi"    ;# CGI script file dir (POST).

#
# Modules to load
#
ns_section "ns/server/${servername}/modules"
ns_param  nssock          ${bindir}/nssock${ext}
ns_param  nslog          ${bindir}/nslog${ext}
#ns_param  nscgi          ${bindir}/nscgi${ext}  ;# Map the paths before using.
#ns_param  nsperm          ${bindir}/nsperm${ext} ;# Edit passwd before using.

#
# nsssl: Only loads if sslcertfile and sslkeyfile exist (see above).
#
if { [file exists $sslcertfile] && [file exists $sslkeyfile] } {
    ns_param nsssl ${bindir}/${sslmodule}
} else {
    ns_log warning "config.tcl: nsssl not loaded -- key/cert files do not exist."
}

#
# nscp: Only loads if nscp_user is set (see above).
#
if { $nscp_user != "" } {

    if ![string match "127.0.0.1" $nscp_addr] {
    # Anything but 127.0.0.1 is not recommended.
    ns_log warning "config.tcl: nscp listening on ${nscp_addr}:${nscp_port}"
    }
    ns_param nscp ${bindir}/nscp${ext}

} else {
    ns_log warning "config.tcl: nscp not loaded -- user/password is not set."
}

ns_log notice "config.tcl: finished reading config file."