int main(int argc, char **argv)
{
- int c, test_config = 0;
+ int c;
+ // TODO: implement or delete
+ int test_config __attribute__((unused)) = 0;
#ifndef WIN32
int gid = 0;
#endif
int sock = 0, port = 1515, ret = 0;
- char *dir = DEFAULTDIR;
+ // TODO: implement or delete
+ char *dir __attribute__((unused)) = DEFAULTDIR;
char *user = USER;
char *group = GROUPGLOBAL;
- char *cfg = DEFAULTCPATH;
+ // TODO: implement or delete
+ char *cfg __attribute__((unused)) = DEFAULTCPATH;
char *manager = NULL;
char *agentname = NULL;
char lhostname[512 + 1];
- /* Privilege separation */
+ /* Privilege separation */
if(Privsep_SetGroup(gid) < 0)
ErrorExit(SETGID_ERROR,ARGV0,group);
- /* Starting SSL */
+ /* Starting SSL */
ctx = os_ssl_keys(1, NULL);
if(!ctx)
{
}
+ /* Check to see if manager is an IP */
+ int is_ip = 1;
+ struct sockaddr_in iptest;
+ memset(&iptest, 0, sizeof(iptest));
+
+ if(inet_pton(AF_INET, manager, &iptest.sin_addr) != 1)
+ is_ip = 0; /* This is not an IPv4 address */
+
+ /* Not IPv4, IPv6 maybe? */
+ if(is_ip == 0)
+ {
+ struct sockaddr_in6 iptest6;
+ memset(&iptest6, 0, sizeof(iptest6));
+ if(inet_pton(AF_INET6, manager, &iptest6.sin6_addr) != 1)
+ is_ip = 0;
+ else
+ is_ip = 1; /* This is an IPv6 address */
+ }
+
+
+ /* If it isn't an ip, try to resolve the IP */
+ if(is_ip == 0)
+ {
+ char *ipaddress;
+ ipaddress = OS_GetHost(manager, 3);
+ if(ipaddress != NULL)
+ strncpy(manager, ipaddress, 16);
+ else
+ {
+ printf("Could not resolve hostname: %s\n", manager);
+ return(1);
+ }
+ }
+
+
/* Connecting via TCP */
sock = OS_ConnectTCP(port, manager, 0);
if(sock <= 0)