mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 06:32:10 +01:00
Always include G_SOCKET_FAMILY_UNIX value in GSocketFamily
This is needed because glib-mkenums doesn't handle #ifdef values in enums, and so it needs to have all values always defined in the enum. When not available, define the missing values to a negative value.
This commit is contained in:
parent
091d652120
commit
118c42e747
12
configure.ac
12
configure.ac
@ -3344,7 +3344,17 @@ g_pollhup=$glib_cv_value_POLLHUP
|
||||
g_pollerr=$glib_cv_value_POLLERR
|
||||
g_pollnval=$glib_cv_value_POLLNVAL
|
||||
|
||||
g_af_unix=$glib_cv_value_AF_UNIX
|
||||
# If a family is not found on the system, define that family to
|
||||
# a negative value, picking a different one for each undefined
|
||||
# family (-1 for AF_UNIX, -2 for the next one, -3 ...)
|
||||
# This is needed because glib-mkenums doesn't handle optional
|
||||
# values in enums, and thus we have to have all existing values
|
||||
# defined in the enum.
|
||||
if "x$glib_cv_value_AF_UNIX" != "x"; then
|
||||
g_af_unix=$glib_cv_value_AF_UNIX
|
||||
else
|
||||
g_af_unix=-1
|
||||
fi
|
||||
g_af_inet=$glib_cv_value_AF_INET
|
||||
g_af_inet6=$glib_cv_value_AF_INET6
|
||||
|
||||
|
@ -687,9 +687,7 @@ typedef enum /*< flags >*/ {
|
||||
*/
|
||||
typedef enum {
|
||||
G_SOCKET_FAMILY_INVALID,
|
||||
#ifdef GLIB_SYSDEF_AF_UNIX
|
||||
G_SOCKET_FAMILY_UNIX = GLIB_SYSDEF_AF_UNIX,
|
||||
#endif
|
||||
G_SOCKET_FAMILY_IPV4 = GLIB_SYSDEF_AF_INET,
|
||||
G_SOCKET_FAMILY_IPV6 = GLIB_SYSDEF_AF_INET6
|
||||
} GSocketFamily;
|
||||
|
@ -500,6 +500,13 @@ g_socket_create_socket (GSocketFamily family,
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
if (family < 0)
|
||||
{
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
_("Unable to create socket: %s"), _("Unknown family was specified"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (protocol == -1)
|
||||
{
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
|
Loading…
x
Reference in New Issue
Block a user