#endif
#include <doldaconnect/uilib.h>
-#include <doldaconnect/utils.h>
+#include <utils.h>
+
+#define DOLCON_SRV_NAME "_dolcon._tcp"
#define RESP_END -1
#define RESP_DSC 0
int ret, done;
char *p1, *p2;
size_t len;
+ socklen_t optlen;
int errnobak;
/* Ewww... this really is soo ugly. I need to clean this up some day. */
static int pstate = 0;
static size_t cbufsize = 0, cbufdata = 0;
static wchar_t *pptr = NULL;
static wchar_t **argv = NULL;
- static int argc = 0, args = 0;
+ static int argc = 0;
+ static size_t args = 0;
static wchar_t *cw = NULL;
static size_t cwsize = 0, cwdata = 0;
static struct dc_response *curresp = NULL;
case -1:
return(-1);
case 0:
- len = sizeof(ret);
- getsockopt(fd, SOL_SOCKET, SO_ERROR, &ret, &len);
+ optlen = sizeof(ret);
+ getsockopt(fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
if(ret)
{
int newfd;
return(-1);
}
/* res_querydomain doesn't work for some reason */
- name2 = smalloc(strlen("_dolcon._tcp.") + strlen(name) + 2);
- strcpy(name2, "_dolcon._tcp.");
- strcat(name2, name);
- len = strlen(name2);
- if(name2[len - 1] != '.')
- {
- name2[len] = '.';
- name2[len + 1] = 0;
- }
+ if(name[strlen(name) - 1] == '.')
+ name2 = sprintf2("%s.%s", DOLCON_SRV_NAME, name);
+ else
+ name2 = sprintf2("%s.%s.", DOLCON_SRV_NAME, name);
ret = res_query(name2, C_IN, T_SRV, buf, sizeof(buf));
if(ret < 0)
{
#else
static int getsrvrr(char *name, char **host, int *port)
{
- errno = EOPNOTSUP;
+ errno = EOPNOTSUPP;
return(-1);
}
#endif
struct command *cmd;
struct respclass *cls;
int code;
- int args;
+ size_t args;
if((resp->numlines == 0) || (resp->rlines[0].argc == 0) || (resp->curline >= resp->numlines))
return(NULL);