Gisle Vanem wrote:
... But if
you want a full list of 'CURLE_x' and 'CURLOPT_x' values
a priori or within your program, I've cooked up this
GNU-makefile that generates such a list:
   https://gist.github.com/gvanem/4290a4c74ac75983928502303cb4c0c2

Tested on Windows using MinGW and MSVC only. I'd
be interested to hear if this mk-opt-err-list.mak
works on non-Windows too.

Frustrated with log/debug output which showed "... errno = 123", I wrote a script that can scan the operating system include file(s) that contain errno defines on our various *ix platforms and produce a list of available errno values in various formats:

- bare list of errno symbols

- c errno table with number & symbol (below)

- c errno table with lookup functions

     const char *errno_sym(int num, const char *unk_rtn)

     int errno_num(const char *sym)

- c errno table with lookup functions and test main().


/* System specific code for hp-ux generated by errnosym.sh */

#include <errno.h>

#define STRINGIFY(s) #s
const struct errno_table_struct
   { int errno_num;  char *errno_sym; }
   errno_table[] = {
      { EDOM, STRINGIFY(EDOM) },
      { ERANGE, STRINGIFY(ERANGE) },
      { EPERM, STRINGIFY(EPERM) },
      { ENOENT, STRINGIFY(ENOENT) },
      { ESRCH, STRINGIFY(ESRCH) },
      { EINTR, STRINGIFY(EINTR) },
      { EIO, STRINGIFY(EIO) },
 ...
      { ECONFIG, STRINGIFY(ECONFIG) },
      { ENOREG, STRINGIFY(ENOREG) },
      { ENOUNREG, STRINGIFY(ENOUNREG) },
      { -1, NULL } };

So instead of a log message like

  XYZ037 Frambastat could not be initialized, errno = 226

we can add the symbol

  XYZ037 Frambastat could not be initialized, errno = 226 (EADDRINUSE)

which is more meaningful, particularly given that the higher errno values are different on different platforms. We could use strerror(), but it's messages are much longer and sometimes not quite right in the context of an error we get.


Perhaps libcurl could do something like this to support error number to symbol functions like:

 const char *curl_easy_strerror_sym(CURLcode e)   and

 const char *curl_multi_strerror_sym(CURLMcode e)


Rich
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to