The Online Otto Dix Project

A German Artist and Print Maker

esc-esc completion

Your JoeDog loves himself some esc-completion. For years he carried around his own personal copy of pdksh because it supported that feature. Unfortunately, pdksh hasn’t been updated in years. That’s an exploit waiting to happen. By happy chance, most Linux distributions provide mksh now. That supports esc completion. To enable it, set this directive in $HOME/.profile

set -o vi-esccomplete

With that feature enabled, life is grand and you’re esc-completing all over the place … until you reboot your laptop. The gnome login doesn’t care for vi-esccomplete one bit. No, sir.

set: vi-esccomplete: invalid option name

To get around this problem, you can check to see if $HOME/.profile is invoked with a tty. It will then be read when you open a terminal but ignored when you log in to your laptop:

if [ -t 1 ]; then # only run this if you have a tty
set -o vi-esccomplete

Happy esc-completing.


We discovered a bug. I know! It’s unimaginable that we could have such things, right?

In print mode (siege -p) which is great for debugging web applications, siege wouldn’t return persisted cookies. This release fixes that problem. We also added more detail to socket errors. If a requested hostname can’t be resolved, siege will print the hostname so you know exactly what to fix. This recommendation was provided to us by a helpful sieger and, honestly, we can’t believe nobody suggested it sooner.

All users should update to siege-4.1.6

We’ve also added RedHat 6,7,8 binaries to the repository.


Your JoeDog has fixed a problem in which the application hung when running in timed mode (-t N / –time=N) on some platforms. No, really this time! Although we’ve not been able to reproduce the problem, enough siegers had seen it plodding in the wild to convince us that this Big Foot existed. Siege-4.1.5 also fixes an FTP problem. If the target server had a functioning listener but its handlers were hosed, siege would continue reading zero bytes on an endless loop. Now it’s able to say, “Hey, man. You’re listening but you’re not doing a damn thing for me.” The result is FTP/421.

We recommend all users upgrade to siege-4.1.5


UPDATE: A sieger found an error in this release. DO NOT USE siege-4.1.4. We will have an new update soon.

Your JoeDog has been fighting a problem on a spattering of Linux platforms. Some of your fellow siegers reported application hangs when running in timed mode (-t N / –time=N). Unfortunately, Your JoeDog was not able to replicate the problem. Thanks to the persistence of people reporting this problem, we were finally able to troubleshoot it. It seems we incorrectly identified those platforms as asynchronous cancel safe. Spoiler alert: They weren’t.

This release should stop siege from hanging at the end of a timed run.

Siege-4.1.4 also fixes a problem an FTP problem. If the server had a functioning listener but its handlers were hosed, siege would continue reading zero bytes on an endless loop. Now it’s able to say, “Hey, man. You’re listening but you’re not doing a damn thing for me.” The result is FTP/421.

We recommend all users update to 4.1.4.


Your JoeDog has been doing some unexciting things but they’re necessary all the same. We’re silencing compiler warnings and fixing typos! Siege-4.1.3 is a maintenance release. If you’re a siege distributor, then you should probably update to this version. If you’re a sieger who hasn’t brought these typos or the warnings to our attention, then you can probably continue using version 4.1.2. Although it is best practice to stay current.

[SIEGE-4.1.3] ChangeLog


Your JoeDog has fixed a glaring bug! Cookie persistence was failing from one run to the next when siege was invoked with -g/–get. We often use this feature for debugging web programs and we’re surprised this failure remained hidden for so long. Cookies are persistent at the user level in $HOME/.siege/cookies.txt When siege was run as ‘siege -g <URL>’ it stored persistent cookies in that file. But when it was invoked a second time, it didn’t return it.

Huh? That’s what we said! Here’s the thing: In its primary role as a load tester, siege runs on a thread pool. It matched cookies with individual threads (or users, as we like to call them). In -g/–get mode the IDs didn’t recognize the main thread so the cookie was never returned. Version 4.1.2 fixes that.

This version also removes the stat summary when it’s run with -g/–get The purpose of that mode is for debugging headers for HTTP configurations and debugging code for web development. The stats are important in that mode and they remove valuable console real estate. If you need one-user stats, run it with one user like this: ‘siege -c1 –reps=once <URL>’

This version also fixes several typos. Thanks, Cui Fliter.


Siege 4.1.1

Your JoeDog has been busy! We’ve fixed more bugs and added more features. Whoo hoo!

This release improves –reps=once. Prior to this release, each user would complete the urls.txt files. So if you had 5 users, each URL in the file was requested five times. That’s the way it was intended, you guys! Unfortunately, that matched the expectations of exactly no siege users on Earth. Now each siege user takes an unused URL and makes a request for it. If the urls.txt file contains 100 URLs, siege will make 100 requests no matter how many users are running. NOTE: If you have the parser enabled, it will still make all those requests so the total can still be a lot higher than 100 requests.

With release 4.1.1, siege now handles HTTP 201 responses and follows its Content-Location. This works with both POST and PUT requests.

This release fixes an issue with FTP requests. You’ll have less trouble locating files. It contains other minor bug fixes as well.

You can find the latest siege release here: SIEGE-4.1.1

Siege 4.1.0

Your JoeDog fixed a bug! A password that contained a ‘#’ was chomped at the ‘#’ because siege treated it like a comment. So if you set this: login = jeff:haha#papa:Basic Realm in your siege.conf, siege would send the password ‘haha’ to the server. D’oh! This release fixes that bug.

Siege 4.1.0 also includes prettified output for credentials in ‘siege -C’ And who doesn’t like prettified output?

All siege users should probably update to version 4.1.0


Your JoeDog is happy to release fido-1.1.7. Exciting! This release contains several bug fixes that you don’t want to miss. For example, if you forgot to put “interval” inside a file block, fido checked once then never checked again. Who needs that? We added a default interval of five seconds. You can override that inside a file block:

/home/jeff/var {
rules = modified
action = /home/jeff/bin/
interval = 2s # modifiers include s=seconds, m=minutes, h=hours.
# Default is seconds if no modifier is specified

All users and packagers should update to this release.

Siege 4.0.9

Your JoeDog is proud to release siege-4.0.9. This release is filled with boring ol’ bug fixes but you need them! In the cookies module, we perform additional integrity checks to make sure you don’t experience any nasty segmentation faults. Who needs that?

This release also prettifies JSON output and corrects the default setting. The default JSON output is now FALSE – as it should be. You can set it to true in $HOME/.siege/siege.conf or by adding -j/–json at the command line.

All package managers should update to siege-4.0.9