Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Comments

top

TechCentral Scams Call Center Scammers

lazarus Shame them (251 comments)

Me: "Does your mother know you are an Internet scam artist for a living?"

-click-

about a month ago
top

Ask Slashdot: What Recliner For a Software Developer?

lazarus The Seat Of Power (154 comments)

This is the recliner you've been looking for.

You're welcome.

about a month ago
top

How long ago did you last assemble a computer?

lazarus With Solder? (391 comments)

The last time I assembled a computer from individual electrical components was in 1982.

about 2 months ago
top

eBay Compromised

lazarus And Everything Just Get's More Inconvenient (193 comments)

So they didn't get payment information, but they got everything they needed to apply for credit in your name. Perfect. It took me an hour to buy my last laptop in a retail store with my credit card in my hand because my card company was so totally paranoid about fraud that they put me through the third degree to ensure I was who I said I was. And it's just going to get worse.

At this rate cash will be king again. Oh no, wait, that can be fraudulent too. Essentially, it is getting impossible to spend your own money.

about 4 months ago
top

Ask Slashdot: Intelligently Moving From IT Into Management?

lazarus You're Asking the Wrong Question (125 comments)

What you need are good processes and a common way of expressing how these processes are adhered to. Get yourself ITIL certified and make sure that either the person you hire is certified or that is the first thing you have them do. You don't have to be a big shop for this to be relevant.

On a day-to-day level you need to be the person who is accountable for any and all changes, which mean you must approve them. Yes, you are handing over the keys, but not permission to run roughshod over the environment.

Also, a good manager "inspects" but does not "micromanage". If you keep this principle in mind and establish some good processes, you will be golden.

about 5 months ago
top

SpaceX Files Suit Against US Air Force

lazarus Re:Elon farted (176 comments)

He designs and builds electric supercars and rockets. When you fart it just smells bad.

about 5 months ago
top

Ask Slashdot: What Tech Products Were Built To Last?

lazarus iPhone 4 Meets Washing Machine (702 comments)

My daughter forgot her iPhone 4 in a pocket while doing laundry (commercial-sized front loader in an apartment building). The door locks when you start these. She panicked when she realized (like all teenagers do when they are without their device for 10 seconds) that she didn't have it and that it was probably in the wash.

No amount of convincing could get that machine to stop or open up, so she sat their crying for the entire wash cycle (I could only imagine what the accelerometer was doing during the spin cycle). When it stopped and unlocked she retrieved the phone and it was fine. Still works today two years later. I suspect the iPhone 4 will go down in history as being a really solid device, although with 10s of millions of them I'm sure there are lots of stories to the contrary.

about 5 months ago
top

Ask Slashdot: What Tech Products Were Built To Last?

lazarus Re:HP 15C calculator (702 comments)

Thanks for posting this. I had a 15C which I gave to a friend when I got a 28S. The 28S is still on my desk and still works brilliantly. Both calculators are my favourites. The 28S takes "N" batteries which were for "cameras" when cameras still had film in them. So they are getting a little harder to find. It takes a few years for them to die, but I'm starting to stockpile them anyway.

I'm guessing the button cells for the 15C are a little easier to find.

about 5 months ago
top

Scientists Solve the Mystery of Why Zebras Have Stripes

lazarus Re:Important Quote from Article (190 comments)

I am totally trying this with body paint next time I go to the beach.

about 6 months ago
top

Your Car Will Tell You How To Hit the Next Green Light

lazarus Anger Management Classes to Follow (364 comments)

Except that the massive pickup behind me who is driving 3 inches from my bumper revving his engine and cussing has no idea why I'm driving as slow as I am. I drive a VW clean diesel and my fuel economy (on average over three years) is already over 50mpg from driving like this as often as possible. Trust me, this initiative will go absolutely nowhere until the cars are driving themselves. You can't change human behaviour like you are hoping to. Even when they can see the red light in front of them people MUST get there as quickly as possible so they can stop and wait.

about 6 months ago
top

Ohio Attempting To Stop Tesla From Selling Cars, Again

lazarus Re:Once again ... (387 comments)

"Once again, companies try to prevent competition through legislation "

Yep. Ever wonder why you don't see more good light-duty trucks in the US? It's because of the Chicken Tax, a law from 1963. I kid you not. And the American consumer is the looser.

What is new about the Tesla situation is that it is an American company getting squeezed, rather than protection from goods from foreign countries.

If I lived in Ohio I would be asking my rep how this is good for me as a consumer and whether he's heard of social media.

about 7 months ago
top

International Space Station Mission Extended To 2024

lazarus Waldo (104 comments)

Too bad, I was hoping to buy it and become Waldo.

On a more serious note, I don't see the ISS as a single "thing" that can/should be abandoned or destroyed. It is a collaborative effort of many people and many nations and is designed to be built upon and "developed". Like a new community. I'm hoping that we as a species find the right combination of profitability and marketability from it to ensure it is still in the sky long after I'm dead and buried. Perhaps we should start thinking of it as more of a "place" than a "thing".

about 8 months ago
top

Wikipedia's Lamest Edit Wars

lazarus State of the Modern Society (219 comments)

I can't decide if I should be thrilled that we have achieved some kind of intellectual enlightened society evidenced by our capacity to be pedantic in a globally connected ecosystem of information, or appalled that people don't have better things to do with their time.

Perhaps we should have a discussion about this. On-line.

about 9 months ago
top

Canada Post Announces the End of Urban Home Delivery

lazarus ePost (226 comments)

Canada Post already has something called ePost, which makes most regular postal mail obsolete now. It sounds to me like they're helping to put traditional postal mail out of business anyway.

I'd like to have no mailbox altogether. The notion that I have a "postal" address (which everybody wants for some reason) that a human being drives a car to so they can fill it with unwanted matter printed on processed dead trees is completely ridiculous. Give me ePost for bills and a local post office for packages and I'm good.

What's your address? 127.0.0.1. Same as yours.

about 9 months ago
top

Solar Pressure May Help Kepler Return To Planet-Hunting Duties

lazarus Light Sail (46 comments)

This is fascinating, but what I find even more interesting is why they couldn't use a similar technique to make the need for the attitude control wheels obsolete? It would require a spacecraft much different than Kepler, but would it not be possible to use sails to orient a similar craft no matter what area of the sky it wanted to point to?

about 10 months ago
top

With Burning Teslas In the News Ford Recalls Almost 140,000 Escapes

lazarus Re:Only Ford? (293 comments)

My personal favourite was the recall of 3.4 million airbags last year in Toyota and Nissan vehicles because the ones in the seats may catch fire in the event of an accident:

"In an accident, the airbag for the front passenger seat may not inflate correctly because of a manufacturing defect in the propellant used in the airbag inflator, the companies said. As a result, there is a risk of fires starting or of passengers being injured."

You survive the accident, but then your seat catches on fire...and your door won't open... Just imagine. Good thing the media is informing us all about how dangerous a Tesla is.

about 10 months ago
top

Female Software Engineers May Be Even Scarcer Than We Thought

lazarus Scary (445 comments)

I read this as "Female Software Engineers may be even Scarier Than we Thought" and I couldn't wait to find out how in the world that was going to be quantified and/or justified.

I love geeks, scary or not.

about 10 months ago
top

Microsoft Customers Hit With New Wave of Fake Tech Support Calls

lazarus Re:Hallo Windows man (201 comments)

My call went something like this:

Scammer: "Hi Sir. I am calling you on behalf of Microsoft. It has come to our attention that your computer has been infected with viruses and trojans."
Me: "Does your mom know that you scam people for a living?"
-click-
Me: "Hello?"

about 10 months ago
top

Can the iPhone Popularize Fingerprint Readers?

lazarus Wrong Question (356 comments)

"But the technology has thus far failed to become ubiquitous in the consumer realm, and it remains to be seen whether the new iPhone — which is all but guaranteed to sell millions of units — can popularize something that consumers don't seem to want."

This is not how Apple thinks of design. Instead of asking people "Do you want a fingerprint scanner?" the question they ask themselves is "How do we make security easier if not completely transparent to the end user?" If you asked people if they wanted to be secure without having to do anything at all, your answer would be different. The fingerprint scanner just happens to be the right solution to the problem (in Apple's opinion).

1 year,10 days

Submissions

top

Virus Killer Magnate McAfee Wanted for Murder

lazarus lazarus writes  |  about 2 years ago

lazarus (2879) writes "John McAfee, who sold his anti-virus company to Intel in 2010 is wanted for murder in Belize. Gizmodo reports that his on-going disputes with builder Gregory Faull and his alleged abuse of psychosis-inducing hallucinogens has made him the prime suspect in Faull's murder. Some high-tech entrepreneurs go on to build electric supercars and spaceships while others move to Belize and attempt to purify bath salts."
Link to Original Source
top

Duke Nukem Forever Finally Released

lazarus lazarus writes  |  more than 3 years ago

lazarus (2879) writes ""Take-Two Interactive Software Inc., which publishes the game, launched in Europe and Australia on Friday. The game debuts on Tuesday in the U.S., Canada and Mexico for the PlayStation 3, Xbox 360 and PCs.

Despite the long wait, the game launched to tepid reception from critics. The website Metacritic.com, which aggregates reviews, gave the Xbox 360 version a score of 55 out of 100. The game did better on the PC with a "metascore" of 76 out of 100. There is no score currently available for the PS3 version.""

Link to Original Source
top

lazarus lazarus writes  |  more than 7 years ago

lazarus writes "A group of editors having been fired or quit from the prestigious Canadian Medial Association Journal allegedly over questions of censorship and the influence of big drug companies on the magazine have started their own. Open magazine is a not-for-profit peer reviewed medical journal only available on-line which its founders claim is all about open access and editorial independence. CBC has the full story as well as some background on the problems at the CMAJ."

Journals

top

GDSA (Greylisting Domain Sender Analysis)

lazarus lazarus writes  |  more than 4 years ago

The following is a variant of greylisting. You can comment on it from your soapbox if you wish but I've been running it for about three years now and it works great. I put it together for my own use and I have no desire to document it, support it, or in any way promote it. I'm posting it here because I'm tiring of hearing people whine about spam. It uses Exim and mysql to get around some of the inherent limitations of greylisting as it was originally defined (specifically the mandatory "delay" in receiving e-mail from a new source and the requirement to roll-up large senders (like google) into an IP range. Everything is automatic and I don't have problems with mail delays.

Let me be clear. I don't care if you like it or not, or use it or not. It's just data if you want it or are interested.

You need Exim compiled with mysql support in it. Get an RPM or whatever your favourite package manager is. Oh, and you need a resolver. I used a local one for speed and use iptables to block any external use of it.

In /etc/exim you need three files:

exim.conf
gdsa-acl
gdsa-mysql

This is what they look like. First /etc/exim/exim.conf (some of this you don't need -- depends on what you want your mailer to do for you):

# Exim Config

# Host and SQL config
primary_hostname = host.domain.com
hide mysql_servers = localhost/gdsa/root/

# Domain and Host Lists
domainlist local_domains = mysql;SELECT DISTINCT rd_name FROM rd WHERE rd_name='$domain' AND rd_type='local'
domainlist relay_to_domains = mysql;SELECT DISTINCT rd_name FROM rd WHERE rd_name='$domain' AND rd_type='relay'
hostlist relay_from_hosts = mysql;SELECT DISTINCT rh_name from rh WHERE rh_name='$sender_host_address' AND rh_type='relay'

# Misc MX Configs
acl_smtp_rcpt = acl_check_rcpt
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 30s
smtp_enforce_sync = false
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
#auth_advertise_hosts =
qualify_domain = domain.com
smtp_accept_max = 75
helo_allow_chars = _

# GDSA Config .include /etc/exim/gdsa-mysql

# ACL Config
begin acl .include /etc/exim/gdsa-acl

        acl_check_rcpt:
                deny message = Restricted characters in address
                                domains = +local_domains
                                local_parts = ^[.] : ^.*[@%!/|]
                deny message = Restricted characters in address
                                domains = !+local_domains
                                local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
                deny message = No sender information
                                senders = :
                accept authenticated = *
                                control = submission
                deny message = Rejected because $sender_host_address is in zen.spamhaus.org blacklist
                                dnslists = zen.spamhaus.org
                accept hosts = +relay_from_hosts
                                control = submission
                defer acl = gdsa_acl
                                message = GDSA Deferred.
                accept domains = +local_domains
                                endpass
                                message = Unknown user
                                verify = recipient
                accept domains = +relay_to_domains
                                endpass
                deny message = Relay not permitted.

# Routers
begin routers

# MySQL loading of all routers
route_gdsa:
        driver = manualroute
        domains = +relay_to_domains
        route_data = ${lookup mysql{SELECT rd_ip FROM rd WHERE rd_name='$domain' AND rd_type='relay'}{$value}}
        transport = remote_smtp
        no_more

dnslookup:
    driver = dnslookup
    domains = !+local_domains
    transport = remote_smtp
    ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
    no_more

userforward:
    driver = redirect
    check_local_user
    file = $home/.forward
    no_verify
    no_expn
    check_ancestor
    allow_filter
    directory_transport = address_directory
    file_transport = address_file
    pipe_transport = address_pipe
    reply_transport = address_reply

localuser:
    driver = accept
    check_local_user
    transport = local_delivery
    cannot_route_message = Unknown user

# Transports
begin transports

remote_smtp:
        driver = smtp

local_delivery:
    driver = appendfile
    group = mail
    mode = 0660
    directory = /home/${local_part}/mail/
    maildir_format

# Retry Config
begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h

# Authentication
begin authenticators

plain:
      driver = plaintext
      public_name = PLAIN
      server_prompts = :
      server_condition = "${if saslauthd{{$2}{$3}{smtp}} {1}}"
      server_set_id = $2

login:
      driver = plaintext
      public_name = LOGIN
      server_prompts = "Username:: : Password::"
      server_condition = "${if saslauthd{{$1}{$2}{smtp}} {1}}"
      server_set_id = $1

Next is the /etc/exim/gdsa-acl where most of the magic happens. You'll see what I am doing from the comments (in theory):

# GDSA ACL

gdsa_acl:

        # Our process goes as follows:
        # We attempt to get the full host name of the sending host
        # If we fail to get it, we apply a penalty
        # Then we break down the sending host into either a TLD or an IP address
        # We check to see if the sender is existent
        # If there is no sender we add a penalty
        # We do the DSA test
        # If it fails, we add a penalty
        # Then we check to see if a record for this host/sender/receiver exists
        # If it does not, then we add it with the appropriate penalties
        # We then do a GDSA check as always
        # If the delay requirement passes and the hit requirement passes, then the e-mail gets through
        # Otherwise it is deferred

        # Our variables look like the following:
        # Note: Are these persistent? Documentation says acl_m0..acl_m19 are thrown out after connection. May be good idea to use them.
        # acl_m0 = the full DNS-resolved name of the host, or null if lookup failed
        # acl_m1 = the TLD of the host or it's IP address if a DNS lookup failed
        # acl_m2 = the result of the GDSA test on the record
        # acl_m3 = the id of the record that matched (if any)
        # acl_m4 = the record exists in the database already (true, false)
        # acl_m5 = placeholder for the resut of adding a new record
        # acl_m6 = penalty count
        # acl_m7 = sender address domain for testing
        # acl_m8 = sender ip

        # Clear penalty count
        warn set acl_m6 = 0

        # Get the sener ip address (this is for tracking botnets)
        warn set acl_m8 = $sender_host_address

        # Try to get host name
        warn set acl_m0 = $sender_host_name

        # Get the sender address domain
        warn set acl_m7 = ${if def:sender_address_domain {$sender_address_domain}{$sender_helo_name}}

        # If we could not, then we apply a penalty
        warn set acl_m6 = ${eval:$acl_m6 + ${if def:acl_m0 {0}{1}}}

        # Now extract the TLD from the host name (by stripping off the host part) or set it to an IP address if we didn't get one
        # How do we get the domain? The domain we want is the domain part of the sender address if it exists in the host address.
        # So we check to see if the domain portion of the sender address is in the host.
        # If it is, then we set the TLD to the domain part of the sender address
        # If it is not, then we create the domain part by stripping off the host part of the sending host
        # If domain is NOT in host name then return stripped off host, otherwise return the sending address domain portion
        warn set acl_m1 = ${if def:acl_m0 {${if eq{${lookup mysql{SELECT LOCATE('$acl_m7','$acl_m0')}}}{0}{${lookup mysql{SELECT IF((LENGTH('$ac
l_m0')-LENGTH(REPLACE('$acl_m0','.','')))/LENGTH('.')=1,SUBSTRING_INDEX('$acl_m0','.',-2),SUBSTRING_INDEX('$acl_m0','.',-(LENGTH('$acl_m0')-LENG
TH(REPLACE('$acl_m0','.','')))/LENGTH('.')))}}}{$acl_m7}}}{$sender_host_address}}

        # Check to see if we got a sender address and apply a penalty if we didn't
        warn set acl_m6 = ${eval:$acl_m6 + ${if def:sender_address {0}{1}}}

        # Do the DSA (TLD, sender domain match) test
        warn set acl_m6 = ${eval:$acl_m6 + ${if eq{$acl_m1}{$acl_m7}{0}{1}}}

        # Check if the record exists
        warn set acl_m4 = ${lookup mysql{RECORD_EXISTS}{$value}{-1}}

        # If the record does not exist the we add it with the appropriate penalties
        warn set acl_m5 = ${if eq{$acl_m4}{false}{${lookup mysql{RECORD_ADD}}}}

        # At this point either a record exists or we have added it, so we always do a GDSA test.
        # Note that we should NEVER get an 'unknown' here...
        warn set acl_m2 = ${lookup mysql{GDSA_TEST}{$value}{result=unknown}}

        # now extract the record id (or -1)
        set acl_m3 = ${extract{gl_id}{$acl_m2}{$value}{-1}}

        # now set acl_m2 to contain unknown/deferred/accepted
        set acl_m2 = ${extract{result}{$acl_m2}{$value}{unknown}}

        # check if the record is still blocked
        accept
                # if above check returned deferred then defer
                condition = ${if eq{$acl_m2}{deferred}{1}}
                # and note it down
                condition = ${lookup mysql{GDSA_DEFER_HIT}{yes}{yes}}

        # use a warn verb to count records that were hit
        warn condition = ${lookup mysql{GDSA_OK_COUNT}}

        # use a warn verb to set a new expire time on automatic records,
        # but only if the mail was not a bounce, otherwise set to now().
        warn !senders = :
                condition = ${lookup mysql{GDSA_OK_NEWTIME}}
        warn senders = :
                condition = ${lookup mysql{GDSA_OK_BOUNCE}}

        deny

Elegant? Okay maybe not, but hey, I was scripting in an ACL definition language... Here, finally is the /etc/exim/gdsa-mysql:

# GDSA SQL Definitions

# Greylisting Options
GDSA_DELAY = 15
GDSA_RETRIES = 4
GDSA_INITIAL_LIFETIME = 12 HOUR
GDSA_WHITE_LIFETIME = 90 DAY
GDSA_BOUNCE_LIFETIME = 0 HOUR
GDSA_TABLE = gl

# GDSA SQL Macros

RECORD_EXISTS = SELECT IF (COUNT(*) > 0, 'true', 'false') \
        AS result \
        FROM GDSA_TABLE \
        WHERE gl_host='${quote_mysql:$acl_m1}' AND \
                        gl_sender='${quote_mysql:$sender_address}' AND \
                        gl_recipient='${quote_mysql:$local_part@$domain}'

GDSA_TEST = SELECT CASE \
        WHEN now() >= gl_blocked AND gl_retries = gl_blockcount THEN "accepted" ELSE "deferred" END \
        AS result, gl_id \
        FROM GDSA_TABLE \
        WHERE now() gl_expires AND \
                gl_host = '${quote_mysql:$acl_m1}' AND \
                gl_sender = '${quote_mysql:$sender_address}' AND \
                gl_recipient = '${quote_mysql:$local_part@$domain}' \
        ORDER BY result DESC LIMIT 1

RECORD_ADD = INSERT INTO GDSA_TABLE \
        (gl_ip, gl_host, gl_sender, gl_recipient, gl_created, gl_blocked, gl_expires, gl_retries) \
        VALUES ('${quote_mysql:$acl_m8}', \
                '${quote_mysql:$acl_m1}', \
                '${quote_mysql:$sender_address}', \
                '${quote_mysql:$local_part@$domain}', \
                now(), \
                DATE_ADD(now(), INTERVAL ($acl_m6 * GDSA_DELAY) MINUTE), \
                DATE_ADD(now(), INTERVAL GDSA_INITIAL_LIFETIME), \
                $acl_m6 * GDSA_RETRIES )

GDSA_DEFER_HIT = UPDATE GDSA_TABLE \
                                          SET gl_blockcount=gl_blockcount+1 \
                                          WHERE gl_id = $acl_m3

GDSA_OK_COUNT = UPDATE GDSA_TABLE \
                                        SET gl_passcount=gl_passcount+1 \
                                        WHERE gl_id = $acl_m3

GDSA_OK_NEWTIME = UPDATE GDSA_TABLE \
                                            SET gl_expires = DATE_ADD(now(), INTERVAL GDSA_WHITE_LIFETIME) \
                                            WHERE gl_id = $acl_m3

GDSA_OK_BOUNCE = UPDATE GDSA_TABLE \
                                          SET gl_expires = DATE_ADD(now(), INTERVAL GDSA_BOUNCE_LIFETIME) \
                                          WHERE gl_id = $acl_m3

Of course you're going to need the table definitions:

-- MySQL dump 10.11
--
-- Host: localhost Database: gdsa
-- ------------------------------------------------------
-- Server version 5.0.77 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `bl`
--

DROP TABLE IF EXISTS `bl`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `bl` (
    `bl_sender` varchar(128) NOT NULL default '',
    `bl_recipient` varchar(128) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `gl`
--

DROP TABLE IF EXISTS `gl`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `gl` (
    `gl_id` bigint(20) NOT NULL auto_increment,
    `gl_ip` varchar(128) default NULL,
    `gl_host` varchar(128) default NULL,
    `gl_sender` varchar(128) default NULL,
    `gl_recipient` varchar(128) default NULL,
    `gl_created` datetime NOT NULL default '0000-00-00 00:00:00',
    `gl_blocked` datetime NOT NULL default '0000-00-00 00:00:00',
    `gl_expires` datetime NOT NULL default '9999-12-31 00:00:00',
    `gl_retries` bigint(20) NOT NULL default '0',
    `gl_passcount` bigint(20) NOT NULL default '0',
    `gl_blockcount` bigint(20) NOT NULL default '0',
    PRIMARY KEY (`gl_id`)
) ENGINE=MyISAM AUTO_INCREMENT=4897 DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `rd`
--

DROP TABLE IF EXISTS `rd`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `rd` (
    `rd_name` varchar(128) NOT NULL default '',
    `rd_ip` varchar(128) default NULL,
    `rd_type` enum('local','relay') NOT NULL default 'local'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Relay Domains';
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `rh`
--

DROP TABLE IF EXISTS `rh`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `rh` (
    `rh_name` varchar(128) NOT NULL default '',
    `rh_type` enum('relay') NOT NULL default 'relay'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Relay Hosts';
SET character_set_client = @saved_cs_client;

--
-- Table structure for table `wl`
--

DROP TABLE IF EXISTS `wl`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `wl` (
    `wl_sender` varchar(128) NOT NULL default '',
    `wl_recipient` varchar(128) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

That's it (I think). I can't remember if I ever implemented black or white lists in this. There is probably a good way to do that in the context of everything else. I don't seem to need it. If you do make changes or find something that you think could be done better, I'd be happy to hear about it. Large parts of this were probably stolen from other SQL-based Greylisting solutions. It's been so long I can't remember where I got everything.

Enjoy.

Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>