XMMS2

src/lib/xmmsipc/transport_unix.c

Go to the documentation of this file.
00001 #include <stdlib.h>
00002 #include "xmmsc/xmmsc_ipc_transport.h"
00003 #include "socket_unix.h"
00004 #include "socket_tcp.h"
00005 #include "xmmsc/xmmsc_stringport.h"
00006 #include "xmmsc/xmmsc_util.h"
00007 
00008 xmms_ipc_transport_t *
00009 xmms_ipc_client_init (const char *path)
00010 {
00011     xmms_ipc_transport_t *transport = NULL;
00012     xmms_url_t *url;
00013 
00014     x_return_val_if_fail (path, NULL);
00015 
00016     url = parse_url (path);
00017     x_return_val_if_fail (url, NULL);
00018 
00019     if (!strcasecmp (url->protocol, "") || !strcasecmp (url->protocol, "unix")) {
00020         transport = xmms_ipc_usocket_client_init (url);
00021     } else if (!strcasecmp (url->protocol, "tcp")) {
00022         transport = xmms_ipc_tcp_client_init (url, url->ipv6_host);
00023     }
00024 
00025     free_url (url);
00026     return transport;
00027 }
00028 
00029 xmms_ipc_transport_t *
00030 xmms_ipc_server_init (const char *path)
00031 {
00032     xmms_ipc_transport_t *transport = NULL;
00033     xmms_url_t *url;
00034 
00035     x_return_val_if_fail (path, NULL);
00036 
00037     url = parse_url (path);
00038     x_return_val_if_fail (url, NULL);
00039 
00040     if (!strcasecmp (url->protocol, "") || !strcasecmp (url->protocol, "unix")) {
00041         transport = xmms_ipc_usocket_server_init (url);
00042     } else if (!strcasecmp (url->protocol, "tcp")) {
00043         transport = xmms_ipc_tcp_server_init (url, url->ipv6_host);
00044     }
00045 
00046     free_url (url);
00047     return transport;
00048 }