The Linux Page

OpenSSL and PostgreSQL conflict in PHP

All of last week I've been looking for the solution to a bug in one of my numerous websites.

The problem was that after registering, a user would get an error saying that the PostgreSQL connection was lost. I had never had that with Drupal and yet, it would be 100% consistent.

I tested the new code several times and had no problems with it, so I was really dismayed that all of a sudden it stopped working.

After quite some time, I finally decided that my new code was the culprit. Weird. It was. It does the same thing as one of the Core modules and yet it breaks the PostgreSQL ...

3rd button of one of my SGI gray mouse dies...

I've got those 3 button mice from SGI as I was working with Indy's and O2's. I also have keyboards. Those are real good quality!

Yesterday, I tried to right click and somehow, nothing happened. At first I thought maybe it was X going banana, but trying again and restarting did not change anything. I reset my KVM too, just in case. Still nothing.

Using your firewall with Postfix

After a little while (very little) our mail server gets quite clogged. It does not cause much problem to our server, however, legal mail server will have a hard time to connect because all of those illegal mail server connect thousands of times to try sending us spam.

To give you an example, I blocked less than 10 IPs today and I got over 5,000 hits blocked within about 12 hours. That's to give you a picture of the badness of those scam robots.

I thus looked for a solution to automatically block those IPs. I found two things, one is a shell script. I do not recommend it since it is ...

wsprintf() limit under MS-Windows

Today I wanted to check out a set of floating value in my Visual C++ development environment.

You can use the OutputDebugString() to print a debug string in the VC++ output window when running a software. This is quite handy, but when working in C++, string handling can be tedious. I need to create a message and wrote something similar to this:

wchar_t msg[128];
swprintf(msg, "Float: %f\n", my_float);
...

[toc hidden:1]

AddThis weird behaviors

I just switched my websites from one server to another and noticed that on my main company site (http://www.m2osw.com) I would get a # at the end of the URL. Automatically added somehow. Thinking that could be a bad guy I checked the code and could not really see anything.

Hitting "Back" once, I noticed that the # would be transformed to #atssh-digg. I don't have anything specific about digg on that page except the AddThis button. That adds Digg among some 150 different systems where you can share my pages.

I tried to turn AddThis off, and sure enough, without AddThis in there, ...

Moving a website from one server to another

Moving a website to a new server

Now and again, you have to move a website from one server to another.

There are good and bad things about that, the main problem is with dynamic websites. Why is that? Simple: a dynamic website expects to access a database and if you hit the wrong server, that will go bad.

What's the best solution?

1. Install your website on the new server, make sure it loads okay (you may want to use a test sub-domain name to make sure, although that's not a rock solid proof since some things may use a fully qualified URL)

2. Change the IP address in your ...

Name server IP address

Why is my nameserver IP address not changing?

If you have a domain that you use as a nameserver (instead of using your domain name provider name servers), then you will need to maintain the IP address of that nameserver.

You can (and should) define your nameserver IP address in your zone. This is fairly straight forward. Simply define the ns1, ns2, ns3, etc. as a regular address and also mark them as NS entries:

[toc hidden:1]

warning: connect to 127.0.0.1:60000: Connection refused

Today, I noticed many entries in the log of my mail server with this error:

   warning: connect to 127.0.0.1:60000: Connection refused

   or

   warning: connect to 127.0.0.1:10023: Connection refused

The fact is that this does not tell you anything (duh!)

We use postfix which runs many servers and each server talks to the other via network messages. Up to here, nothing special. The problem is whenever a server cannot connect to another, instead of telling us who, what, when, it just tells us that the connection did not happen (although there is the date, but it does not tell you when in the chain of events.)

[toc hidden:1]

Extremely slow pg_connect() call

Got to setup a new server and first got the firewall to where I wanted it to be:

  • Block everything except ssh, Apache, SMTP, a few other things, but really not much more than that.
  • Block everything with IPv6 since we don't use it.

Then I installed Apache and a couple of websites.

The first one finally started to work, but it was so very slow to show up. I checked the code, the database, nothing wrong... And the database is lightning fast! ( in comparison to our previous server that is.)

So I wondered and thought maybe that my Apache firewall is in the way. I turned it ...

A firewall inside Apache

If you are running a webserver, you should use a webserver firewall. This prevents many attacks from being perpetrated on to your servers without the need to make your own applications more complex than necessary.

The idea is very simple, if you have a few people who can edit your data from the Internet and those have a static IP address, you can check that the editor pages are only accessible to those IP addresses. Any other access can simply be blocked.

[toc hidden:1]