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 }