Question: newbie here, so thanks in advance for help! I have a Wordpress site with multiple taxonomies. I'd like to create a very simple form with two select boxes, one for each taxonomy. Then I'd like to use an HTML form with the get method to display posts matching the criteria they requested from the select boxes.

I'm able to do this easy enough if each of the two select boxes are filled out, I get a permalink something like:

```
testsite.com/?tax1=value1&tax2=value2

```

(ugly, I know, but it works).

What I can't figure out is what to do if they don't fill out both select boxes. Ideally it would only give the permalink for the one they fill in, so either:

```
testsite.com/?tax1=value1 or testsite.com/?tax2=value2

```

But instead I'm getting

```
testsite.com/?tax1=value1&tax2=Select+tax

```

here is my HTML

```
<form action="http://www.testsite.com/" method="get">
Season: <select name="season">
<option>Select season</option>
<option value="">Select season</option>
<option value="spring">Spring</option>
<option value="summer">Summer</option>
<option value="fall">Fall</option>
</select><br/>
Vacation type: <select name="vacations">
<option value="">Select vacation type</option>
<option value="beach">Beach</option>
<option value="ski">Ski</option>
</select><br/>
<input type="submit" />
</form> 

```

I realize the answer is probably simple but I'm banging my head against a wall so any help is very very much appreciated. Thank you!

Answer: 
**How to get the error EAGAIN?**  

To get the error EAGAIN, you need to be using Non-Blocking Sockets. With Non-Blocking sockets, you need to write huge amounts of data (and stop receiving data on the peer side), so that your internal TCP buffer gets filled and returns this error.

**How to get the error EPIPE?**  

To get the error EPIPE, you need to send large amount of data after closing the socket on the peer side. You can get more info about EPIPE error from this SO [Link](https://stackoverflow.com/questions/4584904/what-causes-the-broken-pipe-error). I had asked a question about Broken Pipe Error in the link provided and the accepted answer gives a detailed explanation. It is important to note that to get EPIPE error you should have set the flags parameter of send to MSG\_NOSIGNAL. Without that, an abnormal send can generate SIGPIPE signal.

**Additional Note**  

Please note that it is difficult to simulate a write failure, as TCP generally stores the data that you are trying to write into it's internal buffer. So, if the internal buffer has sufficient space, then you won't get an error immediately. The best way is to try to write huge amounts of data. You can also try setting a smaller buffer size for send by using [setsockopt](http://www.manpagez.com/man/2/setsockopt/) function with SO\_SNDBUF option
You could set the receive buffer size to be really small on one side, and send a large buffer on the other. Or on the one side set the send buffer small and try to send a large message.

Otherwise the most common test (I think) is to let the server and client talk for a while, and then remove a network cable.