undoio/l3

Enhance error handling in client-server programs to drive-off of LOC() machinery.

Opened this issue · 0 comments

The core error handling in the client-server programs inherited from Michael Kerrisk's sample client-server program site have a consistent interface for reporting errors which is quite amenable to be extended to use LOC() encoding.

In error_functions.c we have functions defined as:

 88 void
 89 errMsg(const char *format, ...)

106 void
107 errExit(const char *format, ...)

There could be multiple callers to such error functions, like in svmsg_file_client.c:

 60     if (msgctl(clientId, IPC_RMID, NULL) == -1) {
 61         errExit("msgctl clientId");

 91     if (serverId == -1) {
 92         errExit("msgget - server message queue");

 96     if (clientId == -1) {
 97         errExit("msgget - client message queue");

This is a very natural use-case where we can drop-in one of LOC() or LOC-ELF() encoding schemes behind the scenes of these function calls.

Implement this integration so it can be demo'ed as a real-life use-case for LOC techniques.