1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
diff -ur dhttpd-1.02a.old/debian/default dhttpd-1.02a/debian/default
--- dhttpd-1.02a.old/debian/default 2006-06-17 11:21:50.000000000 +0200
+++ dhttpd-1.02a/debian/default 2006-06-17 11:44:10.399171928 +0200
@@ -1,2 +1,2 @@
# Change this value to set options for dhttpd startup
-#OPTIONS="-p80"
+#OPTIONS="-p80 -b 0.0.0.0"
diff -ur dhttpd-1.02a.old/src/config.hh dhttpd-1.02a/src/config.hh
--- dhttpd-1.02a.old/src/config.hh 2006-06-17 11:21:50.000000000 +0200
+++ dhttpd-1.02a/src/config.hh 2006-06-17 11:35:45.791883896 +0200
@@ -11,6 +11,9 @@
* root, you must use a value >= 1024, such as 8080. */
#define DEFAULTPORT 80
+/* Set default address to listen to. (0.0.0.0 for any) */
+#define DEFAULTBINDADDR "0.0.0.0"
+
/* This is the directory where the web pages are located. */
/* Note: buffer overflow problems may exist if WEBDIRPREFIX is *
* longer than 150 characters or so. */
diff -ur dhttpd-1.02a.old/src/main.cc dhttpd-1.02a/src/main.cc
--- dhttpd-1.02a.old/src/main.cc 2006-06-17 11:21:50.000000000 +0200
+++ dhttpd-1.02a/src/main.cc 2006-06-17 11:41:51.657263904 +0200
@@ -99,11 +99,12 @@
{
int o;
int portnum = DEFAULTPORT;
+ char *bind_addr = DEFAULTBINDADDR;
bool nofork=false;
for( ;; )
{
- o = getopt( argc, argv, "p:hdr:" );
+ o = getopt( argc, argv, "p:b:hdr:" );
if( o==-1 )
{
break;
@@ -118,6 +119,7 @@
case 'h':
printf( "usage: %s [options]\n", argv[ 0 ] );
printf( " -p (port) Use a different port than the default of %i\n", DEFAULTPORT );
+ printf( " -b Bind to this address instead of ", DEFAULTBINDADDR, "\n" );
printf( " -h Help\n" );
printf( " -d Do not fork into Background on startup\n" );
return 0;
@@ -125,6 +127,9 @@
case 'p':
sscanf( optarg, "%i", &portnum );
break;
+ case 'b':
+ bind_addr = optarg;
+ break;
case 'r':
if ( strlen(optarg) > ROOT_MAX_LEN )
{
@@ -152,7 +157,7 @@
}
}
- ListenSocket listen_socket( portnum );
+ ListenSocket listen_socket( portnum, bind_addr );
pid_t pid;
int s;
diff -ur dhttpd-1.02a.old/src/socket.cc dhttpd-1.02a/src/socket.cc
--- dhttpd-1.02a.old/src/socket.cc 2006-06-17 11:21:50.000000000 +0200
+++ dhttpd-1.02a/src/socket.cc 2006-06-17 11:40:09.404808640 +0200
@@ -29,6 +29,7 @@
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/wait.h>
+#include <arpa/inet.h> /* inet_addr */
#include "socket.hh"
@@ -77,7 +78,7 @@
* ListenSocket::ListenSocket():
* Start up the socket listening routines
*/
-ListenSocket::ListenSocket( int port )
+ListenSocket::ListenSocket( int port, char *bind_addr )
{
int status;
struct sockaddr_in s_in;
@@ -87,7 +88,7 @@
one = 1;
memset( &s_in, 0, sizeof( s_in ) );
s_in.sin_family = AF_INET;
- s_in.sin_addr.s_addr = htonl( INADDR_ANY );
+ s_in.sin_addr.s_addr = inet_addr( bind_addr );
s_in.sin_port = htons( port );
sock = socket( AF_INET, SOCK_STREAM, 0 );
diff -ur dhttpd-1.02a.old/src/socket.hh dhttpd-1.02a/src/socket.hh
--- dhttpd-1.02a.old/src/socket.hh 2006-06-17 11:21:50.000000000 +0200
+++ dhttpd-1.02a/src/socket.hh 2006-06-17 11:32:55.627752776 +0200
@@ -43,6 +43,6 @@
int newsock();
int getfd() const { return sock; }
- ListenSocket( int port );
+ ListenSocket( int port, char *bind_addr );
~ListenSocket();
};
|