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);
190 return getenv (varname);
204 if (clearenv () != 0)
239 len = _dbus_string_get_length (dirs);
261 if (_dbus_string_get_length (&path) == 0)
356 #define MAX_LONG_LEN ((sizeof (long) * 8 + 2) / 3 + 1)
361 orig_len = _dbus_string_get_length (str);
368 snprintf (buf, MAX_LONG_LEN,
"%ld", value);
394 #define MAX_ULONG_LEN (MAX_LONG_LEN * 2)
399 orig_len = _dbus_string_get_length (str);
406 snprintf (buf, MAX_ULONG_LEN,
"%lu", value);
442 p = _dbus_string_get_const_data_len (str, start,
443 _dbus_string_get_length (str) - start);
447 v = strtol (p, &end, 0);
448 if (end ==
NULL || end == p || errno != 0)
454 *end_return = start + (end - p);
474 unsigned long *value_return,
481 p = _dbus_string_get_const_data_len (str, start,
482 _dbus_string_get_length (str) - start);
486 v = strtoul (p, &end, 0);
487 if (end ==
NULL || end == p || errno != 0)
493 *end_return = start + (end - p);
513 _dbus_verbose (
"Falling back to pseudorandom for %d bytes\n",
526 b = (r / (double) RAND_MAX) * 255.0;
576 static const char letters[] =
577 "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
584 len = _dbus_string_get_length (str);
588 _dbus_string_set_byte (str, i,
589 letters[_dbus_string_get_byte (str, i) %
590 (
sizeof (letters) - 1)]);
614 switch (error_number)
619 #ifdef EPROTONOSUPPORT
620 case EPROTONOSUPPORT:
622 #elif defined(WSAEPROTONOSUPPORT)
623 case WSAEPROTONOSUPPORT:
629 #elif defined(WSAEAFNOSUPPORT)
630 case WSAEAFNOSUPPORT:
660 #elif defined(WSAECONNREFUSED)
661 case WSAECONNREFUSED:
667 #elif defined(WSAETIMEDOUT)
674 #elif defined(WSAENETUNREACH)
681 #elif defined(WSAEADDRINUSE)
739 return errno == ENOMEM;
749 return errno == EINTR;
759 return errno == EPIPE;
770 return errno == ETOOMANYREFS;
783 return _dbus_strerror (errno);