// Initialize the options for the virtual host void NiSetDefaultVhOption(NAT *n, VH_OPTION *o) { // Validate arguments if (o == NULL) { return; } Zero(o, sizeof(VH_OPTION)); GenMacAddress(o->MacAddress); // Set the virtual IP to 192.168.30.1/24 SetIP(&o->Ip, 192, 168, 30, 1); SetIP(&o->Mask, 255, 255, 255, 0); o->UseNat = true; o->Mtu = 1500; o->NatTcpTimeout = 1800; o->NatUdpTimeout = 60; o->UseDhcp = true; SetIP(&o->DhcpLeaseIPStart, 192, 168, 30, 10); SetIP(&o->DhcpLeaseIPEnd, 192, 168, 30, 200); SetIP(&o->DhcpSubnetMask, 255, 255, 255, 0); o->DhcpExpireTimeSpan = 7200; o->SaveLog = true; SetIP(&o->DhcpGatewayAddress, 192, 168, 30, 1); SetIP(&o->DhcpDnsServerAddress, 192, 168, 30, 1); GetDomainName(o->DhcpDomainName, sizeof(o->DhcpDomainName)); }
CIpAddress::t_string CIpAddress::GetFullHostName() { t_string sDomain = GetDomainName(); if ( sDomain.length() ) return disk::FilePath( sDomain, GetHostName() ); return GetHostName(); }
char *GetHostName() { static char val[128]; InternalVar = 1; sprintf (val,"%s.%s",GetBoxName(),GetDomainName()); InternalVar = 0; return val; }
size_t CNAMERecord::GetDataLength() const { return GetDomainName().length() + 1; }
int main(int argc, char *argv[]) { char *p; char buf[BUFSIZE]; char *username; char *group; int err = 0; const char *groups[512]; int n; if (argc > 0) { /* should always be true */ myname = strrchr(argv[0], '/'); if (myname == NULL) myname = argv[0]; } else { myname = "(unknown)"; } mypid = getpid(); setbuf(stdout, NULL); setbuf(stderr, NULL); /* Check Command Line */ process_options(argc, argv); if (use_global) { if ((machinedomain = GetDomainName()) == NULL) { fprintf(stderr, "%s Can't read machine domain\n", myname); exit(1); } strlwr(machinedomain); if (!DefaultDomain) DefaultDomain = xstrdup(machinedomain); } debug("External ACL win32 group helper build " __DATE__ ", " __TIME__ " starting up...\n"); if (use_global) debug("Domain Global group mode enabled using '%s' as default domain.\n", DefaultDomain); if (use_case_insensitive_compare) debug("Warning: running in case insensitive mode !!!\n"); /* Main Loop */ while (fgets(buf, sizeof(buf), stdin)) { if (NULL == strchr(buf, '\n')) { /* too large message received.. skip and deny */ fprintf(stderr, "%s: ERROR: Too large: %s\n", argv[0], buf); while (fgets(buf, sizeof(buf), stdin)) { fprintf(stderr, "%s: ERROR: Too large..: %s\n", argv[0], buf); if (strchr(buf, '\n') != NULL) break; } goto error; } if ((p = strchr(buf, '\n')) != NULL) *p = '\0'; /* strip \n */ if ((p = strchr(buf, '\r')) != NULL) *p = '\0'; /* strip \r */ debug("Got '%s' from Squid (length: %d).\n", buf, strlen(buf)); if (buf[0] == '\0') { fprintf(stderr, "Invalid Request\n"); goto error; } username = strtok(buf, " "); for (n = 0; (group = strtok(NULL, " ")) != NULL; n++) { rfc1738_unescape(group); groups[n] = group; } groups[n] = NULL; if (NULL == username) { fprintf(stderr, "Invalid Request\n"); goto error; } rfc1738_unescape(username); if ((use_global ? Valid_Global_Groups(username, groups) : Valid_Local_Groups(username, groups))) { printf("OK\n"); } else { error: printf("ERR\n"); } err = 0; } return 0; }
extern "C" NSAPI_PUBLIC char *dns_guess_domain(char * hname) { FILE *f; char * cp; int hnlen; char line[256]; int dnlen = 0; char * domain = 0; PRHostEnt hent; char buf[PR_AR_MAXHOSTENTBUF]; PRInt32 err; /* Sanity check */ if (strchr(hname, '.')) { return STRDUP(hname); } if (dnlen == 0) { /* First try a little trick that seems to often work... */ /* * Get the local host name, even it doesn't come back * fully qualified. */ line[0] = 0; gethostname(line, sizeof(line)); if (line[0] != 0) { /* Is it fully qualified? */ domain = strchr(line, '.'); if (domain == 0) { #ifdef NS_OLDES3X struct hostent * hptr; #else PRHostEnt * hptr; #endif /* NS_OLDES3X */ /* No, try gethostbyname() */ #ifdef NS_OLDES3X hptr = (struct hostent*)PR_AR_GetHostByName( line, &hent, buf, PR_AR_MAXHOSTENTBUF, &err, PR_AR_DEFAULT_TIMEOUT AF_INET); #else if (PR_AR_GetHostByName(line, buf, PR_AR_MAXHOSTENTBUF, &hent, PR_AR_DEFAULT_TIMEOUT, AF_INET) == PR_AR_OK) { hptr = &hent; } else { hptr = 0; } #endif /* NS_OLDES3X */ if (hptr) { /* See if h_name is fully-qualified */ if (hptr->h_name) { domain = strchr(hptr->h_name, '.'); } /* Otherwise look for a fully qualified alias */ if ((domain == 0) && (hptr->h_aliases && hptr->h_aliases[0])) { char **p; for (p = hptr->h_aliases; *p; ++p) { domain = strchr(*p, '.'); if (domain) break; } } } } } /* Still no luck? */ if (domain == 0) { f = fopen(_PATH_RESCONF, "r"); /* See if there's a domain entry in their resolver configuration */ if(f) { while(fgets(line, sizeof(line), f)) { if(!strncasecmp(line, "domain", 6) && isspace(line[6])) { for (cp = &line[7]; *cp && isspace(*cp); ++cp) ; if (*cp) { domain = cp; for (; *cp && !isspace(*cp); ++cp) ; *cp = 0; } break; } } fclose(f); } } #ifndef NO_DOMAINNAME if (domain == 0) { /* No domain found. Try getdomainname. */ line[0] = '\0'; GetDomainName(line, sizeof(line)); if (line[0] != 0) domain = &line[0]; } #endif if (domain != 0) { if (domain[0] == '.') ++domain; domain = STRDUP(domain); dnlen = strlen(domain); } else dnlen = -1; } if (domain != 0) { hnlen = strlen(hname); if ((hnlen + dnlen + 2) <= sizeof(line)) { strcpy(line, hname); line[hnlen] = '.'; strcpy(&line[hnlen+1], domain); return STRDUP(line); } } return 0; }