X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=comstack%2Ftcpip.c;h=5f24ef3b95c5339b60c87173676c9ef956a197f7;hb=30de094a4a567f7fada6d5932e23921770ac671c;hp=dac1d6787e9254ba2947642f51d4910360f071d1;hpb=a40e9f3f82a7ffafcdd0a554721897669cac12f8;p=yaz-moved-to-github.git diff --git a/comstack/tcpip.c b/comstack/tcpip.c index dac1d67..5f24ef3 100644 --- a/comstack/tcpip.c +++ b/comstack/tcpip.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: tcpip.c,v 1.54 2003-02-20 15:10:24 adam Exp $ + * $Id: tcpip.c,v 1.56 2003-03-11 11:05:19 adam Exp $ */ #include @@ -10,8 +10,8 @@ #include #ifdef WIN32 -#include #else +#include #endif #include @@ -25,15 +25,13 @@ #include #include #include +#include #ifdef WIN32 #else #include #endif -/* Chas added the following, so we get the definition of completeBER */ -#include - static int tcpip_close(COMSTACK h); static int tcpip_put(COMSTACK h, char *buf, int size); static int tcpip_get(COMSTACK h, char **buf, int *bufsize); @@ -184,7 +182,7 @@ COMSTACK tcpip_type(int s, int blocking, int protocol, void *vp) if (protocol == PROTO_WAIS) state->complete = completeWAIS; else - state->complete = completeBER; + state->complete = cs_complete_auto; p->timeout = COMSTACK_DEFAULT_TIMEOUT; TRC(fprintf(stderr, "Created new TCPIP comstack\n")); @@ -227,11 +225,12 @@ COMSTACK ssl_type(int s, int blocking, int protocol, void *vp) } #endif -int tcpip_strtoaddr_ex(const char *str, struct sockaddr_in *add) +int tcpip_strtoaddr_ex(const char *str, struct sockaddr_in *add, + int default_port) { struct hostent *hp; char *p, buf[512]; - short int port = 210; + short int port = default_port; unsigned tmpadd; if (!tcpip_init ()) @@ -263,8 +262,12 @@ int tcpip_strtoaddr_ex(const char *str, struct sockaddr_in *add) void *tcpip_straddr(COMSTACK h, const char *str) { tcpip_state *sp = (tcpip_state *)h->cprivate; + int port = 210; + + if (h->protocol == PROTO_HTTP) + port = 80; - if (!tcpip_strtoaddr_ex (str, &sp->addr)) + if (!tcpip_strtoaddr_ex (str, &sp->addr, port)) return 0; return &sp->addr; } @@ -273,7 +276,7 @@ struct sockaddr_in *tcpip_strtoaddr(const char *str) { static struct sockaddr_in add; - if (!tcpip_strtoaddr_ex (str, &add)) + if (!tcpip_strtoaddr_ex (str, &add, 210)) return 0; return &add; } @@ -1055,10 +1058,18 @@ char *tcpip_addrstr(COMSTACK h) r = (char*) host->h_name; else r = inet_ntoa(addr.sin_addr); - sprintf(buf, "tcp:%s", r); + if (h->protocol == PROTO_HTTP) + sprintf(buf, "http:%s", r); + else + sprintf(buf, "tcp:%s", r); #if HAVE_OPENSSL_SSL_H if (sp->ctx) - sprintf(buf, "ssl:%s", r); + { + if (h->protocol == PROTO_HTTP) + sprintf(buf, "https:%s", r); + else + sprintf(buf, "ssl:%s", r); + } #endif return buf; }