26 #include "dbus-internals.h"
27 #include "dbus-sysdeps.h"
28 #include "dbus-threads.h"
29 #include "dbus-protocol.h"
30 #include "dbus-string.h"
31 #include "dbus-list.h"
51 #elif (defined __APPLE__)
52 # include <crt_externs.h>
53 # define environ (*_NSGetEnviron())
55 extern char **environ;
122 len = strlen (varname);
128 putenv_value = malloc (len + 2);
129 if (putenv_value ==
NULL)
132 strcpy (putenv_value, varname);
133 #if defined(DBUS_WIN)
134 strcat (putenv_value,
"=");
137 return (putenv (putenv_value) == 0);
143 return (setenv (varname, value,
TRUE) == 0);
150 varname_len = strlen (varname);
151 value_len = strlen (value);
153 len = varname_len + value_len + 1 ;
159 putenv_value = malloc (len + 1);
160 if (putenv_value ==
NULL)
163 strcpy (putenv_value, varname);
164 strcpy (putenv_value + varname_len,
"=");
165 strcpy (putenv_value + varname_len + 1, value);
167 return (putenv (putenv_value) == 0);
186 return getenv (varname);
200 if (clearenv () != 0)
352 #define MAX_LONG_LEN ((sizeof (long) * 8 + 2) / 3 + 1)
364 snprintf (buf, MAX_LONG_LEN,
"%ld", value);
390 #define MAX_ULONG_LEN (MAX_LONG_LEN * 2)
402 snprintf (buf, MAX_ULONG_LEN,
"%lu", value);
443 v = strtol (p, &end, 0);
444 if (end ==
NULL || end == p || errno != 0)
450 *end_return = start + (end - p);
470 unsigned long *value_return,
482 v = strtoul (p, &end, 0);
483 if (end ==
NULL || end == p || errno != 0)
489 *end_return = start + (end - p);
509 _dbus_verbose (
"Falling back to pseudorandom for %d bytes\n",
522 b = (r / (double) RAND_MAX) * 255.0;
572 static const char letters[] =
573 "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
586 (
sizeof (letters) - 1)]);
610 switch (error_number)
615 #ifdef EPROTONOSUPPORT
616 case EPROTONOSUPPORT:
618 #elif defined(WSAEPROTONOSUPPORT)
619 case WSAEPROTONOSUPPORT:
625 #elif defined(WSAEAFNOSUPPORT)
626 case WSAEAFNOSUPPORT:
656 #elif defined(WSAECONNREFUSED)
657 case WSAECONNREFUSED:
663 #elif defined(WSAETIMEDOUT)
670 #elif defined(WSAENETUNREACH)
677 #elif defined(WSAEADDRINUSE)
735 return errno == ENOMEM;
745 return errno == EINTR;
755 return errno == EPIPE;
765 return _dbus_strerror (errno);