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"
32 #include "dbus-misc.h"
52 #elif (defined __APPLE__)
53 # include <crt_externs.h>
54 # define environ (*_NSGetEnviron())
56 extern char **environ;
128 len = strlen (varname);
134 putenv_value = malloc (len + 2);
135 if (putenv_value ==
NULL)
138 strcpy (putenv_value, varname);
139 #if defined(DBUS_WIN)
140 strcat (putenv_value,
"=");
143 return (putenv (putenv_value) == 0);
149 return (setenv (varname, value,
TRUE) == 0);
156 varname_len = strlen (varname);
157 value_len = strlen (value);
159 len = varname_len + value_len + 1 ;
165 putenv_value = malloc (len + 1);
166 if (putenv_value ==
NULL)
169 strcpy (putenv_value, varname);
170 strcpy (putenv_value + varname_len,
"=");
171 strcpy (putenv_value + varname_len + 1, value);
173 return (putenv (putenv_value) == 0);
192 return getenv (varname);
206 if (clearenv () != 0)
241 len = _dbus_string_get_length (dirs);
263 if (_dbus_string_get_length (&path) == 0)
358 #define MAX_LONG_LEN ((sizeof (long) * 8 + 2) / 3 + 1)
363 orig_len = _dbus_string_get_length (str);
370 snprintf (buf, MAX_LONG_LEN,
"%ld", value);
396 #define MAX_ULONG_LEN (MAX_LONG_LEN * 2)
401 orig_len = _dbus_string_get_length (str);
408 snprintf (buf, MAX_ULONG_LEN,
"%lu", value);
444 p = _dbus_string_get_const_data_len (str, start,
445 _dbus_string_get_length (str) - start);
449 v = strtol (p, &end, 0);
450 if (end ==
NULL || end == p || errno != 0)
456 *end_return = start + (end - p);
476 unsigned long *value_return,
483 p = _dbus_string_get_const_data_len (str, start,
484 _dbus_string_get_length (str) - start);
488 v = strtoul (p, &end, 0);
489 if (end ==
NULL || end == p || errno != 0)
495 *end_return = start + (end - p);
515 _dbus_verbose (
"Falling back to pseudorandom for %d bytes\n",
528 b = (r / (double) RAND_MAX) * 255.0;
578 static const char letters[] =
579 "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
586 len = _dbus_string_get_length (str);
590 _dbus_string_set_byte (str, i,
591 letters[_dbus_string_get_byte (str, i) %
592 (
sizeof (letters) - 1)]);
616 switch (error_number)
621 #ifdef EPROTONOSUPPORT
622 case EPROTONOSUPPORT:
624 #elif defined(WSAEPROTONOSUPPORT)
625 case WSAEPROTONOSUPPORT:
631 #elif defined(WSAEAFNOSUPPORT)
632 case WSAEAFNOSUPPORT:
662 #elif defined(WSAECONNREFUSED)
663 case WSAECONNREFUSED:
669 #elif defined(WSAETIMEDOUT)
676 #elif defined(WSAENETUNREACH)
683 #elif defined(WSAEADDRINUSE)
741 return errno == ENOMEM;
751 return errno == EINTR;
761 return errno == EPIPE;
771 return _dbus_strerror (errno);