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 }