--- /dev/null
+GFenDirectoryMonitor
+GFenDirectoryMonitorClass
+GFenFileMonitor
+GFenFileMonitorClass
+GLocalFileIOStream
+GLocalFileIOStreamClass
+GLocalFileIOStreamPrivate
+GSocketInputStream
+GSocketInputStreamClass
+GSocketInputStreamPrivate
+GSocketOutputStream
+GSocketOutputStreamClass
+GSocketOutputStreamPrivate
+GWin32DirectoryMonitor
+GWin32DirectoryMonitorClass
+GWin32DirectoryMonitorPrivate
+GWin32Mount
+GWin32MountClass
+GWin32Volume
+GWin32VolumeMonitor
+GWin32VolumeMonitorClass
+GWinHttpDllFuncs
+GWinHttpFile
+GWinHttpFileClass
+GWinHttpFileInputStream
+GWinHttpFileInputStreamClass
+GWinHttpFileOutputStream
+GWinHttpFileOutputStreamClass
+GWinHttpVfs
+GWinHttpVfsClass
+G_FEN_DIRECTORY_MONITOR
+G_FEN_DIRECTORY_MONITOR_CLASS
+G_FEN_FILE_MONITOR
+G_FEN_FILE_MONITOR_CLASS
+G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE
+G_IS_FEN_DIRECTORY_MONITOR
+G_IS_FEN_DIRECTORY_MONITOR_CLASS
+G_IS_FEN_FILE_MONITOR
+G_IS_FEN_FILE_MONITOR_CLASS
+G_IS_LOCAL_FILE_IO_STREAM
+G_IS_LOCAL_FILE_IO_STREAM_CLASS
+G_IS_SOCKET_INPUT_STREAM
+G_IS_SOCKET_INPUT_STREAM_CLASS
+G_IS_SOCKET_OUTPUT_STREAM
+G_IS_SOCKET_OUTPUT_STREAM_CLASS
+G_IS_WIN32_DIRECTORY_MONITOR
+G_IS_WIN32_DIRECTORY_MONITOR_CLASS
+G_IS_WIN32_MOUNT
+G_IS_WIN32_MOUNT_CLASS
+G_IS_WIN32_VOLUME_MONITOR
+G_IS_WIN32_VOLUME_MONITOR_CLASS
+G_IS_WINHTTP_FILE
+G_IS_WINHTTP_FILE_CLASS
+G_IS_WINHTTP_FILE_INPUT_STREAM
+G_IS_WINHTTP_FILE_INPUT_STREAM_CLASS
+G_IS_WINHTTP_FILE_OUTPUT_STREAM
+G_IS_WINHTTP_FILE_OUTPUT_STREAM_CLASS
+G_IS_WINHTTP_VFS
+G_IS_WINHTTP_VFS_CLASS
+G_LOCAL_FILE_IO_STREAM
+G_LOCAL_FILE_IO_STREAM_CLASS
+G_LOCAL_FILE_IO_STREAM_GET_CLASS
+G_SOCKET_INPUT_STREAM
+G_SOCKET_INPUT_STREAM_CLASS
+G_SOCKET_INPUT_STREAM_GET_CLASS
+G_SOCKET_OUTPUT_STREAM
+G_SOCKET_OUTPUT_STREAM_CLASS
+G_SOCKET_OUTPUT_STREAM_GET_CLASS
+G_TYPE_FEN_DIRECTORY_MONITOR
+G_TYPE_FEN_FILE_MONITOR
+G_TYPE_LOCAL_FILE_IO_STREAM
+G_TYPE_SOCKET_OUTPUT_STREAM
+G_TYPE_WIN32_DIRECTORY_MONITOR
+G_TYPE_WIN32_MOUNT
+G_TYPE_WIN32_VOLUME_MONITOR
+G_TYPE_WINHTTP_FILE
+G_TYPE_WINHTTP_FILE_INPUT_STREAM
+G_TYPE_WINHTTP_FILE_OUTPUT_STREAM
+G_TYPE_WINHTTP_VFS
+G_WIN32_DIRECTORY_MONITOR
+G_WIN32_DIRECTORY_MONITOR_CLASS
+G_WIN32_DIRECTORY_MONITOR_GET_CLASS
+G_WIN32_MOUNT
+G_WIN32_MOUNT_CLASS
+G_WIN32_VOLUME_MONITOR
+G_WIN32_VOLUME_MONITOR_CLASS
+G_WINHTTP_FILE
+G_WINHTTP_FILE_CLASS
+G_WINHTTP_FILE_GET_CLASS
+G_WINHTTP_FILE_INPUT_STREAM
+G_WINHTTP_FILE_INPUT_STREAM_CLASS
+G_WINHTTP_FILE_INPUT_STREAM_GET_CLASS
+G_WINHTTP_FILE_OUTPUT_STREAM
+G_WINHTTP_FILE_OUTPUT_STREAM_CLASS
+G_WINHTTP_FILE_OUTPUT_STREAM_GET_CLASS
+G_WINHTTP_VFS
+G_WINHTTP_VFS_CLASS
+G_WINHTTP_VFS_GET_CLASS
+g_win32_directory_monitor_get_type
+g_win32_directory_monitor_register
--- /dev/null
+
+<book lang=
+<!ENTITY version SYSTEM
+xml/extensionpoints.xml
+xml/gappinfo.xml
+xml/gasyncinitable.xml
+xml/gasyncresult.xml
+xml/gbufferedinputstream.xml
+xml/gbufferedoutputstream.xml
+xml/gcancellable.xml
+xml/gcontenttype.xml
+xml/gdatainputstream.xml
+xml/gdataoutputstream.xml
+xml/gdesktopappinfo.xml
+xml/gdrive.xml
+xml/gemblemedicon.xml
+xml/gemblem.xml
+xml/gfileattribute.xml
+xml/gfileenumerator.xml
+xml/gfileicon.xml
+xml/gfileinfo.xml
+xml/gfileinputstream.xml
+xml/gfileiostream.xml
+xml/gfilemonitor.xml
+xml/gfilenamecompleter.xml
+xml/gfileoutputstream.xml
+xml/gfile.xml
+xml/gfilterinputstream.xml
+xml/gfilteroutputstream.xml
+xml/gicon.xml
+xml/ginetaddress.xml
+xml/ginetsocketaddress.xml
+xml/ginitable.xml
+xml/ginputstream.xml
+xml/gioerror.xml
+xml/giomodule.xml
+xml/gioscheduler.xml
+xml/giostream.xml
+xml/gloadableicon.xml
+xml/gmemoryinputstream.xml
+xml/gmemoryoutputstream.xml
+xml/gmountoperation.xml
+xml/gmount.xml
+xml/gnetworkaddress.xml
+xml/gnetworkservice.xml
+xml/goutputstream.xml
+xml/gresolver.xml
+xml/gseekable.xml
+xml/gsimpleasyncresult.xml
+xml/gsocketaddress.xml
+xml/gsocketclient.xml
+xml/gsocketconnectable.xml
+xml/gsocketconnection.xml
+xml/gsocketcontrolmessage.xml
+xml/gsocketlistener.xml
+xml/gsocketservice.xml
+xml/gsocket.xml
+xml/gsrvtarget.xml
+xml/gtcpconnection.xml
+xml/gthemedicon.xml
+xml/gthreadedsocketservice.xml
+xml/gunixconnection.xml
+xml/gunixfdmessage.xml
+xml/gunixinputstream.xml
+xml/gunixmounts.xml
+xml/gunixoutputstream.xml
+xml/gunixsocketaddress.xml
+xml/gvfs.xml
+xml/gvolumemonitor.xml
+xml/gvolume.xml
+xml/migrating.xml
+xml/overview.xml
+xml/tree_index.sgml
+<?xml version=
--- /dev/null
+xml/api-index-2.18.xml
+xml/api-index-2.18..xml
+xml/api-index-2,20.xml
+xml/api-index-2.20.xml
+xml/api-index-2.22.xml
+xml/api-index-2.22..xml
+xml/api-index-deprecated.xml
+xml/api-index-full.xml
+xml/extensionpoints.xml
+xml/gappinfo.xml
+xml/gasyncinitable.xml
+xml/gasyncresult.xml
+xml/gbufferedinputstream.xml
+xml/gbufferedoutputstream.xml
+xml/gcancellable.xml
+xml/gcontenttype.xml
+xml/gdatainputstream.xml
+xml/gdataoutputstream.xml
+xml/gdesktopappinfo.xml
+xml/gdrive.xml
+xml/gemblemedicon.xml
+xml/gemblem.xml
+xml/gfileattribute.xml
+xml/gfileenumerator.xml
+xml/gfileicon.xml
+xml/gfileinfo.xml
+xml/gfileinputstream.xml
+xml/gfileiostream.xml
+xml/gfilemonitor.xml
+xml/gfilenamecompleter.xml
+xml/gfileoutputstream.xml
+xml/gfile.xml
+xml/gfilterinputstream.xml
+xml/gfilteroutputstream.xml
+xml/gicon.xml
+xml/ginetaddress.xml
+xml/ginetsocketaddress.xml
+xml/ginitable.xml
+xml/ginputstream.xml
+xml/gioerror.xml
+xml/giomodule.xml
+xml/gioscheduler.xml
+xml/giostream.xml
+xml/gloadableicon.xml
+xml/gmemoryinputstream.xml
+xml/gmemoryoutputstream.xml
+xml/gmountoperation.xml
+xml/gmount.xml
+xml/gnetworkaddress.xml
+xml/gnetworkservice.xml
+xml/goutputstream.xml
+xml/gresolver.xml
+xml/gseekable.xml
+xml/gsimpleasyncresult.xml
+xml/gsocketaddress.xml
+xml/gsocketclient.xml
+xml/gsocketconnectable.xml
+xml/gsocketconnection.xml
+xml/gsocketcontrolmessage.xml
+xml/gsocketlistener.xml
+xml/gsocketservice.xml
+xml/gsocket.xml
+xml/gsrvtarget.xml
+xml/gtcpconnection.xml
+xml/gthemedicon.xml
+xml/gthreadedsocketservice.xml
+xml/gunixconnection.xml
+xml/gunixfdmessage.xml
+xml/gunixinputstream.xml
+xml/gunixmounts.xml
+xml/gunixoutputstream.xml
+xml/gunixsocketaddress.xml
+xml/gvfs.xml
+xml/gvolumemonitor.xml
+xml/gvolume.xml
+xml/migrating.xml
+xml/overview.xml
--- /dev/null
+xml/api-index-2.18.xml
+xml/api-index-2.18..xml
+xml/api-index-2,20.xml
+xml/api-index-2.20.xml
+xml/api-index-2.22.xml
+xml/api-index-2.22..xml
+xml/api-index-deprecated.xml
+xml/api-index-full.xml
+xml/extensionpoints.xml
+xml/gappinfo.xml
+xml/gasyncinitable.xml
+xml/gasyncresult.xml
+xml/gbufferedinputstream.xml
+xml/gbufferedoutputstream.xml
+xml/gcancellable.xml
+xml/gcontenttype.xml
+xml/gdatainputstream.xml
+xml/gdataoutputstream.xml
+xml/gdesktopappinfo.xml
+xml/gdrive.xml
+xml/gemblemedicon.xml
+xml/gemblem.xml
+xml/gfileattribute.xml
+xml/gfileenumerator.xml
+xml/gfileicon.xml
+xml/gfileinfo.xml
+xml/gfileinputstream.xml
+xml/gfileiostream.xml
+xml/gfilemonitor.xml
+xml/gfilenamecompleter.xml
+xml/gfileoutputstream.xml
+xml/gfile.xml
+xml/gfilterinputstream.xml
+xml/gfilteroutputstream.xml
+xml/gicon.xml
+xml/ginetaddress.xml
+xml/ginetsocketaddress.xml
+xml/ginitable.xml
+xml/ginputstream.xml
+xml/gioerror.xml
+xml/giomodule.xml
+xml/gioscheduler.xml
+xml/giostream.xml
+xml/gloadableicon.xml
+xml/gmemoryinputstream.xml
+xml/gmemoryoutputstream.xml
+xml/gmountoperation.xml
+xml/gmount.xml
+xml/gnetworkaddress.xml
+xml/gnetworkservice.xml
+xml/goutputstream.xml
+xml/gresolver.xml
+xml/gseekable.xml
+xml/gsimpleasyncresult.xml
+xml/gsocketaddress.xml
+xml/gsocketclient.xml
+xml/gsocketconnectable.xml
+xml/gsocketconnection.xml
+xml/gsocketcontrolmessage.xml
+xml/gsocketlistener.xml
+xml/gsocketservice.xml
+xml/gsocket.xml
+xml/gsrvtarget.xml
+xml/gtcpconnection.xml
+xml/gthemedicon.xml
+xml/gthreadedsocketservice.xml
+xml/gunixconnection.xml
+xml/gunixfdmessage.xml
+xml/gunixinputstream.xml
+xml/gunixmounts.xml
+xml/gunixoutputstream.xml
+xml/gunixsocketaddress.xml
+xml/gvfs.xml
+xml/gvolumemonitor.xml
+xml/gvolume.xml
+xml/migrating.xml
+xml/overview.xml
GSocket
GSocketSourceFunc
GSocketType
+GSocketProtocol
GSocketMsgFlags
GInputVector
GOutputVector
g_socket_get_family
g_socket_get_fd
g_socket_get_local_address
-g_socket_get_protocol_id
-g_socket_get_protocol_name
+g_socket_get_protocol
g_socket_get_remote_address
g_socket_get_socket_type
-g_socket_protocol_id_lookup_by_name
<SUBSECTION Standard>
GSocketClass
G_IS_SOCKET
g_socket_get_keepalive
g_socket_get_listen_backlog
g_socket_get_local_address
-g_socket_get_protocol_id
-g_socket_get_protocol_name
-g_socket_protocol_id_lookup_by_name
+g_socket_get_protocol
g_socket_get_remote_address
g_socket_get_socket_type
g_socket_is_closed
G_SOCKET_MSG_DONTROUTE = GLIB_SYSDEF_MSG_DONTROUTE
} GSocketMsgFlags;
+/**
+ * GSocketProtocol:
+ * @G_SOCKET_PROTOCOL_UNKNOWN: The protocol type is unknown
+ * @G_SOCKET_PROTOCOL_DEFAULT: The default protocol for the family/type
+ * @G_SOCKET_PROTOCOL_TCP: Tcp over IP
+ * @G_SOCKET_PROTOCOL_UDP: UDP over IP
+ * @G_SOCKET_PROTOCOL_SCTP: SCTP over IP
+ *
+ * A protocol identifier is specified when creating a #GSocket, which is a family/type
+ * specific identifier, where 0 means the default protocol for the particular family/type.
+ * This enum contains a set of commonly availible and used protocols. You can also
+ * pass any other identifiers handled by the platform in order to use protocols not
+ * listed here.
+ *
+ * Since: 2.22
+ */
+typedef enum {
+ G_SOCKET_PROTOCOL_UNKNOWN = -1,
+ G_SOCKET_PROTOCOL_DEFAULT = 0,
+ G_SOCKET_PROTOCOL_TCP = 6,
+ G_SOCKET_PROTOCOL_UDP = 17,
+ G_SOCKET_PROTOCOL_SCTP = 132
+} GSocketProtocol;
+
G_END_DECLS
#endif /* __GIO_ENUMS_H__ */
{
GSocketFamily family;
GSocketType type;
- gint protocol;
+ GSocketProtocol protocol;
gint fd;
gint listen_backlog;
GError *construct_error;
socket_strerror (errsv));
}
-static char *
-get_protocol_name (int protocol_id)
-{
- struct protoent *protoent;
-#ifdef HAVE_GETPROTOBYNUMBER_R
- char buffer[1024];
- struct protoent my_protoent;
-#endif
-
- if (protocol_id == 0)
- return NULL;
-
- if (protocol_id == -1)
- return g_strdup ("unknown");
-
-#ifdef HAVE_GETPROTOBYNUMBER_R
- protoent = NULL;
- getprotobynumber_r (protocol_id,
- &my_protoent, buffer, sizeof (buffer),
- &protoent);
-#else
- protoent = getprotobynumber (protocol_id);
-#endif
-
- if (protoent == NULL)
- return g_strdup_printf ("proto-%d", protocol_id);
-
- return g_strdup (protoent->p_name);
-}
-
-/**
- * g_socket_protocol_id_lookup_by_name:
- * @protocol_name: The name of a protocol, or %NULL
- *
- * Tries to look up the protocol id for a given
- * protocol name. If the protocol name is not known
- * on this system it returns -1.
- *
- * If @protocol_name is %NULL (default protocol) then
- * 0 is returned.
- *
- * Returns: a protocol id, or -1 if unknown
- *
- * Since: 2.22
- **/
-gint
-g_socket_protocol_id_lookup_by_name (const char *protocol_name)
-{
- struct protoent *protoent;
- int protocol = 0;
-#ifdef HAVE_GETPROTOBYNAME_R
- char buffer[1024];
- struct protoent my_protoent;
-#endif
-
- if (!protocol_name)
- return 0;
-
-#ifdef HAVE_GETPROTOBYNAME_R
- protoent = NULL;
- getprotobyname_r (protocol_name,
- &my_protoent, buffer, sizeof (buffer),
- &protoent);
-#else
- protoent = getprotobyname (protocol_name);
-#endif
-
- if (protoent == NULL)
- {
- if (g_str_has_prefix (protocol_name, "proto-"))
- return atoi (protocol_name + strlen ("proto-"));
- return -1;
- }
- protocol = protoent->p_proto;
-
- return protocol;
-}
-
static gint
g_socket_create_socket (GSocketFamily family,
GSocketType type,
- int protocol_id,
+ int protocol,
GError **error)
{
gint native_type;
g_assert_not_reached ();
}
- if (protocol_id == -1)
+ if (protocol == -1)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
_("Unable to create socket: %s"), _("Unknown protocol was specified"));
#ifdef SOCK_CLOEXEC
native_type |= SOCK_CLOEXEC;
#endif
- fd = socket (family, native_type, protocol_id);
+ fd = socket (family, native_type, protocol);
if (fd < 0)
{
break;
case PROP_PROTOCOL:
- g_value_set_int (value, socket->priv->protocol);
+ g_value_set_enum (value, socket->priv->protocol);
break;
case PROP_FD:
break;
case PROP_PROTOCOL:
- socket->priv->protocol = g_value_get_int (value);
+ socket->priv->protocol = g_value_get_enum (value);
break;
case PROP_FD:
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_PROTOCOL,
- g_param_spec_int ("protocol",
+ g_param_spec_enum ("protocol",
P_("Socket protocol"),
P_("The id of the protocol to use, or -1 for unknown"),
- G_MININT,
- G_MAXINT,
- -1,
+ G_TYPE_SOCKET_PROTOCOL,
+ G_SOCKET_PROTOCOL_UNKNOWN,
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_FD,
* g_socket_new:
* @family: the socket family to use, e.g. %G_SOCKET_FAMILY_IPV4.
* @type: the socket type to use.
- * @protocol_id: the id of the protocol to use, or 0 for default.
+ * @protocol: the id of the protocol to use, or 0 for default.
* @error: #GError for error reporting, or %NULL to ignore.
*
* Creates a new #GSocket with the defined family, type and protocol.
- * If @protocol_id is 0 the default protocol type for the family and
- * type is used.
+ * If @protocol is 0 (%G_SOCKET_PROTOCOL_DEFAULT) the default protocol type
+ * for the family and type is used.
+ *
+ * The @protocol is a family and type specific int that specifies what
+ * kind of protocol to use. #GSocketProtocol lists several common ones.
+ * Many families only support one protocol, and use 0 for this, others
+ * support several and using 0 means to use the default protocol for
+ * the family and type.
*
- * The @protocol_id is a family and type specific int that specifies what
- * kind of protocol to use. Many families only support one protocol,
- * and use 0 for this, others support several and using 0 means
- * to use the default protocol for the family and type. To use
- * other protocol, you can use g_socket_protocol_id_lookup_by_name()
- * to look up the protocol by name, or if you known the system specific
- * protocol id you can use that.
+ * The protocol id is passed directly to the operating
+ * system, so you can use protocols not listed in #GSocketProtocol if you
+ * know the protocol number used for it.
*
* Returns: a #GSocket or %NULL on error.
* Free the returned object with g_object_unref().
GSocket *
g_socket_new (GSocketFamily family,
GSocketType type,
- int protocol_id,
+ GSocketProtocol protocol,
GError **error)
{
return G_SOCKET (g_initable_new (G_TYPE_SOCKET,
NULL, error,
"family", family,
"type", type,
- "protocol", protocol_id,
+ "protocol", protocol,
NULL));
}
}
/**
- * g_socket_get_protocol_id:
+ * g_socket_get_protocol:
* @socket: a #GSocket.
*
* Gets the socket protocol id the socket was created with.
*
* Since: 2.22
**/
-gint
-g_socket_get_protocol_id (GSocket *socket)
+GSocketProtocol
+g_socket_get_protocol (GSocket *socket)
{
g_return_val_if_fail (G_IS_SOCKET (socket), -1);
}
/**
- * g_socket_get_protocol_name:
- * @socket: a #GSocket.
- *
- * Gets the socket protocol type name the socket was created with.
- * This can be %NULL if the socket was created with a NULL protocol.
- *
- * Returns: a string or %NULL, free with g_free
- *
- * Since: 2.22
- **/
-char *
-g_socket_get_protocol_name (GSocket *socket)
-{
- g_return_val_if_fail (G_IS_SOCKET (socket), NULL);
-
- return get_protocol_name (socket->priv->protocol);
-}
-
-/**
* g_socket_get_fd:
* @socket: a #GSocket.
*
GType g_socket_get_type (void) G_GNUC_CONST;
GSocket * g_socket_new (GSocketFamily family,
GSocketType type,
- gint protocol_id,
+ GSocketProtocol protocol,
GError **error);
GSocket * g_socket_new_from_fd (gint fd,
GError **error);
int g_socket_get_fd (GSocket *socket);
GSocketFamily g_socket_get_family (GSocket *socket);
GSocketType g_socket_get_socket_type (GSocket *socket);
-gint g_socket_get_protocol_id (GSocket *socket);
-char * g_socket_get_protocol_name (GSocket *socket);
+GSocketProtocol g_socket_get_protocol (GSocket *socket);
GSocketAddress * g_socket_get_local_address (GSocket *socket,
GError **error);
GSocketAddress * g_socket_get_remote_address (GSocket *socket,
GIOCondition condition,
GCancellable *cancellable);
-gint g_socket_protocol_id_lookup_by_name (const char *protocol_name);
-
G_END_DECLS
#endif /* __G_SOCKET_H__ */
{
GSocketFamily family;
GSocketType type;
- char *protocol;
+ GSocketProtocol protocol;
GSocketAddress *local_address;
};
{
GSocketFamily family;
GSocket *socket;
- int proto;
family = client->priv->family;
if (family == G_SOCKET_FAMILY_INVALID &&
if (family == G_SOCKET_FAMILY_INVALID)
family = g_socket_address_get_family (dest_address);
- proto = g_socket_protocol_id_lookup_by_name (client->priv->protocol);
socket = g_socket_new (family,
client->priv->type,
- proto,
+ client->priv->protocol,
error);
if (socket == NULL)
return NULL;
if (client->priv->local_address)
g_object_unref (client->priv->local_address);
- g_free (client->priv->protocol);
-
if (G_OBJECT_CLASS (g_socket_client_parent_class)->finalize)
(*G_OBJECT_CLASS (g_socket_client_parent_class)->finalize) (object);
}
break;
case PROP_PROTOCOL:
- g_value_set_string (value, client->priv->protocol);
+ g_value_set_enum (value, client->priv->protocol);
break;
case PROP_LOCAL_ADDRESS:
break;
case PROP_PROTOCOL:
- g_socket_client_set_protocol (client, g_value_get_string (value));
+ g_socket_client_set_protocol (client, g_value_get_enum (value));
break;
case PROP_LOCAL_ADDRESS:
*
* See g_socket_client_set_protocol() for details.
*
- * Returns: a string or %NULL. don't free
+ * Returns: a #GSocketProtocol
*
* Since: 2.22
**/
-const char *
+GSocketProtocol
g_socket_client_get_protocol (GSocketClient *client)
{
return client->priv->protocol;
/**
* g_socket_client_set_protocol:
* @client: a #GSocketClient.
- * @protocol: a string, or %NULL
+ * @protocol: a #GSocketProtocol
*
* Sets the protocol of the socket client.
* The sockets created by this object will use of the specified
* protocol.
*
- * If @protocol is %NULL that means to use the default
+ * If @protocol is %0 that means to use the default
* protocol for the socket family and type.
*
* Since: 2.22
**/
void
-g_socket_client_set_protocol (GSocketClient *client,
- const char *protocol)
+g_socket_client_set_protocol (GSocketClient *client,
+ GSocketProtocol protocol)
{
- if (g_strcmp0 (client->priv->protocol, protocol) == 0)
+ if (client->priv->protocol == protocol)
return;
- g_free (client->priv->protocol);
- client->priv->protocol = g_strdup (protocol);
+ client->priv->protocol = protocol;
g_object_notify (G_OBJECT (client), "protocol");
}
G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_PROTOCOL,
- g_param_spec_string ("protocol",
- P_("Socket protocol"),
- P_("The protocol to use for socket construction, or %NULL for default"),
- NULL,
- G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_param_spec_enum ("protocol",
+ P_("Socket protocol"),
+ P_("The protocol to use for socket construction, or 0 for default"),
+ G_TYPE_SOCKET_PROTOCOL,
+ G_SOCKET_PROTOCOL_DEFAULT,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_LOCAL_ADDRESS,
g_param_spec_object ("local-address",
GSocketType g_socket_client_get_socket_type (GSocketClient *client);
void g_socket_client_set_socket_type (GSocketClient *client,
GSocketType type);
-const char *g_socket_client_get_protocol (GSocketClient *client);
+GSocketProtocol g_socket_client_get_protocol (GSocketClient *client);
void g_socket_client_set_protocol (GSocketClient *client,
- const char *protocol);
+ GSocketProtocol protocol);
GSocketAddress *g_socket_client_get_local_address (GSocketClient *client);
void g_socket_client_set_local_address (GSocketClient *client,
GSocketAddress *address);
type = g_socket_connection_factory_lookup_type (g_socket_get_family (socket),
g_socket_get_socket_type (socket),
- g_socket_get_protocol_id (socket));
+ g_socket_get_protocol (socket));
return g_object_new (type, "socket", socket, NULL);
}
/**
* g_socket_listener_add_address:
* @listener: a #GSocketListener
- * @address: a #GSocketAddres
+ * @address: a #GSocketAddress
* @type: a #GSocketType
- * @protocol: a protocol name, or %NULL
+ * @protocol: a #GSocketProtocol
* @source_object: Optional #GObject identifying this source
* @error: #GError for error reporting, or %NULL to ignore.
*
g_socket_listener_add_address (GSocketListener *listener,
GSocketAddress *address,
GSocketType type,
- const char *protocol,
+ GSocketProtocol protocol,
GObject *source_object,
GError **error)
{
return FALSE;
family = g_socket_address_get_family (address);
- socket = g_socket_new (family, type,
- g_socket_protocol_id_lookup_by_name (protocol), error);
+ socket = g_socket_new (family, type, protocol, error);
if (socket == NULL)
return FALSE;
if (!g_socket_listener_add_address (listener,
address6,
G_SOCKET_TYPE_STREAM,
- NULL,
+ G_SOCKET_PROTOCOL_DEFAULT,
source_object,
NULL))
{
res = g_socket_listener_add_address (listener,
address4,
G_SOCKET_TYPE_STREAM,
- NULL,
+ G_SOCKET_PROTOCOL_DEFAULT,
source_object,
error);
}
g_socket_listener_add_address (listener,
address4,
G_SOCKET_TYPE_STREAM,
- NULL,
+ G_SOCKET_PROTOCOL_DEFAULT,
source_object,
NULL);
}
gboolean g_socket_listener_add_address (GSocketListener *listener,
GSocketAddress *address,
GSocketType type,
- const char *protocol,
+ GSocketProtocol protocol,
GObject *source_object,
GError **error);
gboolean g_socket_listener_add_inet_port (GSocketListener *listener,
g_socket_connection_factory_register_type (g_define_type_id,
G_SOCKET_FAMILY_IPV4,
G_SOCKET_TYPE_STREAM,
- 0);
+ G_SOCKET_PROTOCOL_DEFAULT);
g_socket_connection_factory_register_type (g_define_type_id,
G_SOCKET_FAMILY_IPV6,
G_SOCKET_TYPE_STREAM,
- 0);
+ G_SOCKET_PROTOCOL_DEFAULT);
g_socket_connection_factory_register_type (g_define_type_id,
G_SOCKET_FAMILY_IPV4,
G_SOCKET_TYPE_STREAM,
- g_socket_protocol_id_lookup_by_name ("tcp"));
+ G_SOCKET_PROTOCOL_TCP);
g_socket_connection_factory_register_type (g_define_type_id,
G_SOCKET_FAMILY_IPV6,
G_SOCKET_TYPE_STREAM,
- g_socket_protocol_id_lookup_by_name ("tcp"));
+ G_SOCKET_PROTOCOL_TCP);
);
static gboolean g_tcp_connection_close (GIOStream *stream,
g_socket_connection_factory_register_type (g_define_type_id,
G_SOCKET_FAMILY_UNIX,
G_SOCKET_TYPE_STREAM,
- 0);
+ G_SOCKET_PROTOCOL_DEFAULT);
);
/**