Dolda2000 GitWeb
/
jsvc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Apparently, InetAddress.getLocalHost doesn't actually return localhost.
[jsvc.git]
/
src
/
dolda
/
jsvc
/
scgi
/
DirServer.java
diff --git
a/src/dolda/jsvc/scgi/DirServer.java
b/src/dolda/jsvc/scgi/DirServer.java
index
5d82739
..
0b70e9c
100644
(file)
--- a/
src/dolda/jsvc/scgi/DirServer.java
+++ b/
src/dolda/jsvc/scgi/DirServer.java
@@
-98,17
+98,23
@@
public class DirServer extends Server {
}
private static void usage(PrintStream out) {
}
private static void usage(PrintStream out) {
- out.println("usage: dolda.jsvc.scgi.DirServer [-h] [-e CHARSET] [-d DATADIR] PORT");
+ out.println("usage: dolda.jsvc.scgi.DirServer [-h] [-
B BINDADDR] [-
e CHARSET] [-d DATADIR] PORT");
}
public static void main(String[] args) {
}
public static void main(String[] args) {
- PosixArgs opt = PosixArgs.getopt(args, "h");
+ PosixArgs opt = PosixArgs.getopt(args, "h
e:d:B:
");
if(opt == null) {
usage(System.err);
System.exit(1);
}
String charset = null;
File datroot = null;
if(opt == null) {
usage(System.err);
System.exit(1);
}
String charset = null;
File datroot = null;
+ InetAddress bindaddr;
+ try {
+ bindaddr = InetAddress.getByName(null);
+ } catch(UnknownHostException e) {
+ throw(new Error(e));
+ }
for(char c : opt.parsed()) {
switch(c) {
case 'e':
for(char c : opt.parsed()) {
switch(c) {
case 'e':
@@
-121,6
+127,14
@@
public class DirServer extends Server {
System.exit(1);
}
break;
System.exit(1);
}
break;
+ case 'B':
+ try {
+ bindaddr = InetAddress.getByName(opt.arg);
+ } catch(UnknownHostException e) {
+ System.err.println(opt.arg + ": no such host");
+ System.exit(1);
+ }
+ break;
case 'h':
usage(System.out);
return;
case 'h':
usage(System.out);
return;
@@
-134,10
+148,12
@@
public class DirServer extends Server {
env.initvm();
int port = Integer.parseInt(opt.rest[0]);
ServerSocket sk;
env.initvm();
int port = Integer.parseInt(opt.rest[0]);
ServerSocket sk;
+ SocketAddress saddr = new InetSocketAddress(bindaddr, port);
try {
try {
- sk = new ServerSocket(port);
+ sk = new ServerSocket();
+ sk.bind(saddr);
} catch(IOException e) {
} catch(IOException e) {
- System.err.println("could not bind to
port " + port
+ ": " + e.getMessage());
+ System.err.println("could not bind to
" + saddr
+ ": " + e.getMessage());
System.exit(1);
return; /* Because javac is stupid. :-/ */
}
System.exit(1);
return; /* Because javac is stupid. :-/ */
}