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"
55 #elif (defined __APPLE__)
56 # include <crt_externs.h>
57 # define environ (*_NSGetEnviron())
59 extern char **environ;
126 len = strlen (varname);
132 putenv_value = malloc (len + 2);
133 if (putenv_value ==
NULL)
136 strcpy (putenv_value, varname);
137 #if defined(DBUS_WIN)
138 strcat (putenv_value,
"=");
141 return (putenv (putenv_value) == 0);
147 return (setenv (varname, value,
TRUE) == 0);
154 varname_len = strlen (varname);
155 value_len = strlen (value);
157 len = varname_len + value_len + 1 ;
163 putenv_value = malloc (len + 1);
164 if (putenv_value ==
NULL)
167 strcpy (putenv_value, varname);
168 strcpy (putenv_value + varname_len,
"=");
169 strcpy (putenv_value + varname_len + 1, value);
171 return (putenv (putenv_value) == 0);
185 return getenv (varname);
199 if (clearenv () != 0)
234 len = _dbus_string_get_length (dirs);
256 if (_dbus_string_get_length (&path) == 0)
351 #define MAX_LONG_LEN ((sizeof (long) * 8 + 2) / 3 + 1)
356 orig_len = _dbus_string_get_length (str);
363 snprintf (buf, MAX_LONG_LEN,
"%ld", value);
389 #define MAX_ULONG_LEN (MAX_LONG_LEN * 2)
394 orig_len = _dbus_string_get_length (str);
401 snprintf (buf, MAX_ULONG_LEN,
"%lu", value);
437 p = _dbus_string_get_const_data_len (str, start,
438 _dbus_string_get_length (str) - start);
442 v = strtol (p, &end, 0);
443 if (end ==
NULL || end == p || errno != 0)
449 *end_return = start + (end - p);
469 unsigned long *value_return,
476 p = _dbus_string_get_const_data_len (str, start,
477 _dbus_string_get_length (str) - start);
481 v = strtoul (p, &end, 0);
482 if (end ==
NULL || end == p || errno != 0)
488 *end_return = start + (end - p);
508 _dbus_verbose (
"Falling back to pseudorandom for %d bytes\n",
521 b = (r / (double) RAND_MAX) * 255.0;
571 static const char letters[] =
572 "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
579 len = _dbus_string_get_length (str);
583 _dbus_string_set_byte (str, i,
584 letters[_dbus_string_get_byte (str, i) %
585 (
sizeof (letters) - 1)]);
609 switch (error_number)
614 #ifdef EPROTONOSUPPORT
615 case EPROTONOSUPPORT:
617 #elif defined(WSAEPROTONOSUPPORT)
618 case WSAEPROTONOSUPPORT:
624 #elif defined(WSAEAFNOSUPPORT)
625 case WSAEAFNOSUPPORT:
655 #elif defined(WSAECONNREFUSED)
656 case WSAECONNREFUSED:
662 #elif defined(WSAETIMEDOUT)
669 #elif defined(WSAENETUNREACH)
676 #elif defined(WSAEADDRINUSE)
734 return errno == ENOMEM;
744 return errno == EINTR;
754 return errno == EPIPE;
764 return _dbus_strerror (errno);