error handling roughly represents half of the code, and that's about 3/4 of
the configuration parser. Take the time to do something you're proud of. A
good rule of thumb is to keep in mind that your code talks to a human and
- tries to teach him/her how to proceed. It must then speak like a human.
+ tries to teach them how to proceed. It must then speak like a human.
- The third most important level is the code and its accompanying comments,
including the commit message which is a complement to your code and
and removed in a future version.
- send a new patch iteration without taking *all* comments from previous
- review into consideration, so that the reviewer discovers he/she has to do
+ review into consideration, so that the reviewer discovers they have to do
the exact same work again.
- "hijack" an existing thread to discuss something different or promote your
- if a request does not contain a cookie, it will be forwarded to a valid
server
- if a request contains a cookie for a failed server, haproxy will insist
- on trying to reach the server anyway, to let the user finish what he was
+ on trying to reach the server anyway, to let the user finish what they were
doing. ("persist" option)
- if the server is totally stopped, the connection will fail and the proxy
will rebalance the client to another server ("redispatch")
# /etc/init.d/httpd stop
The associated backup server will in turn fail, and if any client still tries
-to access this particular server, he will be redispatched to any other valid
+to access this particular server, they will be redispatched to any other valid
server because of the "redispatch" option.
This method has an advantage : you never touch the proxy when doing server
It is very common for macros to do the wrong thing when used in a way their
author did not have in mind. For this reason, macros must always be named with
uppercase letters only. This is the only way to catch the developer's eye when
-using them, so that he double-checks whether he's taking risks or not. First,
+using them, so that they double-check whether they are taking a risk or not. First,
macros must never ever be terminated by a semi-colon, or they will close the
wrong block once in a while. For instance, the following will cause a build
error before the "else" due to the double semi-colon :
This statement is useful on monitoring displays with a permanent page
reporting the load balancer's activity. When set, the HTML report page will
include a link "refresh"/"stop refresh" so that the user can select whether
- he wants automatic refresh of the page or not.
+ they want automatic refresh of the page or not.
Though this statement alone is enough to enable statistics reporting, it is
recommended to set all other settings in order to avoid relying on default
set in the index [0] of the array. The metatable entry "__tostring" returns the
object name.
-The Lua developer can add entries to the HAProxy object. He just works carefully
+The Lua developer can add entries to the HAProxy object. They just work carefully
and prevent to modify the index [0].
Common HAproxy objects are:
the whole restart mechanism.
First, an existing haproxy process is running. The administrator uses a system
-specific command such as "/etc/init.d/haproxy reload" to indicate he wants to
+specific command such as "/etc/init.d/haproxy reload" to indicate they want to
take the new configuration file into effect. What happens then is the following.
First, the service script (/etc/init.d/haproxy or equivalent) will verify that
the configuration file parses correctly using "haproxy -c". After that it will
Remote Table Id is the numeric identifier of the table on the remote side.
Update Id is the id of the last update locally committed.
-If a re-connection occurred, the sender should know he will have to restart the push of updates from this point.
+If a re-connection occurred, the sender should know they will have to restart the push of updates from this point.
III) Initial full resync process.
local process to push all known ending with a Resync Finished Message or a Resync Partial Message (if it it does not consider itself as full updated).
A new process will wait for a an incoming connection from a local process during 5 seconds. It will learn the updates from this
-process until he will receive a Resync Finished Message or a Resync Partial Message. If it receive a Resync Finished Message it will consider itself
+process until it receives a Resync Finished Message or a Resync Partial Message. If it receive a Resync Finished Message it will consider itself
as fully updated and stops to ask for resync. If it receive a Resync Partial Message it will wait once again for 5 seconds for an other incoming connection from a local process.
Same thing if the session was broken before receiving any "Resync Partial Message" or "Resync Finished Message".
uint8_t value[0];
};
-A receiver may choose to skip over and ignore the TLVs he is not interested in
-or he does not understand. Senders can generate the TLVs only for
+A receiver may choose to skip over and ignore the TLVs it is not interested in
+or it does not understand. Senders can generate the TLVs only for
the information they choose to publish.
The following types have already been registered for the <type> field :
Implementers should be very careful about not trying to automatically detect
whether they have to decode the header or not, but rather they must only rely
on a configuration parameter. Indeed, if the opportunity is left to a normal
-client to use the protocol, he will be able to hide his activities or make them
-appear as coming from someone else. However, accepting the header only from a
+client to use the protocol, it will be able to hide its activities or make them
+appear as coming from somewhere else. However, accepting the header only from a
number of known sources should be safe.
memset(&msghdr, 0, sizeof(msghdr));
/*
* First, calculates the total number of FD, so that we can let
- * the caller know how much he should expects.
+ * the caller know how much it should expect.
*/
px = proxies_list;
while (px) {
exit(1);
}
- /* If the user is not root, we'll still let him try the configuration
- * but we inform him that unexpected behaviour may occur.
+ /* If the user is not root, we'll still let them try the configuration
+ * but we inform them that unexpected behaviour may occur.
*/
if ((global.last_checks & LSTCHK_NETADM) && getuid())
ha_warning("[%s.main()] Some options which require full privileges"