本文整理汇总了C++中MyString::FindChar方法的典型用法代码示例。如果您正苦于以下问题:C++ MyString::FindChar方法的具体用法?C++ MyString::FindChar怎么用?C++ MyString::FindChar使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MyString
的用法示例。
在下文中一共展示了MyString::FindChar方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: strArg
int
parseMyProxyArgument (const char * arg,
char * & user,
char * & host,
int & port) {
MyString strArg (arg);
int at_idx = strArg.FindChar ((int)'@');
int colon_idx = strArg.FindChar ((int)':', at_idx+1);
if (at_idx != -1) {
MyString _user = strArg.Substr (0, at_idx-1);
user = strdup(_user.Value());
}
if (colon_idx == -1) {
MyString _host = strArg.Substr (at_idx+1, strArg.Length()-1);
host = strdup(_host.Value());
} else {
MyString _host = strArg.Substr (at_idx+1, colon_idx-1);
host = strdup(_host.Value());
MyString _port = strArg.Substr (colon_idx+1, strArg.Length()-1);
port = atoi(_port.Value());
}
return TRUE;
}
示例2:
MyString
MyString::EscapeChars(const MyString& Q, const char escape) const
{
// create a result string. may as well reserve the length to
// begin with so we don't recopy the string for EVERY character.
// this algorithm WILL recopy the string for each char that ends
// up being escaped.
MyString S;
S.reserve(Len);
// go through each char in this string
for (int i = 0; i < Len; i++) {
// if it is in the set of chars to escape,
// drop an escape onto the end of the result
if (Q.FindChar(Data[i]) >= 0) {
// this character needs escaping
S += escape;
}
// put this char into the result
S += Data[i];
}
// thats it!
return S;
}
示例3: strerror
int
Job::declare_file(const MyString &name,
filesize_t size,
CondorError &errstack)
{
JobFile *ignored;
JobFile jobFile;
jobFile.size = size;
jobFile.currentOffset = 0;
jobFile.name = name;
jobFile.file =
safe_open_wrapper_follow((spoolDirectory + DIR_DELIM_STRING + jobFile.name).Value(),
O_WRONLY | O_CREAT | _O_BINARY,
0600);
if (-1 != jobFile.file) {
if (0 == declaredFiles.lookup(name, ignored)) {
close(jobFile.file);
errstack.pushf("SOAP",
ALREADYEXISTS,
"File '%s' already declared.",
name.Value());
return 4;
}
if (declaredFiles.insert(name, jobFile)) {
close(jobFile.file);
errstack.pushf("SOAP",
FAIL,
"Failed to record file '%s'.",
name.Value());
return 2;
}
} else {
// If there is a path delimiter in the name we assume that
// the client knows what she is doing and will set a
// proper Iwd later on. If there is no path delimiter we
// have a problem.
if (-1 != name.FindChar(DIR_DELIM_CHAR)) {
dprintf(D_FULLDEBUG,
"Failed to open '%s' for writing, reason: %s\n",
(spoolDirectory+DIR_DELIM_STRING+jobFile.name).Value(),
strerror(errno));
errstack.pushf("SOAP",
FAIL,
"Failed to open '%s' for writing, reason: %s",
name.Value(),
strerror(errno));
return 3;
}
}
return 0;
}
示例4: get_fqdn_from_hostname
MyString get_fqdn_from_hostname(const MyString& hostname) {
if (hostname.FindChar('.') != -1)
return hostname;
MyString ret;
if (!nodns_enabled()) {
addrinfo_iterator ai;
int res = ipv6_getaddrinfo(hostname.Value(), NULL, ai);
if (res) {
dprintf(D_HOSTNAME, "ipv6_getaddrinfo() could not look up %s: %s (%d)\n",
hostname.Value(), gai_strerror(res), res);
return ret;
}
while (addrinfo* info = ai.next()) {
if (info->ai_canonname) {
if (strchr(info->ai_canonname, '.'))
return info->ai_canonname;
}
}
hostent* h = gethostbyname(hostname.Value());
if (h && h->h_name && strchr(h->h_name, '.')) {
return h->h_name;
}
if (h && h->h_aliases && *h->h_aliases) {
for (char** alias = h->h_aliases; *alias; ++alias) {
if (strchr(*alias, '.'))
return *alias;
}
}
}
MyString default_domain;
if (param(default_domain, "DEFAULT_DOMAIN_NAME")) {
ret = hostname;
if (ret[ret.Length() - 1] != '.')
ret += ".";
ret += default_domain;
}
return ret;
}
示例5: get_fqdn_and_ip_from_hostname
int get_fqdn_and_ip_from_hostname(const MyString& hostname,
MyString& fqdn, condor_sockaddr& addr) {
MyString ret;
condor_sockaddr ret_addr;
bool found_ip = false;
// if the hostname contains dot, hostname is assumed to be full hostname
if (hostname.FindChar('.') != -1) {
ret = hostname;
}
if (nodns_enabled()) {
// if nodns is enabled, convert hostname to ip address directly
ret_addr = convert_hostname_to_ipaddr(hostname);
found_ip = true;
} else {
// we look through getaddrinfo and gethostbyname
// to further seek fully-qualified domain name and corresponding
// ip address
addrinfo_iterator ai;
int res = ipv6_getaddrinfo(hostname.Value(), NULL, ai);
if (res) {
dprintf(D_HOSTNAME, "ipv6_getaddrinfo() could not look up %s: %s (%d)\n", hostname.Value(),
gai_strerror(res), res);
return 0;
}
while (addrinfo* info = ai.next()) {
if (info->ai_canonname) {
fqdn = info->ai_canonname;
addr = condor_sockaddr(info->ai_addr);
return 1;
}
}
hostent* h = gethostbyname(hostname.Value());
if (h && h->h_name && strchr(h->h_name, '.')) {
fqdn = h->h_name;
addr = condor_sockaddr((sockaddr*)h->h_addr);
return 1;
}
if (h && h->h_aliases && *h->h_aliases) {
for (char** alias = h->h_aliases; *alias; ++alias) {
if (strchr(*alias, '.')) {
fqdn = *alias;
addr = condor_sockaddr((sockaddr*)h->h_addr);
return 1;
}
}
}
}
MyString default_domain;
// if FQDN is still unresolved, try DEFAULT_DOMAIN_NAME
if (ret.Length() == 0 && param(default_domain, "DEFAULT_DOMAIN_NAME")) {
ret = hostname;
if (ret[ret.Length() - 1] != '.')
ret += ".";
ret += default_domain;
}
if (ret.Length() > 0 && found_ip) {
fqdn = ret;
addr = ret_addr;
return 1;
}
return 0;
}
示例6: strchr
/* This function has a unit test. */
int
is_valid_sinful( const char *sinful )
{
dprintf(D_HOSTNAME, "Checking if %s is a sinful address\n", sinful);
char addrbuf[INET6_ADDRSTRLEN];
const char* acc = sinful;
const char* tmp;
const char* addr_begin;
const char* addr_end;
if (!acc)
return FALSE;
if (*acc != '<') {
dprintf(D_HOSTNAME, "%s is not a sinful address: does not begin with \"<\"\n", sinful);
return FALSE;
}
acc++;
if (*acc == '[') {
dprintf(D_HOSTNAME, "%s is an ipv6 address\n", sinful);
tmp = strchr(acc, ']');
if (!tmp) {
dprintf(D_HOSTNAME, "%s is not a sinful address: could not find closing \"]\"\n", sinful);
return FALSE;
}
addr_begin = acc + 1;
addr_end = tmp;
// too long
if (addr_end - addr_begin > INET6_ADDRSTRLEN) {
dprintf(D_HOSTNAME, "%s is not a sinful address: addr too long %d\n", sinful, (int)(addr_end - addr_begin));
return FALSE;
}
strncpy(addrbuf, addr_begin, addr_end - addr_begin);
addrbuf[addr_end - addr_begin] = '\0';
dprintf(D_HOSTNAME, "tring to convert %s using inet_pton, %s\n", sinful, addrbuf);
in6_addr tmp_addr;
if (inet_pton(AF_INET6, addrbuf, &tmp_addr) <= 0) {
dprintf(D_HOSTNAME, "%s is not a sinful address: inet_pton(AF_INET6, %s) failed\n", sinful, addrbuf);
return FALSE;
}
acc = tmp + 1;
} else {
MyString ipaddr = acc;
int colon_pos = ipaddr.FindChar(':');
if(colon_pos == -1) { return false; }
ipaddr.setChar(colon_pos, 0);
if( ! is_ipv4_addr_implementation(ipaddr.Value(),NULL,NULL,false) ) {
return FALSE;
}
acc = acc + colon_pos;
}
if (*acc != ':') {
dprintf(D_HOSTNAME, "%s is not a sinful address: no colon found\n", sinful);
return FALSE;
}
tmp = strchr(acc, '>');
if (!tmp) {
dprintf(D_HOSTNAME, "%s is not a sinful address: no closing \">\" found\n", sinful);
return FALSE;
}
dprintf(D_HOSTNAME, "%s is a sinful address!\n", sinful);
return TRUE;
}