/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2012 Index Data
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
#if HAVE_CONFIG_H
YAZ_CHECK_EQ(cs_complete_auto(http_buf, 24), 0);
}
{
+ /* no content, no headers */
+ const char *http_buf =
+ /*123456789012345678 */
+ "HTTP/1.1 204 OK\r\n"
+ "\r\n"
+ "HTTP/1.1 200 OK\r\n";
+
+ YAZ_CHECK_EQ(cs_complete_auto(http_buf, 1), 0);
+ YAZ_CHECK_EQ(cs_complete_auto(http_buf, 2), 0);
+ YAZ_CHECK_EQ(cs_complete_auto(http_buf, 18), 0);
+ YAZ_CHECK_EQ(cs_complete_auto(http_buf, 19), 19);
+ YAZ_CHECK_EQ(cs_complete_auto(http_buf, 24), 19);
+ }
+ {
/* response, content */
const char *http_buf =
/*123456789012345678 */
}
server_address_ip = cs_straddr(stack, server_address_str);
- if (!server_address_ip)
- {
+ if (!server_address_ip) {
fprintf(stderr, "cs_straddr: address could not be resolved\n");
return -1;
}
status = cs_connect(stack, server_address_ip);
- if (status != 0) {
+ if (status) {
fprintf(stderr, "cs_connect: %s\n", cs_strerror(stack));
return -1;
}
+ status = cs_rcvconnect(stack);
+ if (status) {
+ fprintf(stderr, "cs_rcvconnect: %s\n", cs_strerror(stack));
+ return -1;
+ }
+
status = cs_put(stack, protocol_package, protocol_package_length);
if (status) {
fprintf(stderr, "cs_put: %s\n", cs_strerror(stack));
}
/* Now get a response */
-
length_incoming = cs_get(stack, &buf, &size);
if (!length_incoming) {
fprintf(stderr, "Connection closed\n");
/* clean up */
cs_close(stack);
if (buf)
- free(buf);
+ xfree(buf);
return 0;
}
+static void tst_cs_get_host_args(void)
+{
+ const char *arg = 0;
+
+ cs_get_host_args("http://localhost:9999", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, ""));
+ cs_get_host_args("http://localhost:9999/x", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "x"));
+ cs_get_host_args("http://localhost:9999?x", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, ""));
+ cs_get_host_args("localhost:9999", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, ""));
+ cs_get_host_args("localhost:9999/", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, ""));
+ cs_get_host_args("localhost:9999/x&url=http://some.host", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "x&url=http://some.host"));
+ cs_get_host_args("http://localhost:9999/x&url=http://some.host", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "x&url=http://some.host"));
+ cs_get_host_args("http:/localhost:9999/x", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "localhost:9999/x"));
+ cs_get_host_args("http//localhost:9999/x", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "/localhost:9999/x"));
+ cs_get_host_args("http://y/x", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "x"));
+ cs_get_host_args("http:///x", &arg);
+ YAZ_CHECK(arg && !strcmp(arg, "x"));
+}
int main (int argc, char **argv)
{
comstack_example(argv[1]);
tst_http_request();
tst_http_response();
+ tst_cs_get_host_args();
YAZ_CHECK_TERM;
}