diff options
author | Luo Jinghua <sunmoon1997@gmail.com> | 2009-09-02 19:12:21 +0800 |
---|---|---|
committer | Luo Jinghua <sunmoon1997@gmail.com> | 2009-09-02 19:12:21 +0800 |
commit | d5e3272a77f459a7e6e53e2bdfb94f0f2c8e25c4 (patch) | |
tree | a7c6d38aa8c886d8d65391d5ea2d9d665840dde5 | |
parent | 418d2e6c8bd266423a3b9dcbe73b0910fac37b6d (diff) |
cwrapper: add protocol for check_url.
All libpps' api are implemented now
-rw-r--r-- | wrapper/ppswrapper-client.c | 22 | ||||
-rw-r--r-- | wrapper/ppswrapper-server-main.c | 3 | ||||
-rw-r--r-- | wrapper/ppswrapper-server.c | 18 | ||||
-rw-r--r-- | wrapper/ppswrapper.c | 6 | ||||
-rw-r--r-- | wrapper/ppswrapper.h | 3 |
5 files changed, 51 insertions, 1 deletions
diff --git a/wrapper/ppswrapper-client.c b/wrapper/ppswrapper-client.c index 1e1c42b..6026704 100644 --- a/wrapper/ppswrapper-client.c +++ b/wrapper/ppswrapper-client.c @@ -1383,3 +1383,25 @@ int ppsw_client_send_charge(ppsw_t* super, const char* password) return msg.retval; } + +int ppsw_client_send_check_url(ppsw_t* super, const char* url) +{ + //ppsw_client_t *self = (ppsw_client_t*)super; + ppsw_reply_msg_t msg; + ppsw_packet_t p; + + if (ppsw_packet_init(&p, PPSW_CHECK_URL, + ppsw_strlen(url) + 2) < 0) + return -1; + if (ppsw_packet_write_str(&p, url, -1) < 0) + return -1; + if (ppsw_send_packet(super, &msg.base, &p) < 0) + return -1; + + if (ppsw_client_read_reply_msg(super, msg.base.seq, &msg) < 0) + return -1; + if (msg.base.id != PPSW_REPLY) + return -1; + + return msg.retval; +} diff --git a/wrapper/ppswrapper-server-main.c b/wrapper/ppswrapper-server-main.c index f7f3c3d..b7c984b 100644 --- a/wrapper/ppswrapper-server-main.c +++ b/wrapper/ppswrapper-server-main.c @@ -25,6 +25,7 @@ int main(int argc, char **argv) { ppsw_t* ppsw; + int ret; int c; int fd = -1; int port = -1; @@ -53,7 +54,7 @@ int main(int argc, char **argv) } signal (SIGPIPE, SIG_IGN); - chdir ("/tmp/"); + ret = chdir ("/tmp/"); ppsw = ppsw_server_create(fd, port); if (!ppsw) { diff --git a/wrapper/ppswrapper-server.c b/wrapper/ppswrapper-server.c index 1cdfa5a..c6667be 100644 --- a/wrapper/ppswrapper-server.c +++ b/wrapper/ppswrapper-server.c @@ -980,6 +980,22 @@ process_charge (ppsw_server_t* self, } static int +process_check_url (ppsw_server_t* self, + const ppsw_msg_t* msg, + ppsw_packet_t* p) +{ + int ret; + char* url; + + if (ppsw_packet_read_str (p, &url, NULL) < 0) + return send_reply (self, msg->seq, -1); + + ret = ppsvod_check_url (url); + free (url); + return send_reply (self, msg->seq, ret); +} + +static int process_vod_list_get_channel(ppsw_server_t* self, const ppsw_msg_t* msg, ppsw_packet_t* p) @@ -1058,6 +1074,8 @@ ppsw_server_process_msg (ppsw_server_t* self, return process_get_vip_expire_time(self, msg, p); else if (msg->id == PPSW_CHARGE) return process_charge(self, msg, p); + else if (msg->id == PPSW_CHECK_URL) + return process_check_url(self, msg, p); return -1; } diff --git a/wrapper/ppswrapper.c b/wrapper/ppswrapper.c index 23a05a9..682f8d4 100644 --- a/wrapper/ppswrapper.c +++ b/wrapper/ppswrapper.c @@ -212,6 +212,12 @@ int ppsvod_get_file_length(int fd) int ppsvod_check_url(const char* url) { + int ret; + + if (!ppsw_state.client) + return -1; + + ret = ppsw_client_send_check_url(ppsw_state.client, url); return -1; } diff --git a/wrapper/ppswrapper.h b/wrapper/ppswrapper.h index d795a2d..2d6f5a8 100644 --- a/wrapper/ppswrapper.h +++ b/wrapper/ppswrapper.h @@ -51,6 +51,7 @@ typedef enum { PPSW_DEFAULT_CONFIG_DIR, PPSW_GET_ACCOUNT_TYPE, PPSW_GET_VIP_EXPIRE_TIME, + PPSW_CHECK_URL, PPSW_CHARGE, PPSW_VODLIST_INIT, PPSW_VODLIST_UNINIT, @@ -302,6 +303,8 @@ int ppsw_client_send_get_vip_expire_time(ppsw_t* super, char* time); int ppsw_client_send_charge(ppsw_t* super, const char* password); +int ppsw_client_send_check_url(ppsw_t* super, const char* url); + int ppsw_write_item_info(ppsw_packet_t* self, ppsvod_iteminfo* info); |