XMMS2
transport_unix.c
Go to the documentation of this file.
1 #include <stdlib.h>
3 #include "socket_unix.h"
4 #include "socket_tcp.h"
6 #include "xmmsc/xmmsc_util.h"
7 
9 xmms_ipc_client_init (const char *path)
10 {
11  xmms_ipc_transport_t *transport = NULL;
12  xmms_url_t *url;
13 
14  x_return_val_if_fail (path, NULL);
15 
16  url = parse_url (path);
17  x_return_val_if_fail (url, NULL);
18 
19  if (!strcasecmp (url->protocol, "") || !strcasecmp (url->protocol, "unix")) {
20  transport = xmms_ipc_usocket_client_init (url);
21  } else if (!strcasecmp (url->protocol, "tcp")) {
22  transport = xmms_ipc_tcp_client_init (url, url->ipv6_host);
23  }
24 
25  free_url (url);
26  return transport;
27 }
28 
30 xmms_ipc_server_init (const char *path)
31 {
32  xmms_ipc_transport_t *transport = NULL;
33  xmms_url_t *url;
34 
35  x_return_val_if_fail (path, NULL);
36 
37  url = parse_url (path);
38  x_return_val_if_fail (url, NULL);
39 
40  if (!strcasecmp (url->protocol, "") || !strcasecmp (url->protocol, "unix")) {
41  transport = xmms_ipc_usocket_server_init (url);
42  } else if (!strcasecmp (url->protocol, "tcp")) {
43  transport = xmms_ipc_tcp_server_init (url, url->ipv6_host);
44  }
45 
46  free_url (url);
47  return transport;
48 }
xmms_ipc_transport_t * xmms_ipc_server_init(const char *path)
#define x_return_val_if_fail(expr, val)
Definition: xmmsc_util.h:13
char * protocol
Definition: url.h:5
void free_url(xmms_url_t *url)
Definition: url.c:94
xmms_ipc_transport_t * xmms_ipc_usocket_client_init(const xmms_url_t *url)
Definition: socket_unix.c:72
xmms_ipc_transport_t * xmms_ipc_usocket_server_init(const xmms_url_t *url)
Definition: socket_unix.c:163
int ipv6_host
Definition: url.h:8
Definition: url.h:4
xmms_ipc_transport_t * xmms_ipc_tcp_server_init(const xmms_url_t *url, int ipv6)
Definition: socket_tcp.c:171
xmms_ipc_transport_t * xmms_ipc_tcp_client_init(const xmms_url_t *url, int ipv6)
Definition: socket_tcp.c:67
xmms_ipc_transport_t * xmms_ipc_client_init(const char *path)
Definition: transport_unix.c:9
xmms_url_t * parse_url(const char *url)
Split a URL into its respective parts.
Definition: url.c:17